Excel VBA更新SQL表

Excel VBA更新SQL表

问题描述:

我有一个小型Excel程序用于将数据上传到SQL服务器。Excel VBA更新SQL表

这一直工作得很好。

我现在的问题是我想提供给用户一个函数来更新SQL中的现有记录。

由于此表上的每一行都有一个唯一的id columne。有一个列调用UID是主键。

这是代码的一部分,目前上传新的数据:

Set Cn = New ADODB.Connection 
    Cn.Open "Driver={SQL Server};Server=" & ServerName & ";Database=" & _ 
     DatabaseName & ";Uid=" & UserID & ";Pwd=" & Password & ";" 

rs.Open TableName, Cn, adOpenKeyset, adLockOptimistic 

For RowCounter = StartRow To EndRow 
    rs.AddNew 
    For ColCounter = 1 To NoOfFields 
     rs(ColCounter - 1) = shtSheetToWork.Cells(RowCounter, ColCounter) 
    Next ColCounter 
Next RowCounter 
rs.UpdateBatch 

' Tidy up 
rs.Close 
Set rs = Nothing 
Cn.Close 
Set Cn = Nothing 

反正我有可以修改此代码更新特定UID,而不是引进新的记录?再次

感谢您的帮助

而不是AddNew打开一个新的记录,使用Find找到现有之一。像:

rs.Find "id = 100" 
rs(1) = "ColumnOneValue" 

或者:

rs.Find "LastName = 'Bush'" 
rs("LastName") = "Blush" 

它可以Find多行,并使用EOFMoveNext周期超过他们。