在画面中用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日
下一篇 2019年6月11日

相关推荐

  • 求DMGetProjectInformation函数的正确用法

    我想通过这个函数获取WinCC正在运行的变量归档名,照着一些参考资料Ret=DMGetProjectInformation (lpszProjectFile, …

    SIMATIC WinCC 2019年6月11日
  • 博图WINCC趋势图

    博图WINCC趋势图,标尺功能怎样使用,为什么显示不出标尺所在位置的数值 问题补充:标尺已经找到可仿真的时候数据后面有个【i.】  是什么意思 最佳答案 在wi…

    2021年7月5日
  • WINCC画面中的热金属检测器的画法

    各位老师 有什么靠谱的意见么 好看的 实用的 库里没找打合适的 特来咨询一下 要求是热检信号来了以后 画面中的…

    SIMATIC WinCC 2018年12月7日
  • 奇怪的wincc flexible问题?

    用默认的两个组,一个组的权限是管理员,另一个组的权限是操作,再建立两个用户,一个用户分配给管理员组,另外一个用户分配给操作组,然后做个按扭,各分配一个权限,模拟的时候登陆后正常,当…

    SIMATIC WinCC 2019年6月11日
  • 请教wincc opc 通讯

    请问,用IFIX做的系统大平台,要采集我做的WINCC上位机数据,请问想要实现所述功能,在Wincc端如何设置呢,一般情况下Wincc如何与其它平台通讯的呢?听说过OPC,但没搞过…

    SIMATIC WinCC 2019年6月11日
  • 炫酷的HMI怎么做

    KTP的HMI可以做一些看起来高大上的东西吗?比如一些动态的动作等等。。。 最佳答案 可以做,但不如精智版功能多。有俩个实例可以仿真参考一下https://support.indu…

    SIMATIC WinCC 2021年7月5日
  • WINCC 密码保护

    各位大侠  我想在画面里做一个画面切换按钮 当点击按钮时  弹出密码输入框  输入正确的用户名和密码后&nbs…

    SIMATIC WinCC 2019年6月11日
  • WINCC报表数据不是从第3行写?

    有个往EXCEL里写数据的报表,VBS,是一天产生一个文件夹,但是现在出现这样一个怪事,从运行的第一天数据是从第3行写数据进去,比如写到第6行,当第二天的数据是从第7行开始写,前面…

    SIMATIC WinCC 2019年6月11日
  • WINCC7.0 许可到期,该如何解决

    朋友发来一张图,关于wincc7.0的授权,如附件图中所示,第一个应该是授权到期(没有想明白为什么到期了),第二个是不是因为第一个到期,然后引起提示,第二个本身并不是什么授权。这种…

    2021年7月5日
  • 在wincc6.0中,激活时提示脚本不能加载

    在wincc6.0中,激活时提示脚本不能加载 问题补充:全局脚本已在启动参数里选择了 最佳答案 检查下面项目:a.项目路径是否有中文名;b.错误的脚本;C.否安装了STEP7,且版…

    SIMATIC WinCC 2019年6月11日