我要从Excel转到Sql。我已建立连接。我可以创建一个简单的select语句,然后从Sql中的表中获取值进入Excel。现在,我想走另一条路。我正在尝试将excel中的值插入Sql。我不断收到“关闭对象时不允许的操作”错误#3704。以下是我的代码。
Option Explicit
Private Conn As ADODB.Connection
Private Sub CommandButton1_Click()
Dim Conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String
'This will create the string to connect.
sConnString = "Driver={SQL Server};Data Source=**;Initial Catalog = **;Trusted_Connection =yes;"
'Create Connection and the Recordset Objects.
Set Conn = New ADODB.Connection
Set rs = New ADODB.Recordset
'Open the Connection in Order to Execute.
Conn.Open sConnString
Set rs = Conn.Execute("insert into TestTable(TestColumn) Values('50');")
'Check for the Data.
If Not rs.EOF Then
Sheets(1).Range("A1").CopyFromRecordset rs
'Close Connection
rs.Close
Else
MsgBox "Error: No Records Returned.", vbCritical
End If
'Clean
If CBool(Conn.State And adStateOpen) Then Conn.Close
Set Conn = Nothing
Set rs = Nothing
End Sub
我如何正确执行此语句?就像我之前说的那样,精选陈述工作得很好。我所做的就是
("Select * From KpiSetupOee;")
有什么想法吗?感谢您的时间
INSERT语句不返回任何记录,那么为什么要尝试将其结果分配给记录集?更改此行:
Set rs = Conn.Execute("insert into TestTable(TestColumn) Values('50');")
只需执行:
Conn.Execute("insert into TestTable(TestColumn) Values('50');")
然后清理您的代码以摆脱不必要的记录集引用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句