发布于 2014-12-17 14:13:39
2楼
'数据库读取
Sub readdata
Dim objConnection
Dim objCommand
Dim objRecordset
Dim strConnectionString
Dim strSQL
Dim STEELNAME,F1,T1,F2,T2,F3,T3,F4,T4,F5,T5
STEELNAME=HMIRuntime.Tags("钢种").Read
'链接数据库
strConnectionString = "DRIVER={SQL server};SERVER=.\WinCC;DATABASE=WINCC;UID=;PWD=;"
Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConnectionString
objConnection.Open
Set objRecordset = CreateObject("ADODB.Recordset")
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
'选择数据
strSQL ="SELECT * FROM STEEL WHERE STEEL="&STEELNAME&""
objCommand.CommandText = strSQL
Set objRecordset=objCommand.Execute'创建结果集
'objRec.movelast
'MsgBox objRec.recordcount
'读取数据
STEELNAME=objRecordset.fields(0).value
F1=objRecordset.fields(1).value
F2=objRecordset.fields(2).value
F3=objRecordset.fields(3).value
F4=objRecordset.fields(4).value
F5=objRecordset.fields(5).value
T1=objRecordset.fields(6).value
T2=objRecordset.fields(7).value
T3=objRecordset.fields(8).value
T4=objRecordset.fields(9).value
T5=objRecordset.fields(10).value
MsgBox "读取成功!"
'写wincc(外部)变量
HMIRuntime.Tags("1#1").write F1
HMIRuntime.Tags("1#2").write F2
HMIRuntime.Tags("1#3").write F3
HMIRuntime.Tags("1#4").write F4
HMIRuntime.Tags("1#5").write F5
HMIRuntime.Tags("1#T1").write T1
HMIRuntime.Tags("1#T2").write T2
HMIRuntime.Tags("1#T3").write T3
HMIRuntime.Tags("1#T4").write T4
HMIRuntime.Tags("1#T5").write T5
'断开链接
Set objCommand = Nothing
objConnection.Close
Set objRecordset = Nothing
Set objConnection = Nothing
End Sub
------------------------------------------------------------------
以上是我做的一个项目,要求是将数据库中的数据读入画面中显示。简单思路为:通过objRecordset.fields(x).value,其中括号中的x为表中一行的序号,参照程序,我是将主键为“&STEELNAME&”(这里是取STEELNAME的值)一行值取出,保留在变量中(F1~F4,T1~T4),再通过HMIRuntime.Tags("1#1").write 将其中的值读取到WINCC变量中(如变量1#1),简单描述为 数据库数据-VB变量-wincc变量