2013-05-11 56 views
2

我試圖從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 

回答

1

的時間嘗試此(在片材假設數據是是日期序號,並在活性片)

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

2

感謝您的幫助。得到它具有以下工作:

在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保持從查詢數據在正確的時間順序爲電子表格計算。

相關問題