我正在制作一些宏并从用户那里获取日期和数据库。在此基础上我从数据库获取数据。
这是我的代码,请查看并分享您对此有任何解决方案。
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Function GetConnectionString() As String
Dim strCn As String
strCn = "Provider=sqloledb;"
strCn = strCn & "Data Source=" & Range("Server") & ";"
strCn = strCn & "Initial Catalog=" & Range("Database") & ";"
If (Range("UserID") <> "") Then
strCn = strCn & "User ID=" & Range("UserID") & ";"
strCn = strCn & "password=" & Range("Pass")
Else
strCn = strCn & "Integrated Security = SSPI"
End If
GetConnectionString = strCn
End Function
Sub Test()
ActiveWorkbook.Sheets("Sheet1").Activate
Dim ws As Worksheet
Dim Sql As String
Dim d As String
d = Range("A2").Value
d = Format(d, "yyyy-mm-dd")
cn.ConnectionTimeout = 100
cn.Open GetConnectionString()
Sql = "select * from config where convert(date,logdate,103)='"& d &"'"
ExecInsert (Sql)
Set rs.ActiveConnection = cn
rs.Open Sql
ActiveWorkbook.Sheets("Sheet2").Activate
Dim ws1 As Worksheet
Range("A2").CopyFromRecordset (rs) 'This is where I'm getting error
cn.Close
End Sub
Sub ExecInsert(selectquery As String)
'End Sub
Dim cmd As New ADODB.Command
cmd.CommandText = selectquery
cmd.CommandType = adCmdText
cmd.ActiveConnection = cn
cmd.Execute
End Sub
Range("A2").CopyFromRecordset (rs)
这是我收到错误的地方
run type error '430' class does not support automation or does not support expected interface
我有所有的dll并且也注册了它们。我的最后甚至没有遗漏任何引用资料。
如果有人遇到这个问题,请帮忙...
最佳答案
请更新以下行
来自
Range("A2").CopyFromRecordset (rs)
至
范围(“A2”).CopyFromRecordset rs
下面是示例代码
Sub sub_success()
Dim rsContacts As ADODB.Recordset
Set rsContacts = New ADODB.Recordset
With rsContacts
.Fields.Append "ContactID", adInteger
End With
rsContacts.Open
rsContacts.AddNew
rsContacts!ContactID = 2123456
rsContacts.Update
Sheet1.Range("A2").CopyFromRecordset rsContacts
End Sub
Sub sub_failure()
Dim rsContacts As ADODB.Recordset
Set rsContacts = New ADODB.Recordset
With rsContacts
.Fields.Append "ContactID", adInteger
End With
rsContacts.Open
rsContacts.AddNew
rsContacts!ContactID = 2123456
rsContacts.Update
Sheet1.Range("A2").CopyFromRecordset (rsContacts)
End Sub
关于excel - 如果数据库名称是从用户那里获取的,则将数据从数据库复制到 Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16028544/