各位高手,我厂刚上了一套项目,WINCC与SQL2005连接建立数据库,有一段VB 程序如下,看不太懂,请各位高手给解释一下,万分感谢!!!
Option Explicit
Function action
Dim sDsn
Dim sPro
Dim sSer
Dim sCon
Dim sSql
Dim conn
Dim oRecordSet
Dim oCom
Dim oItem
Dim m, n, s
Dim sTankLevel
Dim sSqlString
Dim connection
Dim oCommand
Dim objTag
Dim str
Dim re
Dim sx
Dim datetime
Dim piece
Dim pditype
Set objTag=HMIRuntime.Tags ("TO_REPORT")
objTag.read
sx=objtag.Value
'test
'MsgBox ("1")
If sx=1 Then
Set objTag=HMIRuntime.Tags ("PRODATE_X")
objTag.read
datetime=Left(CStr(objtag.Value),20) 'objtag.Value
Set objTag=HMIRuntime.Tags ("PIECEID_X")
objTag.read
piece=objtag.Value
Set objTag=HMIRuntime.Tags ("PDI_X")
objTag.read
pditype=objtag.Value
'连接到普通数据库
sTankLevel = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=pdi;Password =pdi;Initial Catalog=CG_MP_ACC;Data Source=accpcs\wincc"
Set connection = CreateObject("ADODB.Connection")
connection.ConnectionString = sTankLevel
connection.CursorLocation = 3
connection.Open
Set oRecordSet = CreateObject("ADODB.RecordSet")
sSqlString = "select * from CG_MP_ACC.dbo.ACC_COOL_REPROT where PRO_DATE =" & "'" & datetime & "'"&" and PRO_PIECEID='"&piece&"'"&"and PDI_TYPE="&pditype
oRecordSet.Open sSqlString, connection, 1, 3
If orecordset.eof=True Then
'MsgBox ("2")
oRecordSet.AddNew
With oRecordSet
.Fields("PRO_DATE") = Left(CStr(datetime),20)
'MsgBox ("22")
.Fields("PRO_PIECEID") =Left(CStr(piece),10)
.Fields("PDI_TYPE") = pditype
'MsgBox ("12")
Set objTag=HMIRuntime.Tags ("STEELGRADE_X")
'objTag.read
'Left(CStr(objTag.read),10)
'MsgBox Left(CStr(objTag.read),10)
.Fields("STEEL_GRADE") = Left(CStr(objTag.read),12)'objTag.Value
Set objTag=HMIRuntime.Tags ("THICK_X")
objTag.read
.Fields("PLATE_THICK") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("WIDTH_X")
objTag.read
.Fields("PLATE_WIDTH") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("MBWD_X")
objTag.read
.Fields("PLATE_MBWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("ZZWD_X")
objTag.read
.Fields("PLATE_ZZWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("KLWD_X")
objTag.read
.Fields("PLATE_KLWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("ZLWD_X")
objTag.read
.Fields("PLATE_ZLWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("T3_LASTPLATE")
objTag.read
.Fields("PLATE_FQWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("SPEED_X")
objTag.read
.Fields("PLATE_SPEED") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("KQMS_X")
objTag.read
.Fields("KQMS") =Left(CStr(objTag.Value),18)
Set objTag=HMIRuntime.Tags ("SL_X")
objTag.read
.Fields("WATER_NUM") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("SB_X")
objTag.read
.Fields("WATER_RATIO") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("XZWD_X")
objTag.read
.Fields("XZWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("WATERT_X")
objTag.read
.Fields("WATER_T") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("LQSD_X")
objTag.read
.Fields("LQSD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("A0_X")
objTag.read
.Fields("ALFA") =Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("OP_X")
objTag.read
.Fields("CZMS") = Left(CStr(objTag.Value),5)
'Set objTag=HMIRuntime.Tags ("PDI_DATA")
'objTag.read
'.Fields("PRO_PROID") = Left(CStr(objTag.Value),8)
Set objTag=HMIRuntime.Tags ("WATERP_X")
objTag.read
.Fields("WATER_P") = Left(CStr(objTag.Value),5)
'MsgBox ("3")
End With
'MsgBox ("4")
Else
're=MsgBox ("该生产记录已经存在,原有数据将会被覆盖!",vbYesNoCancel,"警告")
'if re=vbYes then
With oRecordSet
'MsgBox ("3")
.Fields("PRO_DATE") = datetime
.Fields("PRO_PIECEID") = piece
.Fields("PDI_TYPE") = pditype
Set objTag=HMIRuntime.Tags ("STEELGRADE_X")
'objTag.read
.Fields("STEEL_GRADE") = Left(CStr(objTag.read),10)
Set objTag=HMIRuntime.Tags ("THICK_X")
objTag.read
.Fields("PLATE_THICK") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("WIDTH_X")
objTag.read
.Fields("PLATE_WIDTH") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("MBWD_X")
objTag.read
.Fields("PLATE_MBWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("ZZWD_X")
objTag.read
.Fields("PLATE_ZZWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("KLWD_X")
objTag.read
.Fields("PLATE_KLWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("ZLWD_X")
objTag.read
.Fields("PLATE_ZLWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("FQWD_X")
objTag.read
.Fields("PLATE_FQWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("SPEED_X")
objTag.read
.Fields("PLATE_SPEED") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("KQMS_X")
objTag.read
.Fields("KQMS") =Left(CStr(objTag.Value),18)
Set objTag=HMIRuntime.Tags ("SL_X")
objTag.read
.Fields("WATER_NUM") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("SB_X")
objTag.read
.Fields("WATER_RATIO") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("XZWD_X")
objTag.read
.Fields("XZWD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("WATERT_X")
objTag.read
.Fields("WATER_T") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("LQSD_X")
objTag.read
.Fields("LQSD") = Left(CStr(objTag.Value),5)
Set objTag=HMIRuntime.Tags ("A0_X")