ACCESS里面的数据如图1;
脚本如下。
Dim sqlaccess
Set sqlaccess = HMIRuntime.Tags("sqlaccess")
sqlaccess.Write "select * from wincc where ID=2 "
查询结果。只显示第一列的内容。
怎么回事呢?
问题补充:
已经在布局里连接了变量sqlaccess.
肯定也连接成功了,因为能查询到第一列的数据。
select * 不就是全部读吗?还是需要写循环读?
图片说明:
最佳答案
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