按照日期查询自定义的问题数据库数据写入excel
刘玉蓉
发布于2014-09-18 17:20
1
0
标签:
上一个问题的内容:
查询产生数据集
Dim rsIS
Set rsIS = CreateObject("ADODB.Recordset")
rsIS.Open "SELECT * FROM 表名",conn
条件:自定义数据库:zmx-sql,表:zmxzz-a(存放1号的数据)和zmxzz-b(存放2号的数据),字段名“sj”,数据类型:datetime,数据共计20列
目的:查找1号到2号的数据并存放在使用ole建立的excel表中,记录大概在30000条。
程序:日期使用windows的日历控件10.0提供开始日期和结束日期
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
结果:查询程序不执行
请问:哪里有例子或采用什么解决办法?
windows的日历控件怎么才可以执行?
按照你给的程序,我运行后可以。
现在有问题:
1、如果我想按照字段名“sj”的时间范围查询该怎么办?
2、时间给定使用windows的日历控件分别给定开始日期和结束日期进行查询?
图片说明: 1,程序 2,开始和结束时间
佳答案
首先要说的是,ADO的工作原理就相当于在vbs中构造好一个数据库查询语句,通过连接,发给SQL Server,执行查询是SQL Server的工作。
既然这样,那你在调试vbs过程中遇到了问题,你首先想到,把你的查询语句(sql语句)直接写在SQL Server中,用来定位是你vbs这边错了,还是你的sql写得有问题。
所以建议你先在SQL Server中实现查询,然后把你试验过的查询语句,复制在vbs里,但是要注意,你得写好了,构造的语句在vbs里看,是一个字符串。
然后针对你的问题,你要查询一个时间段,那它的查询语句结构无非是
select*from 表名 where sj>起始时间 and sj >中止时间,关键点显而易见,就是你的起始时间和中止时间哪里来的。(你的语句中个错误就是,where哪去了?)
说完了
下面是我的思路
dim startTime
dim stopTime
""""构造起始时间startTime
dim calendarName
calendarName = ScreenItems("你所建立的日历控件名")
""""这种写法只针对于你的日历控件和这段程序的按钮在同一画面的请况
dim startDate
startDate = calendarName.value """"当前控件所选的日期,赋给startDate
dim startSJ
startSJ = 这里不清楚你的时间是怎么来的,不论常量变量写这就行了
startTime = str(startDate)&str(startSJ)
""""构造结束时间stopTime
思路同上,就是用calendar控件获得年月日,用你喜欢的方式获得时分秒,然后组合成时间(符合数据库中datetime变量类型的时间格式)即可。
is_sql="select*from zmxzz-a where sj>"&str(startTime)&"AND sj<"&str(stopTime)
还有就是,关于获取时间值的方法和采用的控件,可以参看以下
https://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=42245&cid=1032