与日期参数链接到单元格值的VBA Excel SQL查询

问题描述:

我试图从SQL数据库中使用日期参数将数据导入到Excel中。以下VB查询工作。而不是手动更改VB查询的TS中的日期值,我希望查询使用电子表格中的单元格值。单元格A1具有用于> = TS的时间,和单元格A2具有用于< TS与日期参数链接到单元格值的VBA Excel SQL查询

Sub vba_query_01() 

    Dim oCon As ADODB.Connection 
    Dim oRS As ADODB.Recordset 
    Set oCon = New ADODB.Connection 
    oCon.ConnectionString = "DRIVER=SQL Server;SERVER=GSEYBERTHNB7 
     \SQLEXPRESS;UID=gseyberth;Trusted_Connection=Yes;APP=2007 Microsoft Office 
     system;WSID=GSEYBERTHNB7;DATABASE=DATA_LOGGER" 
    oCon.Open 
    Set oRS = New ADODB.Recordset 
    oRS.ActiveConnection = oCon 
    oRS.Source = "Select * FROM DATA_LOGGER.dbo.LYLE LYLE WHERE (([Date] >= {TS '2013-04-24 
     07:00:00'})) AND (([Date] < {TS '2013-04-24 15:00:00'}))" 
    oRS.Open 
    Range("A10").CopyFromRecordset oRS 
    oRS.Close 
    oCon.Close 
    If Not oRS Is Nothing Then Set oRS = Nothing 
    If Not oCon Is Nothing Then Set oCon = Nothing 

End Sub 

的时间尝试此(在片材假设数据是是日期序号,并在活性片)

oR.SSource = "Select * FROM DATA_LOGGER.dbo.LYLE LYLE WHERE (([Date] >= {TS '" & _ 
Format(Range("A1"), "yyyy-mm-dd hh:nn:ss") & _ 
"'})) AND (([Date] < {TS '" & _ 
Format(Range("A2"), "yyyy-mm-dd hh:nn:ss") & "'}))" 
+0

我收到一条错误消息运行时错误'-2147217908(80040e0c)':命令文本未设置为命令对象。 – Gary 2013-05-11 06:46:58

+0

感谢您的帮助。得到它与以下工作: – Gary 2013-05-17 05:23:17

感谢您的帮助。得到它具有以下工作:

在Excel中,使用的公式

=TEXT(B1,"YYYY-MM-DD hh:mm:ss") 

到Excel日期转换为文本。开始日期是在单元格B3和完成日期是在小区B4

更改VB以下几点:

oRS.Source = "Select * FROM DATA_LOGGER.dbo.LYLE_CH2 LYLE_CH2 WHERE (([Date] >= {TS '" & Range("B3") & "'})) AND (([Date] < {TS '" & Range("B4") & "'})) ORDER BY [Date]"

不得不添加ORDER BY保持从查询数据在正确的时间顺序为电子表格计算。