2016-06-14 41 views
0

我想從用戶被提供在Excel工作表,所述起始和結束日期自動執行的開始和結束日期。下面是我到目前爲止的代碼:我希望自動從用戶被提供在Excel工作表

Sub Button1_Click() ; formatted 

Dim startDate As Date 
Dim endDate As Date 

startDate = Worksheets("sheet1").Range("B4").Value 
endDate = Worksheets("sheet1").Range("B6").Value 

dbConnectStr = "Provider=xxdose;User Id=" & Uname 
dbConnectStr1 = "Provider=xxdose;User Id=xxtrece ;Data Source=" & DSN 

Worksheets("WorkFlow").Activate 
ActiveSheet.Range("B4:C30000").Clear 

    'Set and Execute SQL Command 

Set Sql.ActiveConnection = objmyconn 
Sql.CommandText = "select system_date from syit_act_log where system_date between`enter code here` 'startDate' AND 'endDate' and action_id = 15 and log_desc not like '%svc_openlink_p%' order by system_date" 
Sql.CommandType = adCmdText 
Sql.Execute 

Next 
ActiveSheet.Range("B5").CopyFromRecordset (ds) 
ActiveSheet.Range("A1").Select 

End Sub 
+0

嘗試使用#圍繞它們格式化開始日期和結束日期。像「... System_date> =#」&StartDate&「#...」 –

+0

我會把這個SQL查詢嗎?你是說像這樣:...之間 'System_date> =# 「&的startDate&AND' System_date> =#」 &結束日期及.... @RyanWildry –

+0

你需要逃避你的變量爲你的SQL語句。 –

回答

0

給這一個鏡頭,在我的評論中提到,你必須躲避變量將其添加爲你構建SQL語句字符串的一部分。

"select system_date from syit_act_log where system_date >= #" & StartDate & _ 
"# and system_date <= #" & EndDate & "# and action_id = 15 and log_desc not like '%svc_openlink_p%' order by system_date" 
+0

我每次運行這個告訴我「運行時錯誤ORA-00911:無效字符」 @ryanwildry –

+0

應該如何SQL語句進行格式化,比如SQL服務器上?你想要他們匹配。通過一個debug.print來查看你擁有的格式和它的外觀。 –

+0

我在excel上輸入日期,並從那裏將它轉移到VBA。難道是因爲excel日期的格式與SQL日期不一樣,所以我們得到這個錯誤?在Excel中,日期是03-01-16,但我相信SQL必須是01年3月1日 –

相關問題