我使用Access 2003与本地表,稍后将传输并链接到SQL Server 2008表.我使用以下代码但得到错误:"运行时错误3704:关闭对象时不允许操作"在cnn.Execute行上.
sub test()
On Err GoTo Err_Sub
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim str As String
Dim strSQL As String
'Open a connection.
Set cnn = New ADODB.Connection
cnn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & CurrentDb.Name & ";" & _
"Persist Security Info=False"
strSQL = Me.RecordSource
str = Mid(strSQL, InStr(strSQL, "Where "))
strSQL = "Update myTable SET Active = False " & str
Set rs = cnn.Execute(strSQL)
If Not rs Is Nothing Then rs.Close
Exit_Sub:
Set rs = Nothing
Exit Sub
Err_Sub:
MsgBox Err.Description
Resume Exit_Sub
End Sub
Run Code Online (Sandbox Code Playgroud)
也遇到这个错误(在我的情况下,我使用存储过程来检索一些信息).我做了一些改变导致执行失灵.
当我SET NOCOUNT ON
作为存储过程的第一个语句时,错误消失了.