本测试是在哔哩哔哩上找的教程https://www.bilibili.com/video/BV1vV411y7VM?from=search&seid=8697992749928944635,自己按照讲解去做的,主要是把代码提供出来,自己敲的
实现目标:1、把wincc中变量,存储到SQL数据库中
2、查询数据库内容,在控件中显示
步骤:1、软件wincc 7.3、wincc安装自带的sql server 2008 R2
2、新建数据库
3、新建wincc项目--变量建立
4、所用到的控件
5、画面打开脚本:主要实现最新数据显示、连接数据库、控件设置等
Sub OnOpen()
Dim kj1,kj2,kj3,kj4,kj5,kj6
Dim QR
Dim MSFlexGrid1 '对应表格控件名称
Dim LocalBeginTime, LocalEndTime,riqi
Dim oRs,oRs1,n,n1,i,z,s1,s11,oCom,oCom1,strcn,conn,pj
Dim zxy1
'查询当天全部数据,除了控件名称要注意修改外,以上其他为标准
Set MSFlexGrid1 = ScreenItems("aaaa") '对应表格控件名称
riqi = Now
LocalBeginTime = Year(riqi) & "-" & Month(riqi) & "-" & Day(riqi) & "" & "00:00:00"
LocalEndTime = Year(riqi) & "-" & Month(riqi) & "-" & Day(riqi) & "" & "23:59:59"
s1 = "SELECT DT,name,a,b,c,d,e FROM en WHERE DT BETWEEN '" & LocalBeginTime & "' And '" & LocalEndTime & "'ORDER BY DT"
's1后面的内容要对应数据库中列的内容,后面的DT与前面的DT要名称一致,enen要对应数据库列表名称dbo的名称
strcn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist SecurityInfo=False;Initial Catalog=wang;Data Source=.\wincc"
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = strcn
conn.CursorLocation = 3
conn.Open
's1 = "SELECT DT,name,a,b,c,d,e FROM en WHERE DT BETWEEN '" & LocalBeginTime & "' And '" & LocalEndTime & "'ORDER BY DT"
'Set oRs = CreateObject("ADODB.Recordset")
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = s1 '执行检索功能
Set oRs = oCom.Execute
'n = o