ACCESS里面的数据如图1;
脚本如下。
Dimsqlaccess
Setsqlaccess=HMIRuntime.Tags("sqlaccess")
sqlaccess.Write"select*fromwinccwhereID=2"
查询结果。只显示第一列的内容。
怎么回事呢?
问题补充:
已经在布局里连接了变量sqlaccess.
肯定也连接成功了,因为能查询到第一列的数据。
select*不就是全部读吗?还是需要写循环读?
图片说明:
最佳答案
SQL语句执行完,查询的的结果放在数据集合里面,需要用语句进行遍历
遍历的部分代码如下:
SetoRs=CreateObject("ADODB.Recordset")
SetoCom=CreateObject("ADODB.Command")
oCom.CommandType=1
SetoCom.ActiveConnection=conn
oCom.CommandText=sSql
””填充数据到Excel中
SetoRs=oCom.Execute
m=oRs.RecordCount””查询后的数据记录,如过没有,等于0
If(m>0)Then
oRs.MoveFirST””数据集移动到第一段
i=3
DoWhileNotoRs.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连接,多写几个语句,结果就全部显示出来了。哈哈。。。。
知道需要写循环就好,慢慢来
专家置评
已阅,最佳答案正确。