2013-05-11 2 views
2

날짜 매개 변수가있는 SQL 데이터베이스에서 Excel로 데이터를 가져 오려고합니다. 다음 VB 쿼리가 작동합니다. VB 쿼리의 TS에서 날짜 값을 수동으로 변경하는 대신 스프레드 시트에서 셀 값을 쿼리에 사용하려고합니다. 셀 A1은> = TS의 날짜를 갖고, 전지 A2는 < TSVBA 날짜 매개 변수가 셀 값에 연결된 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

+0

도움을 주셔서 감사합니다. 다음과 같이 작동하도록했습니다. – Gary

2

도움 주셔서 감사합니다. 그것은 다음과 같은 작업을 당함 :

를 Excel에서 텍스트 엑셀 날짜를 변환하는 공식

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

을 사용했다. 시작 날짜는 B3 셀에 마무리 날짜는 다음과

변경된 VB B4 셀에 있습니다

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을 추가했다 스프레드 시트 계산.