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
多行,并使用EOF
和MoveNext
周期超过他们。