Wincc ODBC連接ACCESS數據庫, MshflexGird控件顯示數據
 
 wincc自帶安裝SQL數據庫,連接不上,退而求其次只能使用ACCESS數據庫了,好多人說ODBC方法過時了,但是對于我們這些對數據查詢量較小,查詢頻率較低的高級語言初學者來說,該方法還是比較實用。
 MshflexGird控件,個別電腦上可能沒有注冊,可以在網上下載重新注冊,這次嘗試了好多次可以注冊,但是在添加的時候總是報錯,使用較笨的方法安裝了VB6.0,
 MshflexGird控件的屬性比如列數,行數,列寬,列頭注釋等等。百度一下有好多文檔介紹
 腳本部分:
 Dim objConnection  
 Dim strConnectionString 
 Dim strSQL  
 Dim objrs
 Dim chaxun
 Dim i
 Dim j
 '定義報表控件
 Dim aa
 'chaxun=HMIRuntime.Tags("管號查詢輸入").Read
 '數據庫連接字符串
 strConnectionString = "Provider=MSDASQL;DSN=REPORT;UID=;PWD=;"
  strSQL = "select * from report order by 編號 ASC;" 
   Set objConnection = CreateObject("ADODB.Connection") 
   objConnection.ConnectionString = strConnectionString 
 objConnection.Open 
   Set objrs = CreateObject("ADODB.RecordSet") 
  objrs.open  strSQL,objConnection
 
  '數據循環寫入MSFlexgrid控件
 Set aa = ScreenItems("控件5")
 aa.rows = 2
 '設置列頭文字
 aa.FormatString = "^序號^管號^管徑^管長^壁厚^材質^試壓壓力Mpa^保壓時間S^試壓日期^結束時間^開始時間^操作員^班次^結論^標準^規格^溫度℃"
 '設置列寬度
 For j=2 To 14
   aa.ColWidth(j)=1500
 Next
 j=j+1
 aa.ColWidth(1)=2000
 aa.ColWidth(15)=2000
   '寫入數據
 On Error Resume Next
 objrs.moveFirst
     Do While Not objrs.eof
     For i=0 To 16
       aa.TextMatrix(aa.Rows-1,i)=objrs.fields(i).value
      Next
      aa.Rows=aa.Rows+1
       objrs.movenext
       Loop
  '釋放連接
  objrs.close
 Set objrs = Nothing 
   objConnection.Close 
   Set objConnection = Nothing