WINCC读取ACCESS问题111

ACCESS里面的数据如图1;
脚本如下。
Dim sqlaccess
Set sqlaccess = HMIRuntime.Tags("sqlaccess")
   sqlaccess.Write "select * from wincc where ID=2 " 
查询结果。只显示第一列的内容。
怎么回事呢?

问题补充:
已经在布局里连接了变量sqlaccess.
肯定也连接成功了,因为能查询到第一列的数据。
select * 不就是全部读吗?还是需要写循环读?

图片说明:

WINCC读取ACCESS问题111   

最佳答案

SQL语句执行完,查询的的结果放在数据集合里面,需要用语句进行遍历
遍历的部分代码如下:
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = sSql
''''填充数据到Excel中
Set oRs = oCom.Execute
m = oRs.RecordCount ''''查询后的数据记录,如过没有,等于0
If (m > 0) Then
oRs.MoveFirst ''''数据集移动到第一段
i=3
Do While Not oRs.EOF ''''是否到记录末尾,循环填写表格
objExcelApp.Worksheets(sheetname).cells(i,1).value= CStr(oRs.Fields(0).Value)
objExcelApp.Worksheets(sheetname).cells(i,2).value= CStr(oRs.Fields(1).Value)
objExcelApp.Worksheets(sheetname).cells(i,3).value= CStr(oRs.Fields(2).Value)
objExcelApp.Worksheets(sheetname).cells(i,4).value= CStr(oRs.Fields(37).Value)
oRs.MoveNext ''''数据集往下移动一个
i=i+1
Loop
参考一下下面的手册吧:
在WinCC中如何使用VBS读取报警记录数据到EXCEL
https://support.industry.siemens.com/cs/cn/zh/view/77938393
在WinCC中如何使用VBS读取变量归档数据到EXCEL
https://support.industry.siemens.com/cs/cn/zh/view/77940055
通过VBS脚本在ListView控件中显示WinCC的变量记录
https://support.industry.siemens.com/cs/cn/zh/view/74932765
WinCC、Excel、VBA、脚本、连通性软件包
https://support.industry.siemens.com/cs/cn/zh/view/71676391
补充:
是的,是select * 是全部选择了,但是选择的数据就像一个EXCEL表格,数据一次只能显示一行,oRs.MoveFirst,就是数据显示第一行的,然后oRs.MoveNext,就是把数据往下移动一行,显示的是下一行,oRs.EOF是判断数据到没到结尾,最后一行的下一行,成了空白了;所以,还是得用遍历一下数据组,才能全部显示出来,这样能明白吗?

提问者对于答案的评价:
反正是不会写。我在布局每个变量分别建一个ODBC连接,多写几个语句,结果就全部显示出来了。哈哈。。。。
知道需要写循环就好,慢慢来

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月6日 下午7:16
下一篇 2017年6月6日 下午7:16

相关推荐

  • wincc v6.0 sp3 asia改变项目属性后没有到数据库的连接

    我把项目属性中的多用户项目改成单用户项目后,退出重新启动wincc,进来后历史表格和历史趋势都没有到数据库的连接,以前v6.0版本的时候我为了模拟产生数据片段向前修改时间,改回正确…

    SIMATIC WinCC 2019年6月11日
  • wincc管道液体流动画面

     wincc管道液体流动画面,当泵、或者阀门为“1”时,触发管道启动液体流动,在找答案里搜到的答案是用:管道流动控件、VBS来实现,除了这俩个而外还有没有更好的方法。 至…

    SIMATIC WinCC 2021年7月5日
  • 请问大家这个时间差脚本该怎么做?

    我用两个按钮,两个时间显示,一个时间差显示,做两个日期时间差,单位以秒的计算,但是显示出来的数字很大,请问这是为什么?脚本请看附件,谢谢! 图片说明:    &…

    2021年7月5日
  • WINCC 怎样用C脚本对 MSComm属性操作

    我在WINCC上安装了串口通信控件MSComm,但不知怎样用C脚本对 MSComm属性操作,急啊,请高手指点!!! 最佳答案 转贴:szy868  &…

    SIMATIC WinCC 2019年6月11日
  • wincc与plc的通信问题,很急啊

    在实验室用STEP7做好plc项目,下载之后能够正常运行。现在想做一个wincc界面。通讯连接不上,在诊断的时候读取不到cpu地址2。step7连接plc用的是以太网TCP/IP。…

    2021年7月5日
  • wincc7.3关于web navigator的问题

    IIS已经安装成功,重新运行安装文件,安装web navigator请问,如果作为服务器往外发布的话,我这里应该选那些选项?   &nbsp…

    SIMATIC WinCC 2017年6月1日
  • wincc两个项目怎么合并?

    目前有两个单独的wincc项目,需要合并成一个,主要是把定义好的变量合并到一个项目中。 最佳答案 先要看下变量名有没有重复的,要是没有重复的在一个工程里拷贝需要的变量,关闭工程,再…

    SIMATIC WinCC 2019年6月11日
  • 怎样只运行WinCC画面

    怎样只运行WinCC画面,不能退出,锁键盘,如锁“Windows"键,请各位老大指教。 最佳答案 1、首先,打开WinCC项目后,先选择左上侧的“Computer”节点;…

    SIMATIC WinCC 2019年6月11日
  • WinCC与S7-200模拟量显示

    S7-200模拟量VD300通过OPC PC Acces 转换后为“有符号16位”,WinCC需要显示这个变量,如温度、压力等,可是现在显示不了,S7…

    SIMATIC WinCC 2019年6月10日
  • 关于输入输出域的报警

    用输入输出域来显示1个变量T, 当T值大于T1值(变量)时,输入输出域的背景色变为红色。 请问: 1.是不是必须用脚本编程?有没有简单的设置方法?&n…

    SIMATIC WinCC 2019年6月11日