在网上找了个WinCC实现定时存储数据至SQLServer的VBS脚本照搬过来结果卡在conn.execute s1这里,不往下执行了,勾选VBS调试也没见报错。甚至都是用msgbox指令试出来这里不执行了,有没有大哥教教,刚入门这个
代码如下:
Dim sCon,conn,oRs,n,i,s1,oCom,strcn,z
Dim riqi,mazhi,qxlx,qxwz,ok
Dim MSFlexGrid1 '对应表格控件名
Dim LocalBeginTime,LocalEndTime
Dim R_JC,Weight,R_FC,GBD
Dim J1
Set J1 = HMIRuntime.Tags("I2") '一个二进制变量Z1
J1.Read
If J1.Read Then
J1.Write 0
Else
J1.Write 1
Set MSFlexGrid1 = HMIRuntime.Screens("a11b11").ScreenItems("a1") '选择画面和画面中的控件
riqi = Now
Dim name
Set name = HMIRuntime.Tags("name1") 'name1源于内部内部变量SQLTest中定义
name.Read
Dim R1
Set R1 = HMIRuntime.Tags("L1")
R1.Read
Dim R2
Set R2 = HMIRuntime.Tags("L2")
R2.Read
Dim R3
Set R3 = HMIRuntime.Tags("L3")
R3.Read
Dim R4
Set R4 = HMIRuntime.Tags("L4")
R4.Read
Dim R5
Set R5 = HMIRuntime.Tags("L5")
R5.Read
'================================================
'================================================
If name.Value = "" Then '如果输入的编号名称为空
'啥也没干
Else
sCon = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist SecurityInfo=False;Initial Catalog=test1;Data Source=.\wincc"
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
s1 = "insert into abc (Date,Name,B1,B2,B3,B4,B5) Values ('"&riqi&"','"&name.Value&"','"&R1.Value&"','"&R2.Value&"','"&R3.Value&"','"&R4.Value&"','"&R5.Value&"')"
'msgbox conn.state
Msgbox s1 '这里s1是有数值显示的
conn.execute s1
Msgbox "0" '这个0就不跳没显示了
conn.Close
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
n = MSFlexGrid1.Rows
MSFlexGrid1.TextMatrix(n-1,0) = n - 3
MSFlexGrid1.TextMatrix(n-1,1) = riqi
MSFlexGrid1.TextMatrix(n-1,2) = name.Value
MSFlexGrid1.TextMatrix(n-1,3) = R1.Value
MSFlexGrid1.TextMatrix(n-1,4) = R2.Value
MSFlexGrid1.TextMatrix(n-1,5) = R3.Value
MSFlexGrid1.TextMatrix(n-1,6) = R4.Value
MSFlexGrid1.TextMatrix(n-1,7) = R5.Value
MSFlexGrid1.TopRow = MSFlexGrid1.Rows - 1 '移动到最后一行,显示当前最新数据行
End If
End If