恭喜,你发布的帖子
发布于 2016-12-23 21:25:12
1楼
On Error Resume Next
'下面是定义变量
Dim SQL_NAME
SQL_NAME="ZYFJ_DAY"
ScreenItems("DateFrom1").value=DateAdd("d", +1, ScreenItems("DateFrom").value) '设置起始时间吧,猜的
Dim By, Bm, Bd
Dim Ny, Nm, Nd
Dim BeginDate,BeginDate1
Dim EndDate,EndDate1
Dim DateFrom,DateFrom1
Set DateFrom = ScreenItems("DateFrom")
Set DateFrom1 = ScreenItems("DateFrom1")
'获取时间
By = Year(DateFrom.Value)
Bm = Month(DateFrom.Value)
Bd = Day(DateFrom.Value)
Ny = Year(DateFrom1.Value)
Nm = Month(DateFrom1.Value)
Nd = Day(DateFrom1.Value)
'形成查询的起始时间
BeginDate = By & "-" & Bm & "-" & Bd & " " &"00:00:00"
EndDate = By & "-" & Bm & "-" & Bd & " " &"23:00:59"
BeginDate1 = Ny & "-" & Nm & "-" & Nd & " " & "00:00:00"
EndDate1 = Ny & "-" & Nm & "-" & Nd & " " & "00:59:00"
'查询语句
Dim SQL
SQL = "Select ThisTime,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13 FROM UA#TL_Daily WHERE ThisDay BETWEEN '" & BeginDate & "' and '" & EndDate & "' or ThisDay BETWEEN '" & BeginDate1 & "' and '" & EndDate1 & "' "
'诊断输出
HMIRuntime.Trace vbCrLf & BeginDate
HMIRuntime.Trace vbCrLf & EndDate
HMIRuntime.Trace vbCrLf & SQL
'定义路径
Dim SQL_Path
SQL_Path=HMIRuntime.ActiveProject.Path & "\SQL\"
HMIRuntime.Trace vbCrLf & "SQL_Path: " & SQL_Path
'诊断输出
HMIRuntime.Trace vbCrLf & SQL
'定义数据库连接
Dim Adodc1
Set Adodc1 = ScreenItems("Adodc1")
Adodc1.ConnectionString="DSN=" & HMIRuntime.Tags("@DatasourceNameRT").Read
Adodc1.RecordSource=SQL
Adodc1.Refresh
'定义表格控件,和属性操作
Dim Spreadsheet1
Set Spreadsheet1=ScreenItems("Spreadsheet1")
Dim ssConstants
Set ssConstants = Spreadsheet1.Constants
Spreadsheet1.ActiveSheet.Protection.Enabled = False
Spreadsheet1.XMLURL=SQL_Path & SQL_Name & ".xml"
'表格控件操作
Dim i, Temp1
Dim intIRow
Spreadsheet1.ActiveSheet.Cells(2, 12).Value=By & "-" & Bm & "-" & Bd
intIRow=5
'查询结果和表格控件填充
If Adodc1.Recordset.recordcount<>0 Then
Do While Not Adodc1.Recordset.eof
intIRow=intIRow+1
For i=0 To Adodc1.Recordset.Fields.Count-1
Spreadsheet1.ActiveSheet.Cells(intIRow, i+1).Value = Adodc1.Recordset.Fields(i)
If i=0 Then
Spreadsheet1.ActiveSheet.Cells(intIRow, i+1).NumberFormat ="HH:MM:SS"
End If
Next
Adodc1.Recordset.MoveNext
Loop
Else
HMIRuntime.Trace vbCrLf & "no data found!!!!"
End If
Spreadsheet1.ActiveSheet.Cells(35, 12).Value=Now
MsgBox("查询完成,记录数:" & Adodc1.Recordset.recordcount )
Set Adodc1=Nothing
End Sub
上面是大概解释
嗯,你这个查询的缺不少脚本,但存的SQL查询应该就差2个对象吧
数据库连接语句也不对
其他没仔细看
参考下面的文档吧
WinCC、Excel、VBA、脚本、连通性软件包
https://support.industry.siemens.com/cs/cn/zh/view/71676391
如何从SQL数据库中通过趋势归档输出变量?
https://support.industry.siemens.com/cs/cn/zh/view/44240726
在WinCC中如何使用VBS读取报警记录数据到EXCEL
https://support.industry.siemens.com/cs/cn/zh/view/77938393
在WinCC中如何使用VBS读取变量归档数据到EXCEL
https://support.industry.siemens.com/cs/cn/zh/view/77940055
通过VBS脚本在ListView控件中显示WinCC的变量记录
https://support.industry.siemens.com/cs/cn/zh/view/74932765
WinCC数据报表实现方法介绍
https://support.industry.siemens.com/cs/cn/zh/view/78668993
请填写推广理由:
分享
只看
楼主