回复:vbs问题

SHANGRILA

  • 帖子

    863
  • 精华

    4
  • 被关注

    33

论坛等级:侠圣

注册时间:2007-04-27

普通 普通 如何晋级?

发布于 2015-06-19 11:53:20

2楼

谢谢,这个问题解决了,但是又报自动化错误。代码如下:

Dim sPro, sDsn, sSer, sCon, sSql
Dim conn, oRs, oCom
Dim DSNName
Dim i As Integer
Dim sStart, sStop As String

Sub get_wincc_data()

'--Get Database DSN name-----------------------------------
Set DSNName = CreateObject("CCHMIRuntime.HMIRuntime")
sDsn = DSNName.Tags("@DatasourceNameRT").Read
'Dim objSQLServer As Object
'Dim objSQLDB As Object

'Set objSQLServer = CreateObject("SQLDMO.SQLServer")
'objSQLServer.LoginSecure = True
'objSQLServer.Connect "LUOYONGHUA\WinCC"

'Set objSQLDB = CreateObject("SQLDMO.Database")
'Determine RT database name from SQL Server
'For Each objSQLDB In objSQLServer.Databases
'If ((Right(objSQLDB.Name, 1) = "R") And (Left(objSQLDB.Name, 2) = "CC")) Then
'sDsn = objSQLDB.Name
'Exit For
'End If
'Next

'--build connection string-----------------------------------
sPro = "Provider=WinCCOLEDBProvider.1;"
sDsn = "CC_OS_1__15_06_10_23_23_00R;"
'sDsn = "Catalog=" & sDsn & ";"
sSer = "Data Source=LUOYONGHUA\WinCC"
sCon = sPro & sDsn & sSer
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

'查询启止时间
sStart = Year(DTPicker1.Value) & "-" & Month(DTPicker1.Value) & "-" & Day(DTPicker1.Value) & " 00:00:00"
sStop = Year(DTPicker1.Value) & "-" & Month(DTPicker1.Value) & "-" & Day(DTPicker1.Value) & " 23:00:00"

'转为UTC时间
sStart = DateAdd("h", -8, CDate(sStart))
sStop = DateAdd("h", -8, CDate(sStop))

'读取Fan1_T1
sSql = "Tag:R,('systemarchive\GI-10001'),'" & sStart & "','" & sStop & "' order by datetime"
oCom.CommandText = sSql
Set oRs = oCom.Execute
If (oRs.EOF) Then
oRs.Close
Else
oRs.MoveFirst
i = 0
Do While Not oRs.EOF
Sheet1.Cells(i + 4, 2) = oRs.Fields("RealValue").Value
oRs.MoveNext
i = i + 1
Loop
oRs.Close
End If

'读取Fan1_T2
sSql = "Tag:R,('systemarchive\GI-10002'),'" & sStart & "','" & sStop & "' order by datetime"
oCom.CommandText = sSql
Set oRs = oCom.Execute
If (oRs.EOF) Then
oRs.Close
Else
oRs.MoveFirst
i = 0
Do While Not oRs.EOF
Sheet1.Cells(i + 4, 3) = oRs.Fields("RealValue").Value
oRs.MoveNext
i = i + 1
Loop
oRs.Close
End If
'读取Fan1_P1
sSql = "Tag:R,('systemarchive\GI-10003'),'" & sStart & "','" & sStop & "' order by datetime"
oCom.CommandText = sSql
Set oRs = oCom.Execute
If (oRs.EOF) Then
oRs.Close
Else
oRs.MoveFirst
i = 0
Do While Not oRs.EOF
Sheet1.Cells(i + 4, 4) = oRs.Fields("RealValue").Value
oRs.MoveNext
i = i + 1
Loop
oRs.Close
End If

'读取Fan1_P2
sSql = "Tag:R,('systemarchive\GI-10004 '),'" & sStart & "','" & sStop & "' order by datetime"
oCom.CommandText = sSql
Set oRs = oCom.Execute

If (oRs.EOF) Then
oRs.Close
Else
oRs.MoveFirst
i = 0
Do While Not oRs.EOF
Sheet1.Cells(i + 4, 5) = oRs.Fields("RealValue").Value
oRs.MoveNext
i = i + 1
Loop
oRs.Close
End If

Set oRs = Nothing
Set conn = Nothing
End Sub


Private Sub DTPicker1_Change()
clear_cell '清除已经填充的数据
get_wincc_data '读取WinCC历史数据

End Sub

Sub clear_cell()
For i = 4 To 27
For j = 2 To 5
Cells(i, j) = ""
Next j
Next i
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
君子以自强不息
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有33028条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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