在画面中用VBS访问数据库

要在画面中获得归档数据库中的数据,一共有四个I/O域,1号用于输入开始查询的时间,2号用于输入查询结束的时间,3号用于输入归档周期,这三个I/O域的输入格式都要参考wincc6.0专用归档命令所要求格式,4号用于输出查询结果。
 我编写的代码如下,编译没什么错误,但就是到了用MsgBox测试的那一句,就是没有结果,也不像在上面的其他地方有对话框弹出,能不能请高手看一下,多谢!!!!如果要改的话,要改哪一点呢???总觉得那个RecordSetObj.Fields().Value这里有点问题,因为不知道要用哪个字段!!!!!
 Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
 Dim starttime
 Dim endtime
 Dim periodtime
 Dim ConnectionObj
 Dim Connectionstring
 Dim CommandStr_TimeStart 
 Dim CommandStr_TimeEnd
 Dim CommandObj
 Dim RecordSetObj

 Dim resultt
 Dim temp1
 Dim temp2

 Set resultt=HMIRuntime.Tags("Result")
 starttime=HMIRuntime.Tags("TimeStart").Read 
 endtime=HMIRuntime.Tags("TimeEnd").Read 
 periodtime=HMIRuntime.Tags("TimePeriod").Read 

  'a=ScreenItems("shurushuchuyu1").OutputValue
  'b=ScreenItems("shurushuchuyu2").OutputValue
  'c=ScreenItems("shurushuchuyu3").OutputValue
  
 Connectionstring="Provider=WinCCOLEDBProvider.1;Catalog=CC_sdsd_09_01_05_09_38_35R;Data 

 Source=.\WinCC"
 CommandStr_TimeStart="Tag:R,'ProcessValueArchive\NewTag',"
 CommandStr_TimeStart=CommandStr_TimeStart+"'"+starttime+"'"+","+"'"+starttime+"'"'+"+"+"'"+p

 eriodtime+"'"
 CommandStr_TimeEnd="Tag:R,'ProcessValueArchive\NewTag',"
 CommandStr_TimeEnd=CommandStr_TimeEnd+"'"+endtime+"'"+","+"'"+endtime+"'"'+"+"+"'"+periodtim

 e+"'"

 Set ConnectionObj=CreateObject("ADODB.Connection")
 ConnectionObj.ConnectionString=Connectionstring
 ConnectionObj.CursorLocation=3
 ConnectionObj.Open

 Set RecordSetObj=CreateObject("ADODB.Recordset")
 Set CommandObj=CreateObject("ADODB.Command")

 CommandObj.ActiveConnection=ConnectionObj
 CommandObj.CommandType=1

 CommandObj.CommandText=CommandStr_TimeStart
 Set RecordSetObj=CommandObj.Execute
 temp1=RecordSetObj.Fields(1).Value
 MsgBox temp1
 CommandObj.CommandText=CommandStr_TimeEnd 
 Set RecordSetObj=CommandObj.Execute
 temp2=RecordSetObj.Fields(1).Value

 
 resultt.Write temp2-temp1
 MsgBox resultt
 RecordSetObj.Close

 Set RecordSetObj=Nothing
 Set CommandObj=Nothing
 ConnectionObj.Close
 Set ConnectionObj=Nothing
 End Sub

问题补充:
下面的是正确答案,对此答案的解释见下面的网址:
 http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=5&a_id=516891&s_id=&num=4#anch
  Dim starttime
  Dim endtime

  Dim ConnectionObj
  Dim Connectionstring
  Dim CommandStr_TimeStart 
  Dim CommandStr_TimeEnd
  Dim CommandObj
  Dim RecordSetObj
  Dim resultt
  Dim temp1
  Dim temp2
  starttime=HMIRuntime.Tags("TimeStart").Read 
  endtime=HMIRuntime.Tags("TimeEnd").Read 
  HMIRuntime.Tags("Result").Write 0

 Connectionstring="Provider=WinCCOLEDBProvider.1;Catalog=CC_cc_09_01_07_13_16_32R;Data Source=.\WinCC"
  CommandStr_TimeStart="Tag:R,'cc\NewTag',"
  CommandStr_TimeStart=CommandStr_TimeStart+"'"+starttime+"'"+","+"'"+endtime+"'"
  Set ConnectionObj=CreateObject("ADODB.Connection")
  ConnectionObj.ConnectionString=Connectionstring
  ConnectionObj.CursorLocation=3
  ConnectionObj.Open

  Set RecordSetObj=CreateObject("ADODB.Recordset")
  Set CommandObj=CreateObject("ADODB.Command")
  Set CommandObj.ActiveConnection=ConnectionObj
  CommandObj.CommandType=1
  CommandObj.CommandText=CommandStr_TimeStart

  Set RecordSetObj=CommandObj.Execute
  RecordSetObj.MoveFirst
  temp1=RecordSetObj.Fields(2).Value
  RecordSetObj.MoveLast

  temp2=RecordSetObj.Fields(2).Value
  resultt=temp2-temp1
  HMIRuntime.Tags("Result").Write resultt

  RecordSetObj.Close
  Set RecordSetObj=Nothing
  Set CommandObj=Nothing
  ConnectionObj.Close
  Set ConnectionObj=Nothing

