Excel VBA更新SQL表
我有一个小的Excel程序,用于将数据上传到SQL server 这已经很好地工作了一段时间 我现在的问题是,我想为用户提供一个函数来更新SQL中的现有记录 因为此表上的每一行都有一个唯一的id列。有一个列调用UID,它是主键 这是当前上载新数据代码的一部分:Excel VBA更新SQL表,sql,excel,vba,sql-update,Sql,Excel,Vba,Sql Update,我有一个小的Excel程序,用于将数据上传到SQL server 这已经很好地工作了一段时间 我现在的问题是,我想为用户提供一个函数来更新SQL中的现有记录 因为此表上的每一行都有一个唯一的id列。有一个列调用UID,它是主键 这是当前上载新数据代码的一部分: Set Cn = New ADODB.Connection Cn.Open "Driver={SQL Server};Server=" & ServerName & ";Database=" & _
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,而不是导入新记录
再次感谢您的帮助要打开新记录,请使用
Find
查找现有记录,而不是AddNew
。比如:
rs.Find "id = 100"
rs(1) = "ColumnOneValue"
或:
可以查找
多行,并使用EOF
和MoveNext
在其上循环
rs.Find "LastName = 'Bush'"
rs("LastName") = "Blush"