与日期参数链接到单元格值的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") & "'}))"
答
感谢您的帮助。得到它具有以下工作:
在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
保持从查询数据在正确的时间顺序为电子表格计算。
我收到一条错误消息运行时错误'-2147217908(80040e0c)':命令文本未设置为命令对象。 – Gary 2013-05-11 06:46:58
感谢您的帮助。得到它与以下工作: – Gary 2013-05-17 05:23:17