关于在Excel中导入Wincc归档数据的问题

已锁定

华夏儿郎

  • 帖子

    50
  • 精华

    0
  • 被关注

    0

论坛等级:游民

注册时间:2006-10-26

普通 普通 如何晋级?

关于在Excel中导入Wincc归档数据的问题

1802

5

2006-12-20 19:38:45

曾经尝试在wincc中用vbs把归档导出到Excel中,虽然实现了,但如果有大量的数据那样导数据实在是太慢,后来想起万版曾经建议在Excle里将wincc的数据导入,于是在wincc.net上下了个例子但那个例子适用与wincc5,这里将代码贴出,请教高手教我如何修改以使之能适用与wincc6

该例子是一个Excel文件,使用vba编程实现外部数据导入
打开该例子会自动调用如下两个函数:
Public cnC As New ADODB.Connection
Public cnR As New ADODB.Connection
Public rs As New ADODB.Recordset


Public Sub GetWinCCDSNName()
Dim fs As s cripting.FileSystemObject, f As s cripting.TextStream
Dim l As Long

Set fs = New FileSystemObject
Set f = fs.OpenTextFile("C:\WinCCDSN.txt", ForReading, False)
With f
l = 0
While Not .AtEndOfStream
l = l + 1
Cells(6, 2).Formula = .ReadLine
Wend
.Close
End With

Set f = Nothing
Set fs = Nothing
End Sub



Public Sub ConnectToDB()
If cnC.State = 1 Then
cnC.Close
End If

If cnR.State = 1 Then
cnR.Close
End If

With Sheet1
.cmbArchivenames.Clear
.cmbArchiveTags.Clear
.cmbArchivenames.Value = ""
.cmbArchiveTags.Value = ""
End With

cnR.ConnectionString = "DSN=" & Sheet1.Range("B6") & "R;UID=dba;PWD=SQL"
cnR.Open

cnC.ConnectionString = "DSN=" & Sheet1.Range("B6") & ";UID=dba;PWD=SQL"
cnC.Open

Set rs = cnC.Execute("select archivname from pde#archives")

While Not rs.EOF
Sheet1.cmbArchivenames.AddItem rs(0)
rs.MoveNext
Wend

rs.Close


Exit Sub
End Sub

然后Excle中有两个combobox控件在他们的click事件中有如下代码:
Private Sub cmbArchivenames_Click()

On Error GoTo ErrTrap

Set rs = cnC.Execute("select varname from pde#tags")

cmbArchiveTags.Clear

While Not rs.EOF
Sheet1.cmbArchiveTags.AddItem rs(0)
rs.MoveNext
Wend

rs.Close
Exit Sub

ErrTrap:
If Err.Number = 3704 Then
MsgBox "No Connection To WinCC"
Else
MsgBox Err.Number
End If

End Sub


Private Sub cmbArchiveTags_Click()

On Error GoTo ErrTrap

Dim row As Integer
row = 20
Set rs = cnC.Execute("select t,v from pde#hd#" & cmbArchivenames.Value & "#" & cmbArchiveTags.Value & " order by t") '关键在这里执行不过去

Sheet1.Range("E:F").ClearContents
Sheet1.Range("E19") = "DateTime"
Sheet1.Range("F19") = "Value"

While Not rs.EOF
Sheet1.Cells(row, 5) = rs(0)
Sheet1.Cells(row, 6) = rs(1)
rs.MoveNext
row = row + 1
Wend

rs.Close
Exit Sub

ErrTrap:
If Err.Number = 3704 Then
MsgBox "No Connection To WinCC"
Else
MsgBox "Unknown Error" & Err.Number
End If

End Sub


请教高手能为我指点指点,谢谢。
关于在Excel中导入Wincc归档数据的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32569条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。