从date和从用户采取的数据库从Excel中复制Sql Db中的数据

我正在做一些macros,并从用户采取datea和db。 在这个基础上,我从数据库中获取数据。 这里是我的代码,请看看和分享,如果你有任何解决这个。

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,logadate,103)='"& d &"'" ExecInsert (Sql) Set rs.ActiveConnection = cn rs.Open Sql ActiveWorkbook.Sheets("Sheet2").Activate Dim ws1 As Worksheet **Range("A2").CopyFromRecordset (rs)** 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 

范围(“A2”)。CopyFromRecordset(rs)这是我得到错误的地方

运行types错误'430'类不支持自动化或不支持预期的接口我有所有的DLL和注册他们以及。 甚至连我的最后都没有提及。

如果有任何机构面临这个问题,请帮助… … –

SQL Server没有一个名为Format (MS Access和VB)的函数。

在SQL Server中,您可以使用Convert (首先validationSQL Server数据types是datetime,而不是varchar或char)

或者,如果你的dateselect器以正确的格式返回数据,你可以直接添加它:

 q = q & " where logdate='" & d & "'" 

请注意,如果您有时间组件,则需要将其删除。

所以…

  1. 试试上面的代码
  2. validation数据库是SQL Server,数据types是DATETIME
  3. 检查datepicker的内容作为一个string,并validation它的格式