查询多个归档变量的数据

Dim sPro 
 Dim sDsn 
 Dim sSer 
 Dim sCon 
 Dim sSql 
 Dim oRs 
 Dim conn 
 Dim oCom 
 Dim oItem 
 Dim m, n, s,i
 Dim hourdate 
 Dim secdate 
 Dim k
 Dim oList
 Dim objExcelApp
 Dim oItem2
 Dim dt1,dt2
 dt1=DateAdd("H",-8,ScreenItems("控件12").VALUe) ‘查询的起始时间,wincc采用世界标准的格林时间,与咱的时间差8个小时
 dt2=DateAdd("H",-8,ScreenItems("控件13").VAlUe) ‘查询的终止时间
 ‘下面三行代码是查询所需要的提供者数据源等等
 sPro = "Provider=WinCCOLEDBProvider.1;"
 sDsn = "Catalog=CC_0414_08_04_14_20_46_43R;" ‘改为你的wincc工程的数据库名,
 ‘打开sql有两个与你工程有关的,选择带R的那个
 sSer = "Data Source=.\WinCC"

 sCon = sPro + sDsn + sSer’查询链接串

 sSql= "TAG:R,'ProcessValueArchive\"&ScreenItems("控件8").ValUe&"','"&dt1&"','"&dt2&"'"
 ‘上面这一句是查询语句,从SQL for wincc数据库中查询,可以多项查询,详见课本
 MsgBox "Open with:" & vbCr & sCon & vbCr & sSql & vbCr
 ‘下面是ADODB查询,需要用到上面的查询链接串,不需要修改
 Set conn = CreateObject("ADODB.Connection")
 conn.ConnectionString = sCon
 conn.CursorLocation = 3
 conn.Open
 Set oRs = CreateObject("ADODB.Recordset")
 Set oCom = CreateObject("ADODB.Command")
 oCom.CommandType = 1
 Set oCom.ActiveConnection = conn
 oCom.CommandText = sSql
 Set oRs = oCom.Execute’oRS为查询得到的记录集

 Set objexcelApp=CreateObject("excel.application")
 objexcelApp.visible=True 
 objexcelapp.workbooks.open"d:\book.xls"
 objExcelApp.Sheets(1).Range("a"&Trim(1)) =oRs.Fields(0).Name ‘以下五行是把字段名写到excel的第一行, ,oRS.Fields(0)为查询得到的记录集的第一个字段
 objExcelApp.Sheets(1).Range("b"&Trim(1)) = oRs.Fields(1).Name
 objExcelApp.Sheets(1).Range("c"&Trim(1)) = oRs.Fields(2).Name
 objExcelApp.Sheets(1).Range("d"&Trim(1)) = oRs.Fields(3).Name
 objExcelApp.Sheets(1).Range("e"&Trim(1)) = oRs.Fields(4).Name

 For i=1 To oRs.RecordCount ‘做循环查询

 
 objExcelApp.Sheets(1).Range("a"&Trim(i+1)) =oRs.Fields(0).value
 objExcelApp.Sheets(1).Range("b"&Trim(i+1)) =DateAdd("H",8,oRs.Fields(1).value) ’格林时间
 objExcelApp.Sheets(1).Range("c"&Trim(i+1)) = FormatNumber(oRs.Fields(2).value, 1)
 objExcelApp.Sheets(1).Range("d"&Trim(i+1)) = FormatNumber(oRs.Fields(3).value, 1)
 objExcelApp.Sheets(1).Range("e"&Trim(i+1)) = FormatNumber(oRs.Fields(4).value, 1)
 oRs.MoveNext
 Next

 oRs.Close’一下为关闭excel,关闭连接等,释放资源
 ‘objexcelapp.activeworkbooks.save
 ‘objexcelapp.workbooks.close
 ‘objexcelapp.quit
 Set objexcelapp=nothing
 Set oRs = Nothing
 conn.Close
 Set conn = Nothing
 查询单个已经实现了,我看书上查询多个的语句是这么写的TAG:R,('valname1';'valname2'),----
 上面那一步照葫芦画瓢能实现,可是继续应该怎么写呢?得到记录集oRs
 譬如这两个变量都有四个字段,那么第一个变量对应oRs.Fields(1) oRs.Fields(2)
 oRs.Fields(3) oRs.Fields(4)
 第二个变量
 对应oRs.Fields(5)  oRs.Fields(6)
 oRs.Fields(7) oRs.Fields(8) 吗?
 如果不是应该怎么写呢