最佳答案

CommandStr_TimeStart和CommandStr_TimeEnd是多少呢?
 必须的符合WinCCOLEDBProvider的查询语法才行啊。

提问者对于答案的评价:
正确答案见上,感谢关注!!!

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

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

相关推荐

  • WINCC工业以太网

    请问WINCC怎么样进行工业以太网通讯?(使用普通网卡,另一台计算机不使用WINCC)。 问题补充:另一台不用WINCC 怎么读取? 另一台上没有装WINCC …

    SIMATIC WinCC 2019年6月11日
  • EXCEL WINCC

    客户在一个EXLEL数据中建立一组数据,此数据作为数据配方要导入到WINCC中1.大家有和思路,是直接导入到WINCC变量中还是导入到用户归档中?2.安装WINCC7.0后发现,打…

    SIMATIC WinCC 2017年8月26日
  • WinCC画面延迟严重

    软硬件配置:WinCC7.5 ,TIA博图V16,下位机1513R冗余CPU,工程师站+操作员站,PC均配置内存8G,I5-9500 3.00GHz,64位wi…

    2021年7月5日
  • 如何用wincc组态上位机登陆界面

    小弟新手,请问各位前辈如何用wincc组态上位机的登陆画面,就是需要输入用户密码的那种。 最佳答案 下载中心搜索文档编号:71087 提问者对于答案的评价:谢谢

    SIMATIC WinCC 2021年7月5日
  • 西门子400冗余中的上位机画面怎么才能切换

    西门子400冗余中的上位机画面怎么才能切换,冗余的CPU可以切换,但是上位机画面不能切换,画面上无数据传输,请问在WINCC中还需要做些什么设置啊??? 最佳答案 冗余系统和PC之…

    SIMATIC WinCC 2019年6月11日
  • 安装WinCC后浏览器的字体变的模糊怎么解决?

    我安装WinCC后发现浏览器字体变得模糊了,尝试过重新安装显示驱动,还是不行,如附件所示,请教一下各位大神,有什么办法解决? 问题补充:按住ctrl+鼠标滚轮上下滚动。调整一下页面…

    2017年6月18日
  • WINCC 6.2SP3声音报警

    系统中数字量、模拟量报警差不多750个,只要有任何一个报警出现,不管是驱动主板声卡还是单独播放报警声音都行,如何简易点的方法做呢? 问题补充:由15个系统组成的 最佳答案 数字量、…

    SIMATIC WinCC 2019年6月11日
  • 字符串转数字

    请问wincc中vb脚本如何把字符12转换成数字12?vb中用val可以,但wincc中不可以! 最佳答案 用cint,csng,cdbl等强制转换函数 提问者对于答案的评价:谢谢

    SIMATIC WinCC 2019年6月11日
  • 怎么编辑全局动作啊

    做了个全局动作没反应,请指教! 问题补充:我的意思是,如果我有个内部变量,要在启动WINCC后,对它自动赋一个值,怎么做? 最佳答案 全局脚本中的全局动作时需要触发条件的,例如周期…

    SIMATIC WinCC 2019年6月11日
  • winccflexible2008 sp4安装完成打开出现如下加载界面然后打不开就自动退出了

    打开软件 下面像是在加载一样,过一会就自动退出了  这是什么原因  请大神解答。 问题补充:修复过了  &nb…

    2021年7月5日