我正在尝试使用以下代码来获取活动单元格并更新SQL Server中的表格。
Sub UpdateTable()
Dim rngName As Range
cnnstr = "Provider=SQLOLEDB; " & _
"Data Source=MyServer; " & _
"Initial Catalog=Mydb;" & _
"User ID=User;" & _
"Password=Pwd;" & _
"Trusted_Connection=No"
Set rngName = ActiveCell
'Debug.Print (rngName)
Set cnn = New ADODB.Connection
Application.ScreenUpdating = False
cnn.Open cnnstr
Set rs = New ADODB.Recordset
uSQL = "UPDATE MyTable SET FieldNameX = 1 WHERE FieldNameY = '" & rngName & "' "
rs.CursorLocation = adUseClient
rs.Open uSQL, cnn, adOpenStatic, adLockOptimistic, adCmdText
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
Exit Sub
End Sub
当逐步执行代码时,rs.close行会出现运行时错误,显示“当对象关闭时不允许操作”。我已经在代码中设置并打开了记录集,为什么它会关闭呢?
我需要做什么来纠正这个问题,并让活动单元格填充查询并更新SQL Server中的表格?
rs
是否成功打开吗?在即时窗口中尝试输入?rs.recordcount
(使用 CTRL_G)。如果错误发生在 'rs.Open' 行,则连接可能未打开。 - Our Man in Bananas