问题补充:
就是查询多个变量然后写入到Excel中啊

最佳答案

第二个变量不是 oRs.Fields(5)  这样排下去,它是字段固定,数据依次向后罗列的!

提问者对于答案的评价:
先到者先得了,谢谢各位帮助,的确如你们所说,数据依次所列

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午10:38
下一篇 2019年6月11日 上午10:38

相关推荐

  • 据说现在有西门子的软件全部集合在一起?

    是不是触摸屏软件WINCC和PLC软件都集合到一个软件了,求地址 问题补充:有没有具体地址或下载链接啊 最佳答案 博途软件是这样的。下载地址参见:哪里有TIA PORTA…

    SIMATIC WinCC 2017年11月26日
  • WinCC7.0sp3创建不了结构变量

    我在WinCC7.0sp3里创建了结构类型,但是创建不了结构变量,如附图所示,不知为何我的新建结构变量是灰色的。创建结构变量不是创建了结构类型就可以创建结构变量吗? 问题补充:变量…

    2017年11月1日
  • wincc归档值都是四舍五入吗

    wincc中的归档值都是四舍五入吗?比如比如采集的是18.5,归档就成了19.0? 问题补充:小妹在线等啊,请大师帮帮忙啊? 最佳答案 趋势控件—>数值轴—->…

    SIMATIC WinCC 2019年6月11日
  • WinCC模拟量报警

    我需要监控192个模拟量的上下限报警。请问有什么批量的方法把报警弄好?一个一个输入变量太麻烦了 最佳答案 先做一个模拟量的报警,导出后在Excel中完成所有的报警后再导入。 提问者…

    SIMATIC WinCC 2017年5月29日
  • WINCC V15.1中GSC诊断用法

    想通过GSC诊断窗口显示printf输出的内容,但是在画面中添加GSC诊断窗口后,通过按钮触发printf事件后GSC诊断窗口没有任何输出是为什么?请大神指导。 图片说明: &nb…

    2021年7月5日
  • WinCC flexible admin用户

    请问系统默认的admin用户权限是什么,为什么不能将它添加到创建的组里面呢,在编译是又报错(没有将admin添加到RT组) 问题补充:软件版本是WinCC flexibl…

    2021年7月5日
  • wincc与wincc之间互连。可以ping通对方。但是在wincc里的OPC条目管理器中看不到。。。

    直接添加IP也不能连接。。总是也现红色的小斜杠。。两台机器都是2003的系统。。 1:用户名和密码不同。。因为是不同的地区 2:DCOM配置一样。。(但不确定是…

    SIMATIC WinCC 2019年6月11日
  • Wincc历史趋势授权问题

    项目使用wincc7.2版本的,在运行系统点击趋势画面,不显示曲线,弹出提示授权到期,开发版和运行都正常,就唯独曲线这里提示授权到期,请联系厂家更新授权,否则历史趋势功能将无法使用…

    2021年7月5日
  • 读数据归档数据

    请高手提供读数据归档数据的C脚本指令。 谢谢! 最佳答案 通过 C 脚本 (从 WinCC V4.02 起)&…

    SIMATIC WinCC 2019年6月11日
  • wincc7.0拷贝过来的项目打不开

    提示如下图、求大神~好像是什么数据库服务没启动。。 图片说明:    钻石用户推荐最佳答案 你得确认wincc版本,最好通过迁移工具把工程拷贝过来,感觉是你的w…

    2020年11月1日