按照日期查询自定义的问题数据库数据写入excel

上一个问题的内容:
查询产生数据集
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的日历控件分别给定开始日期和结束日期进行查询?

图片说明:

按照日期查询自定义的问题数据库数据写入excel    按照日期查询自定义的问题数据库数据写入excel   

最佳答案

首先要说的是,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)

还有就是,关于获取时间值的方法和采用的控件,可以参看以下
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=42245&cid=1032

另:我也是初学者,大家一起讨论,我觉得挺好。就是不要让管理员以为咱们是在作弊故意你问我答就行,哈哈哈。

提问者对于答案的评价:
你好:研究了好几天,还是不太明白。
如果我要是只查询到天,而时、分、秒不要的话,是不是就要修改sql的数据类型datetime,可是我无论怎么试验都是不行。
如果,可以的话,你再写一写按照天查询的办法,就是按照我提供的图片2,我选择日期后,旁边用ole建立的excel文件自动打开,将相应日期的数据取出来。
谢谢!实在是看不懂。拜托了。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc264112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午2:45
下一篇 2019年6月11日 上午2:45

相关推荐

  • 利用opc通讯

    我的电脑A装有opc server,,,,,我的电脑B安装wincc,,希望电脑B可以获取电脑A的opc server的所有数据,具体应该怎么配置以及操作。 问…

    2017年6月10日
  • 当变量A为1时如何通过WINCC给变量B置1

    我在全局脚本VB的动作里创建了一个动作,此动作的触发器选择的是时间周期。请教我的出发点对吗?请高手赐教 问题补充:两个变量分别为两套PLC的DB变量由同一套WINCC来做。我需要当…

    SIMATIC WinCC 2019年6月11日
  • 西门子触摸屏添加图片

    我想问一下各路大神你们是怎样添加图片的 ,可以添加动态图吗?还有我用visio绘图怎样 添加到图库里 ,还请说的详细点,谢谢 最佳答案 https:/…

    SIMATIC WinCC 2021年7月5日
  • wincc打开已有项目出现的问题

    wincc打开从别的电脑复制过来的项目时,无法正常显示项目,即无法显示计算机名称,也就无法更改项目计算机名称与pc机相同,请问如何处理。(有人说进行复制项目,用wincc自带的项目…

    SIMATIC WinCC 2021年7月5日
  • wincc 延时C脚本

    通过点击鼠标左键 将变量置1 10s后变量由1变0 最佳答案 在wincc 实现延时,比较浪费资源,不建议这么做。按钮按下输出个3秒的脉冲void&n…

    SIMATIC WinCC 2019年6月11日
  • WINCC激活后怎么做个密码才可以进行操作

    请问WINCC激活后怎么做个密码才可以进行操作,我是个刚刚接触WINCC的请各位朋友告诉下,先谢谢了 问题补充:对不起,我是个刚刚搞WINCC的没有看明白怎么做的(英语基本为0,脚…

    SIMATIC WinCC 2019年6月11日
  • wincc用户登陆对话框不能打开

    用wincc复制器复制了一个项目,在办公室的电脑上不能打开用户对话框,即用户名、密码,后来经过处理可打开,现在有一台电脑系统重装了,再安装wincc又不能打开了,以前的处理方法忘了…

    SIMATIC WinCC 2019年6月11日
  • WINCC服务器等问题

    1.一台服务器,多台客服机,只有服务器与PLC连接?只有服务器组态画面等,客服机不用组态?2.两台服务器,多台客服机,2台服务器做冗余。只有2台服务器与PLC连接?只有2台服务器组…

    SIMATIC WinCC 2018年3月6日
  • WICC通讯问题

    s75.4 sp3监控运行正常,,但WINCC6.0SP3和三维力控的软件都读上来数据,也就是通讯不上,通讯卡是CP5611 MPI通讯。设置查了N遍,应该没问…

    SIMATIC WinCC 2019年6月11日
  • WINCC里I/O 域输入值后的事件是哪个?

    现在用的输出值更改的事件,缺点是重复输入同样值时不会触发。有没有事件是输入值后就能触发的? 问题补充:扫码存库的程序,焦点给I/O域,扫码后触发VBS,把条码分解分析内容存变量与归…

    2021年7月5日