我最近在用wincc7。0SP3AISA做一个用户数据记录归档。我想做一个一直在记录的,当我选取一个时间段查绚的时候,它自动给我生成一个EXCEL表格存在一个地方。我做一个按钮,按钮里面写的脚本,不知道什么原因实现不了,请大家帮我看看这个是什么原因,有类似的实例给我看下也行,急用!先谢了。我写的脚本如下:
SubOnClick(ByValItem)
DimsPro,sDsn,sSer,sCon,conn,sSql,oRs,oCom
DimtagDSNName
Dimm,i
Dimsqldc
DimLocalBeginTime,LocalEndTime,UTCBeginTime,UTCEndTime,sVal
DimobjExcelApp,objExcelBook,objExcelSheet,sheetname
item.Enabled=False
OnErrorResumeNext
sheetname="Sheet1"
SetobjExcelApp=CreateObject("Excel.Application")
objExcelApp.Visible=False
objExcelApp.Workbooks.Open"f:\rec\mod.xls"
objExcelApp.Worksheet(sheetname).Active
SettagDSNName=HMIRuntime.Tags("@DatASourceNameRT")
tagDSNName.Read
SetLocalBeginTime=HMIRuntime.Tags("STrBeginTime")
LocalBeginTime.Read
SetLocalEndTime=HMIRuntime.Tags("strEndTime")
LocalEndTime.Read
Setsqldc=HMIRuntime.Tags("SQLzdh")
sqldc.Read
UTCBeginTime=DateAdd("h",-8,LocalBeginTime.Value)
UTCEndTime=DateAdd("h",-8,LocalEndTime.Value)
UTCBeginTime=Year(UTCBeginTime)&"-"&Month(UTCBeginTime)&"-"&Day(UTCBeginTime)&""&Hour(UTCBeginTime)&":"&Minute(UTCBeginTime)&":"&Second(UTCBeginTime)
UTCEndTime=Year(UTCEndTime)&"-"&Month(UTCEndTime)&"-"&Day(UTCEndTime)&""&Hour(UTCEndTime)&":"&Minute(UTCEndTime)&":"&Second(UTCEndTime)
HMIRuntime.Trace"UTCBeginTime:"&UTCBeginTime&vbCrLf
HMIRuntime.Trace"UTCEndTime:"&UTCEndTime&vbCrLf
SetsVal=HMIRuntime.Tags("sVal")
sVal.Read
sPro="Provider=WINCCOLEDBProvider.1;"
sDsn="Catalog=CC_rec_13_02_20_09_51_17R;"
sSer="DataSource=.\WINCC"
sCon=sPro+sDsn+sSer
Setconn=CreateObject("ADODB.Connection")
conn.ConnectionString=sCon
conn.CursorLocation=3
conn.Open
‘查询命令文本
sSql="SELECT*FROMUA#rec"
‘"select*fromUA#rec"
‘"Tag:R,’rec\zdh’,’"+sqldc.Value+"’"
MsgBox"Openwith"&vbCr&sCon&vbCr&sSql&vbCr,vbOKCancel
SetoRs=CreateObject("ADODB.Recordset")
SetoCom=CreateObject("ADODB.Command")
oCom.CommandType=8
SetoCom.ActiveConnection=conn
oCom.CommandText=sSql
SetoRs=oCom.Execute
m=oRs.RecordCount
If(m>0)Then
objExcelApp.Woeksheets(sheetname).cells(2,1).value=oRs.Fields(0).Name
oRs.MoveFirst
i=3
DoWhileNotoRs.EOF
objExcelApp.Woeksheets(sheetname).cells(i,1).value=oRs.Fields(0).Value
oRs.MoveNext
i=i+1
Loop
oRs.Close
Else
MsgBox"没有所需数据……"
item.Enabled=True
SetoRs=Nothing
conn.Close
Setconn=Nothing
Dimpatch,filename
filename=CStr(Year(Now))&CStr(Month(Now))&CStr(Hour(Now))&CStr(Minute(Now))
patch="d:\"&filename&".xls"
objExcelApp.Workbooks.SaveAspatch
objExcelApp.Workbooks.Close
objExcelApp.Quit
SetobjExcelApp=Nothing
‘ExitSub
EndIf
EndSub
图片说明:
最佳答案
可参考:《WinCC技巧》
htTP://wenku.baidu.com/view/b239190bbb68a98271fefac2.html
《wincc7.0按钮的问题》
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=55480&cid=1032
《WINCC7.0用户归档的问题》
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=61652&cid=1032
提问者对于答案的评价:
thankyou
专家置评
您可以查看WinCC的帮助,在选件ConnectivityPack中有相关连接数据库等样例。