wincc多变量归档查询的问题

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'),...直接在查询变量那添加,可是我做了之后根本就行不通,想知道2个变量归档,第二个变量归档怎么实现查询。网上有的说做两个记录集查询,试了,结果多表查询会出现BOF和EOF游标冲突,VB基础薄弱,请各位前辈能指点一下2个变量怎么实现查询

最佳答案

参考一下:
http://mp.weixin.qq.com/s/jGeX3Z7RMxECfBLG_0AO0g

里面的文档里有关于这个详细的介绍
主要是你查询到的数据以一个表格形式排列下来的

提问者对于答案的评价:
感谢任老大,还是通过你的方法可以实现

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午12:39
下一篇 2021年7月5日 下午12:39

相关推荐

  • wincc调用Dll

    前些日子在论坛里看到有关WIncc调用DLL的文献,学习了一下!感觉挺好,由于高级语言不怎么精通,有个问题还请各位高手指点一下!  WIncc调用C语言封装的D…

    SIMATIC WinCC 2019年6月11日
  • Wincc 7.3.0 授权问题

    各位大牛好,有个问题想请教下。  在客户现场安装的wincc 版本是 v7.3.0  。但是采购的授权却是 w…

    2017年6月8日
  • wincc与PLC中断通讯的时候,外部变量的值

    当wincc与PLC中断的时候,我这个时候去读外部变量的值的时候,外部变量的值是多少,是变成0?还是保持通讯中断前的值,还有,wincc变量趋势表格控件中,有些变量出现0.00u,…

    SIMATIC WinCC 2019年6月11日
  • 西门子hmi显示问题

    hmi可输入界面本来输入以后应该显示空白可输入字符,但是下载以后全部显示#号,不是空间问题,长度宽度改了没用 最佳答案 是显示位数问题,在显示格式那修改,改成需要的最大的显示位数,…

    SIMATIC WinCC 2021年7月5日
  • WINCC启动慢

    为什么我的在线工控机WINCC画面启动加载到Tag Logging Run Time到80%,加载组态数据到25%就卡住呢?程序提示正在运行,也不死机…

    SIMATIC WinCC 2019年6月11日
  • wincc7.3滚动条组态时有显示,运行后和背景融为一体啦,请大神帮忙。

    wincc7.3滚动条组态时有显示,运行后和背景融为一体啦,请大神帮忙。 钻石用户推荐最佳答案 项目是从低版本移植的?新建个项目看看呢还有检查下wincc和系统的兼容性https:…

    SIMATIC WinCC 2020年11月1日
  • wincc7.3变量批量实时显示

    wincc7.3变量如何批量在画面实时显示?包括文本与单位(如图)。如果要显示几百个我们不可能一个个都用输入输出域每个编辑吧。 图片说明:    最佳答案 通过…

    2021年7月5日
  • WinCC,日期时间的记录并显示

    我需要在WinCC中显示出某个变量动作的时间记录,日期和几点几分都要有,直接显示在WinCC的窗口上。比如一旦M0.0=1,则记录下当时的日期(比如2017-6-26)及时间(比如…

    SIMATIC WinCC 2021年7月5日
  • wincc软件在哪儿

    怎么安装 钻石用户推荐最佳答案 转帖http://www.ad.siemens.com.cn/productportal/prods/s7-1200_plc_easy_plus/0…

    SIMATIC WinCC 2021年7月5日
  • 关于WINCC中全局脚本的问题

    在工程中我想通过一个变量的值变化来输出不同的字符串.比如变量值为1输出"AAG.",变量值为2输出"BBG.",要通过全局脚本中的C编辑器来…

    SIMATIC WinCC 2020年11月1日

发表回复

登录后才能评论