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

我在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-33\WINCC"
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:\Users\Auser\Desktop\ss.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是我变量记录中的归档名称,用户归档没有加变量。

最佳答案

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

提问者对于答案的评价:
谢谢,后来有数据了。就是只能查看8小时前的

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月19日 下午1:55
下一篇 2017年11月19日 下午1:55

相关推荐