技术论坛

WINCC V7.4通过VB访问归档数据库

作者 主题
侠客

经验值: 829
发帖数: 330
精华帖: 0
主题:【求助】WINCC V7.4通过VB访问归档数据库


只看楼主 楼主 2020-07-08 23:47:01

大家好,项目里有个数据分析需求,需要通过VB访问归档数据,然后算出最小值,最小值。参照手册和资料,写了VB脚本,但运行的时候没有正常运行,弹出如下画面,请问这是哪里有问题?




天天向上
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1631288&b_id=5&s_id=0&num=7

版主

经验值: 17336
发帖数: 8475
精华帖: 18
回复:WINCC V7.4通过VB访问归档数据库


只看楼主 1楼 2020-07-09 08:11:23

连接字符串少了Catalog=

Provider=WinCCOLEDBProvider.1;Catalog=CC_****


无论成与败,无论甜与苦,我还是我。
以下网友喜欢您的帖子:

  
侠客

经验值: 829
发帖数: 330
精华帖: 0
回复:WINCC V7.4通过VB访问归档数据库


只看楼主 楼主 2楼 2020-07-09 10:08:33
以下是引用城外之人在2020-07-09 08:11:23的发言 >1楼

连接字符串少了Catalog=

Provider=WinCCOLEDBProvider.1;Catalog=CC_****

多谢“城外之人”,确实是少写了这几个字符串。加上之后就可以往下运行 了


天天向上
以下网友喜欢您的帖子:

  
侠客

经验值: 829
发帖数: 330
精华帖: 0
回复:WINCC V7.4通过VB访问归档数据库


只看楼主 楼主 3楼 2020-07-09 10:38:35

现在虽然可以顺利往下运行,但是在执行MSGBOX指令时,依然后弹出之前的窗口,这个是正常的吗?

还有就是我们里面的开始时间,结束时间,是否要减8小时,我看有的例程在减,有的没减





天天向上
以下网友喜欢您的帖子:

  
侠客

经验值: 829
发帖数: 330
精华帖: 0
回复:WINCC V7.4通过VB访问归档数据库


只看楼主 楼主 4楼 2020-07-09 10:42:44

补充一下,现在是没有返回数据,是否是因为时间不对?因为在设定的起止时间里是有数据的。


天天向上
以下网友喜欢您的帖子:

  
侠客

经验值: 829
发帖数: 330
精华帖: 0
回复:WINCC V7.4通过VB访问归档数据库


只看楼主 楼主 5楼 2020-07-10 00:15:24
终于有结果了,是因为时间格式问题,年月日之间应该是中杠。改好后,数据正常了。
但系统时间是北京时间,而数据库是UTC时间,北京时间比UTC时间早8小时,所以需要将起止时间分别减去8小时,然后再转成字符串。
begintime=CStr(DateAdd("h",-8,CDate(begintime)))
在这个数据转换的过程中,我发现经DateAdd计算过的时间数据再转换成字符串时,年—月—日变成了年/月/日,这又和sql命令格式不同了,无法读取数据,哪位知道如何将斜杠变成中杠?忘不吝赐教

天天向上
以下网友喜欢您的帖子:

  
侠客

经验值: 829
发帖数: 330
精华帖: 0
回复:WINCC V7.4通过VB访问归档数据库


只看楼主 楼主 6楼 2020-07-10 00:35:01
经查,这个转换时间格式和电脑系统的时间显示格式有关,将电脑显示的时间格式改为年—月—日后,时间转换后格式正确。完美解决!
天天向上
以下网友喜欢您的帖子:

  
版主

经验值: 17336
发帖数: 8475
精华帖: 18
回复:WINCC V7.4通过VB访问归档数据库


只看楼主 7楼 2020-07-10 08:01:35

也可以手动格式化时间字符串。

Dim dBeginTime,sBeginTime

dBeginTime = DateAdd("h",-8,CDate(begintime))

 sBeginTime = CStr(Year(dBeginTime)) _

                    & "-" & Right("00" & CStr(Month(dBeginTime)),2) _

                    & "-" & Right("00" & CStr(Day(dBeginTime)),2) _

                    & " " & Right("00" & CStr(Hour(dBeginTime)),2) _

                    & ":" & Right("00" & CStr(Minute(dBeginTime)),2) _

                    & ":" & Right("00" & CStr(Second(dBeginTime)),2)

格式化后,表达式结果为:2020-07-10 08:01:25



无论成与败,无论甜与苦,我还是我。
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
WINCC V7.4通过VB访问归档数据库
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。