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日
下一篇 2017年6月6日

相关推荐

  • 字符串转数字

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

    SIMATIC WinCC 2019年6月11日
  • WINCC报警声音误报

    系统架构是经典WINCC+SETP7,共有5台OS(其中1台为ES/OS)。我组态了一个报警变量,定义了专用的消息类别,关联到声音文件(文件是正常的),组态步骤如图,经程序模拟测试…

    2020年11月1日
  • 请问可以在wincc画的曲线上标注某点的坐标值么?

    用wincc的FunctionTrend控件画曲线,拖动光标线时,曲线与光标线的交点的坐标值显示在旁边的数框中。现在想要把坐标值标注在曲线上,请问有什么办法么? 问题补充:谢谢绿野…

    SIMATIC WinCC 2019年6月11日
  • WinCC 7.4如何两个画面分别显示当前存在的报警与历史报警记录

    如题,WinCC 7.4如何两个画面分别显示当前存在的报警与历史报警记录?我想达到的功能是:1、一个画面只显示当前还存在的报警,如果报警被确认并且PLC里的报警已经消除,…

    2021年7月5日
  • WINNC输入输出域可以读不可以写入数据

    WINCC可以用按钮控制启停,用输出域也可以看到数据,但用输出域不能写入数据,写入模拟量频率,开关量等 最佳答案 此回答已完善 选择输入输出格式 图片说明:  &nbsp…

    2020年11月1日
  • 两台WINCC的OPC通信

    两台计算机一台在设备现场通过pc access读取s7-200运行正常,如果远程计算机通过Internet访问现场计算机应如何实现?有资料没有发我邮箱一份?谢谢 问题补充…

    SIMATIC WinCC 2019年6月11日
  • wincc v7.3报警控件中如何筛选数据

    在wincc v7.3中如何筛选报警数据? 问题补充:麻烦各位能详细叙述一下。 最佳答案 筛选报警记录,可以用控件自带的筛选功能,请参考官方文档中的方法:如何在运行系统的…

    SIMATIC WinCC 2021年7月5日
  • 溶液记录无法打开

    溶液的加药记录无法打开 问题补充:wincc里有个添加药业的记录,通过网页查看的  现在无法打开,ie也打不开ftp://local 图片说明:  &…

    2021年7月5日
  • 西门子触摸屏开不开机

    就是在下在程序的时候中断了一下再开机就变成这样了,现在还有什么解决方法吗。 图片说明:    最佳答案 由于你写入数据突然断电,导致操作系统丢失,所以只能恢复出…

    2021年7月5日
  • 如何把WINCC中的报警记录导入到EXCEL中

    我想把报警记录倒到EXCEL表格里,见图,报警记录有400多条。该如何操作呢?请教了! 图片说明:    最佳答案 参考同类问题的解答:http://www.a…

    2019年6月11日