Excel VBA 更新 SQL 表
Posted
技术标签:
【中文标题】Excel VBA 更新 SQL 表【英文标题】:Excel VBA to Update SQL Table 【发布时间】:2010-04-03 03:48:56 【问题描述】:我有一个小型 Excel 程序,用于将数据上传到 SQL 服务器。
这已经有一段时间了。
我现在的问题是我想为用户提供一个更新 SQL 中现有记录的功能。
因为此表上的每一行都有一个唯一的 id 列。有一列调用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 而不是导入新记录?
再次感谢您的帮助
【问题讨论】:
【参考方案1】:不要使用AddNew
来打开新记录,而是使用Find
来定位现有记录。喜欢:
rs.Find "id = 100"
rs(1) = "ColumnOneValue"
或者:
rs.Find "LastName = 'Bush'"
rs("LastName") = "Blush"
可以Find
多行,并使用EOF
和MoveNext
循环遍历它们。
【讨论】:
以上是关于Excel VBA 更新 SQL 表的主要内容,如果未能解决你的问题,请参考以下文章
VBA Excel - 从 Excel 中的一个单元格中选择一个值以更新 SQL 表