按照日期查詢自定義的問題數(shù)據(jù)庫數(shù)據(jù)寫入excel
劉玉蓉
發(fā)布于2014-09-18 17:20
1
0
標簽:
上一個問題的內(nèi)容:
查詢產(chǎn)生數(shù)據(jù)集
Dim rsIS
Set rsIS = CreateObject("ADODB.Recordset")
rsIS.Open "SELECT * FROM 表名",conn
條件:自定義數(shù)據(jù)庫:zmx-sql,表:zmxzz-a(存放1號的數(shù)據(jù))和zmxzz-b(存放2號的數(shù)據(jù)),字段名“sj”,數(shù)據(jù)類型:datetime,數(shù)據(jù)共計20列
目的:查找1號到2號的數(shù)據(jù)并存放在使用ole建立的excel表中,記錄大概在30000條。
程序:日期使用windows的日歷控件10.0提供開始日期和結(jié)束日期
Dim rsIS
Set rsIS = CreateObject("ADODB.Recordset")
is_sql="select*from zmxzz-a "sj">=00:00:01 and ""sj"<=23:59:59" and zmxzz-b "sj">=00:00:01 and ""sj"<=23:59:59"
rsIS.Open (is_sql),conn
結(jié)果:查詢程序不執(zhí)行
請問:哪里有例子或采用什么解決辦法?
windows的日歷控件怎么才可以執(zhí)行?
按照你給的程序,我運行后可以。
現(xiàn)在有問題:
1、如果我想按照字段名“sj”的時間范圍查詢該怎么辦?
2、時間給定使用windows的日歷控件分別給定開始日期和結(jié)束日期進行查詢?
圖片說明: 1,程序 2,開始和結(jié)束時間
佳答案
首先要說的是,ADO的工作原理就相當于在vbs中構(gòu)造好一個數(shù)據(jù)庫查詢語句,通過連接,發(fā)給SQL Server,執(zhí)行查詢是SQL Server的工作。
既然這樣,那你在調(diào)試vbs過程中遇到了問題,你首先想到,把你的查詢語句(sql語句)直接寫在SQL Server中,用來定位是你vbs這邊錯了,還是你的sql寫得有問題。
所以建議你先在SQL Server中實現(xiàn)查詢,然后把你試驗過的查詢語句,復(fù)制在vbs里,但是要注意,你得寫好了,構(gòu)造的語句在vbs里看,是一個字符串。
然后針對你的問題,你要查詢一個時間段,那它的查詢語句結(jié)構(gòu)無非是
select*from 表名 where sj>起始時間 and sj >中止時間,關(guān)鍵點顯而易見,就是你的起始時間和中止時間哪里來的。(你的語句中個錯誤就是,where哪去了?)
說完了
下面是我的思路
dim startTime
dim stopTime
""""構(gòu)造起始時間startTime
dim calendarName
calendarName = ScreenItems("你所建立的日歷控件名")
""""這種寫法只針對于你的日歷控件和這段程序的按鈕在同一畫面的請況
dim startDate
startDate = calendarName.value """"當前控件所選的日期,賦給startDate
dim startSJ
startSJ = 這里不清楚你的時間是怎么來的,不論常量變量寫這就行了
startTime = str(startDate)&str(startSJ)
""""構(gòu)造結(jié)束時間stopTime
思路同上,就是用calendar控件獲得年月日,用你喜歡的方式獲得時分秒,然后組合成時間(符合數(shù)據(jù)庫中datetime變量類型的時間格式)即可。
is_sql="select*from zmxzz-a where sj>"&str(startTime)&"AND sj<"&str(stopTime)
還有就是,關(guān)于獲取時間值的方法和采用的控件,可以參看以下
https://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=42245&cid=1032