'一个简单的例子,希望有用 public Con As New ADODB.Connection public rs As New ADODB.Recordset Public Function OpenDB() As Boolean OpenDB = False
On Error GoTo Error_Event Set Con = New ADODB.Connection Con.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;data Source=" & DBFile.mdb & ";user ID=" & UID & ";Password=" & PWD & ";Jet OLEDB:Database Password=" & DBPWD Con.CommandTimeout = 60 Con.Open OpenDB = True Screen.MousePointer = 0 Exit Function Error_Event: Screen.MousePointer = 0 End Function Public Function OpenRS(sqlstr As String, Optional ReadOnly As Boolean = False, Optional Conn As ADODB.Connection = Nothing) As ADODB.Recordset On Error GoTo OpenrecordsetErrorhandle If Conn Is Nothing Then Set Conn = Con
Set OpenRS = New ADODB.Recordset OpenRS.CursorLocation = adUseClient If ReadOnly Then OpenRS.Open sqlstr, Conn, adOpenDynamic, adLockReadOnly Else OpenRS.Open sqlstr, Conn, adOpenDynamic, adLockOptimistic End If Exit Function OpenrecordsetErrorhandle: MsgBox " 致命错误:" & GetOdbcErrors() & Chr(13) & " 来自SQL命令:" & sqlstr & Chr(13) & " 无法继续执行", vbOKOnly + vbCritical, "致命错误" End End Function Public Function GetOdbcErrors() Dim a As String Dim i As Long a = "" For i = 0 To Con.Errors.Count - 1 a = a & IIf(a = "", "", Chr(13)) & Con.Errors(i).Description Next i GetOdbcErrors = a End Function sub listit() Dim rs As New ADODB.Recordset Set rs = OpenRS("select * from system", True) Label1(0).Caption = rs!compname + "验光处方" Label1(1).Caption = "地址:" + rs!Addr + Space(1) + rs!Mo rs.Close Set rs = Nothingend sub
Set rs = OpenRS("select * from Odd" & sql, True) With rs If .RecordCount > 0 Then Timer1.Enabled = False .MoveFirst Do While Not .BOF And Not .EOF For i = 0 To T.UBound - 1 T(i) = .Fields(FieldNme(i)).Value Next i T(29).Tag = !Oid Combo1.ListIndex = IIf(!Sex = 0, 1, 0) DTPicker1(0).Value = !birth DTPicker1(1).Value = !OTime .MoveNext Loop rs.Close Set rs = Nothing Else rs.Close Set rs = Nothing Exit Function End If End With
rs.Open "select * from table1", cnn, adOpenDynamic, adLockPessimistic
msgbox rs.recordcount
rs.Open "select * from table1", cnn, adOpenDynamic, adLockPessimistic
msgbox rs.recordcount
里有我的介绍
http://expert.csdn.net/Expert/topic/1638/1638651.xml?temp=.373974
不过,最正确应该这样写
rs.movelast
msgbox rs.recordcount
public Con As New ADODB.Connection
public rs As New ADODB.Recordset
Public Function OpenDB() As Boolean
OpenDB = False
On Error GoTo Error_Event
Set Con = New ADODB.Connection
Con.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;data Source=" & DBFile.mdb & ";user ID=" & UID & ";Password=" & PWD & ";Jet OLEDB:Database Password=" & DBPWD
Con.CommandTimeout = 60
Con.Open
OpenDB = True
Screen.MousePointer = 0
Exit Function
Error_Event:
Screen.MousePointer = 0
End Function
Public Function OpenRS(sqlstr As String, Optional ReadOnly As Boolean = False, Optional Conn As ADODB.Connection = Nothing) As ADODB.Recordset
On Error GoTo OpenrecordsetErrorhandle
If Conn Is Nothing Then Set Conn = Con
Set OpenRS = New ADODB.Recordset
OpenRS.CursorLocation = adUseClient
If ReadOnly Then
OpenRS.Open sqlstr, Conn, adOpenDynamic, adLockReadOnly
Else
OpenRS.Open sqlstr, Conn, adOpenDynamic, adLockOptimistic
End If
Exit Function
OpenrecordsetErrorhandle:
MsgBox " 致命错误:" & GetOdbcErrors() & Chr(13) & " 来自SQL命令:" & sqlstr & Chr(13) & " 无法继续执行", vbOKOnly + vbCritical, "致命错误"
End
End Function
Public Function GetOdbcErrors()
Dim a As String
Dim i As Long
a = ""
For i = 0 To Con.Errors.Count - 1
a = a & IIf(a = "", "", Chr(13)) & Con.Errors(i).Description
Next i
GetOdbcErrors = a
End Function
sub listit()
Dim rs As New ADODB.Recordset
Set rs = OpenRS("select * from system", True)
Label1(0).Caption = rs!compname + "验光处方"
Label1(1).Caption = "地址:" + rs!Addr + Space(1) + rs!Mo
rs.Close
Set rs = Nothingend sub
With rs
If .RecordCount > 0 Then
Timer1.Enabled = False
.MoveFirst
Do While Not .BOF And Not .EOF
For i = 0 To T.UBound - 1
T(i) = .Fields(FieldNme(i)).Value
Next i
T(29).Tag = !Oid
Combo1.ListIndex = IIf(!Sex = 0, 1, 0)
DTPicker1(0).Value = !birth
DTPicker1(1).Value = !OTime
.MoveNext
Loop
rs.Close
Set rs = Nothing
Else
rs.Close
Set rs = Nothing
Exit Function
End If
End With
msgbox rs.recordcount
有一个游标的概念
连接和记录集都有一个CursorLoction的属性,有三个值
其中只有客户端游标支持recordcount
服务器端游标recordcount=-1
另一个大概没用。你应该多搜寻MSDN!!!
Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic