技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > wincc生成excel报表时,oRs.MoveFirst这句停止运行

wincc生成excel报表时,oRs.MoveFirst这句停止运行

刘玉蓉 发布于2014-11-26 17:30 1243 0 标签:

在oRs.MoveFirst这句的前后加了:
xlsApp.Cells(10, 2).Value = 6
MsgBox "Open with1:" & m
If (m > 0) Then
MsgBox "Open with2:" & m

oRs.MoveFirst
MsgBox "Open with3:" & m
       运行时出了Open with2:5。但是没出后一个Open with3:;所以我判断是到oRs.MoveFirst停止运行的。并且xls表上,也只在10B写了个6,其他地方都空着。

       下面是源代码:
       Sub OnClick(ByVal Item)                        
Dim xlsApp
Dim sDsn
Dim sSer
Dim sCon
Dim sSql
Dim conn
Dim oRs
Dim oCom
Dim sPro
Dim m, n, s
Dim a, b, c

sPro = "Provider=WinCCOLEDBProvider.1;"
sDsn = "Catalog=CC_ceepc_cs_14_01_15_06_41_10R;"
sSer = "Data Source=CEEPC-33WINCC"
sCon = sPro + sDsn + sSer

sSql = "Tag:R,("ProcessValueArchive氨气流量";"ProcessValueArchive频率反馈2"),"2014-04-3 18:24:00.000","2014-04-3 20:28:00.000""

MsgBox "Open with:" & vbCr & sCon & vbCr & sSql & vbCr

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
m = oRs.Fields.Count
Set xlsApp = CreateObject("Excel.Application")
xlsApp.Visible = True
xlsApp.Workbooks.Open "C:UsersAuserDesktopss.xls"


xlsApp.Cells(10, 2).Value = 6

MsgBox "Open with1:" & m

If (m > 0) Then

MsgBox "Open with2:" & m

oRs.MoveFirst

MsgBox "Open with3:" & m
n = 1
MsgBox "Open with4:" & m
xlsApp.Cells(1, 1).Value = oRs.Fields(0).Name
xlsApp.Cells(1, 2).Value = oRs.Fields(1).Name
xlsApp.Cells(1, 3).Value = oRs.Fields(2).Name
xlsApp.Cells(1, 4).Value = oRs.Fields(3).Name
xlsApp.Cells(1, 5).Value = oRs.Fields(4).Name
Do While Not oRs.EOF
n = n + 1
xlsApp.Cells(n, 1).Value = oRs.Fields(0).Value
xlsApp.Cells(n, 2).Value = oRs.Fields(1).Value
xlsApp.Cells(n, 3).Value = FormatNumber(oRs.Fields(2).Value, 2)
xlsApp.Cells(n, 4).Value = Hex(oRs.Fields(3).Value)
xlsApp.Cells(n, 5).Value = Hex(oRs.Fields(4).Value)
oRs.MoveNext
Loop
xlsApp.ActiveWorkBook.Save
xlsApp.Workbooks.Close
xlsApp.Quit
Set xlsApp = Nothing
End If
oRs.Close
Set oRs = Nothing
conn.Close
Set conn = Nothing

End Sub


我对以上代码还有2个问题,帮忙解答一下:
1、我安装了wincc7.0就可以使用Provider=WinCCOLEDBProvider.1;不需要再安装WinCC OLE DB吧。
2、ProcessValueArchive是我变量记录中的归档名称,用户归档没有加变量。

佳答案

请参考
 https://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0048
A0048“WinCC V6 使用技巧”演示项目及使用说明(2006.08.18)    
DemoV6画面PA7_bld04.pdl,PA7_bld05.pdl中vbs访问变量归档的方法

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签