|
×马上注册,结交更多工控达人,分享经验,让你轻松玩转追梦工控论坛。 已有帐号? 点击登录 或者
按照例子我可以实现:
1、创建一个excel表,将变量归档的数据写进去
2、创建一个与IO域中输入日期为名称的excel表
但是我无法将上面两个合起来,及点击一次按钮,创建一个与当前IO域值为名称的excel表,并且将数据写在这个表中。
我现在只能创建表,然后表里面是空的。
下面是代码</P>
Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)
Dim xlsApp
Dim sDsn
Dim sSer
Dim sCon
Dim sSql
Dim conn
Dim oRs
Dim oCom
Dim sPro
Dim m, n, s, x_f, x_n, l
Dim a, b, c
Dim TimeFrom, TimeTo
Dim patch,Day
\'\'\'\'\'\'\'\'\'\'\'\'\'选择读取归档变量的时间区间
Set TimeFrom = HMIRuntime.Tags("DayFrom")
TimeFrom.Read
Set TimeTo = HMIRuntime.Tags("DayTo")
TimeTo.Read
\'\'\'\'\'\'\'\'\'\'\'\'\'\'创建excel表路径
Day = HMIRuntime.Tags("Day").Read
patch = "e:" & Day & ".xls"
\'\'\'\'\'\'\'\'\'\'\'\'\'\'例子内容
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频率反馈1\';\'ProcessValueArchive频率反馈2\';\'ProcessValueArchive出口气压力\';\'ProcessValueArchive出口水压力\';\'ProcessValueArchive储罐温度\';\'ProcessValueArchive储罐液位\'),\'" + TimeFrom.Value + "\',\'" + TimeTo.Value + "\'"
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
x_f = oRs.RecordCount/7
Set xlsApp = CreateObject("Excel.Application")
\'xlsApp.DisplayAlerts = True
xlsApp.Visible = True
\'xlsApp.Workbooks.Open "C:UsersAuserDesktopss1.xls"
\'\'\'\'\'\'\'\'\'\'\'创建新excel表 我最担心这里有问题
xlsApp.Workbooks.Add
xlsApp.Save patch
xlsApp.Workbooks.Open patch
\'xlsApp.Workbooks.Open "C:UsersAuserDesktopss1.xls"
\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'\'例子内容
If (m > 0) Then
oRs.MoveFirst
n = 0
l = 1
xlsApp.Cells(1, 1).Value = "时间"
xlsApp.Cells(1, 2).Value = "氨水流量 m3/h"
xlsApp.Cells(1, 3).Value = "频率反馈1 Hz"
xlsApp.Cells(1, 4).Value = "频率反馈2 Hz"
xlsApp.Cells(1, 5).Value = "出口气压 Mpa"
xlsApp.Cells(1, 6).Value = "出口水压 Mpa"
xlsApp.Cells(1, 7).Value = "储罐液位 m"
xlsApp.Cells(1, 8).Value = "储罐温度 ℃"
Do While Not oRs.EOF
x_n = n Mod x_f
l = Int(n / x_f)
xlsApp.Cells(x_n+2, 1).Value = oRs(1) \'时间
xlsApp.Cells(x_n+2, (l+2)).Value = oRs(2) \'值
n = n + 1
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 |
|