发布于 2006-10-24 09:24:07
0楼
谢谢斑竹提醒,我都急糊涂了。贴出来,大家帮忙看看,谢谢啦!
Dim sPro As String
Dim sDsn As String
Dim sSer As String
Dim sCon As String
Dim sSql As String
Dim conn As Object
Dim oRs As Object
Dim oCom As Object
Dim oItem As ListItem
Dim m, n, s
sPro = "Provider=WinCCOLEDBProvider.1;"
sDsn = "Catalog=CC_vb_06_10_18_09_33_14R;"
sSer = "Data Source=.\WinCC"
sCon = sPro + sDsn + sSer
'sSql = "TAG:R,'PVArchive\NewTag1','0000-00-00 00:02:00.000','0000-00-00 00:00:00.000'"'单变量查询好用
'sSql = "TAG:R,'PVArchive\NewTag1','2006-10-18 5:30:30.000','2006-10-18 5:31:39.000'"'单变量查询好用
' sSql = "TAG:R,('PVArchive\NewTag1';'PVArchive\NewTag2';'PVArchive\NewTag3'),'0000-00-00 00:02:00.000','0000-00-00 00:00:00.000'"'多变量查询不好用
'sSql = "TAG:R,(1;2;3),'0000-00-00 00:02:00.000','0000-00-00 00:00:00.000'" '多变量查询不好用
sSql = "TAG:R,1,'0000-00-00 00:02:00.000','0000-00-00 00:00:00.000'"
MsgBox "Open with:" & vbCr & sCon & vbCr & sSql & vbCr
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
oCom.CommandText = sSql
Set oRs = oCom.Execute
m = oRs.Fields.Count
ListView1.ListItems.Clear
ListView1.ColumnHeaders.Clear
ListView1.View = 3
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(0).Name), 1000
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(1).Name), 2000
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(2).Name), 1000
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(3).Name), 1000
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(4).Name), 1000
'ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(5).Name), 1000
If (m > 0) Then
oRs.MoveFirst
n = 0
Do While Not oRs.EOF
n = n + 1
's = Left(CStr(oRs.Fields(1).Value), 23)
Set oItem = ListView1.ListItems.Add()
oItem.Text = FormatNumber(oRs.Fields(0).Value, 0)
oItem.SubItems(1) = Left(CStr(oRs.Fields(1).Value), 23)
oItem.SubItems(2) = Hex(oRs.Fields(2).Value)
oItem.SubItems(3) = Hex(oRs.Fields(3).Value)
oItem.SubItems(4) = Hex(oRs.Fields(4).Value)
'oItem.SubItems(5) = Hex(oRs.Fields(5).Value)
If (n > 1000) Then Exit Do
oRs.MoveNext
Loop
oRs.Close
Else
End If
Set oRs = Nothing
conn.Close
Set conn = Nothing