引用Microsoft ActiveX Data Object 2.x LibarayDim Cn As New Adodb.Connection'1.
Cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source=USER04"'2.
Cn.OPen "Driver={SQL Server};Server=User04;Uid=sa;Pwd=;Database=master"
Cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source=USER04"'2.
Cn.OPen "Driver={SQL Server};Server=User04;Uid=sa;Pwd=;Database=master"
'--打开SQLSERVR2000数据库--
Public Function OpenSqlServer(StrServer As String, StrDatabase As String, StrUserID As String, StrPassword As String) As ADODB.Connection
On Error GoTo ConnErr
Dim TmpConn As New ADODB.Connection
Dim StrConnect As String
Screen.MousePointer = vbHourglass
TmpConn.ConnectionTimeout = 25
StrConnect = "Provider=SQLOLEDB.1;Persist Security Info=False"
StrConnect = StrConnect & ";Data Source=" & StrServer '服务器名称 可以是IP地址
StrConnect = StrConnect & ";Initial Catalog=" & StrDatabase '数据库名称
StrConnect = StrConnect & ";User ID=" & StrUserID '用户名称
StrConnect = StrConnect & ";Password=" & StrPassword '密码
TmpConn.Open StrConnect
Set OpenSqlServer = TmpConn
ConnErr:
Screen.MousePointer = vbDefault
End Function
'--打开带条件的表的记录--
Public Function OpenRST(StrConn As ADODB.Connection, StrOpenRecordset As String) As ADODB.Recordset
On Error GoTo RstErr
Dim TmpRst As New ADODB.Recordset
TmpRst.CursorLocation = adUseClient
TmpRst.Open StrOpenRecordset, StrConn, adOpenKeyset, adLockOptimistic
Set OpenRST = TmpRst
RstErr:
End Function
Dim WithEvents adoPrimaryRS As Recordset
Dim mbChangedByCode As Boolean
Dim mvBookMark As Variant
Dim mbEditFlag As Boolean
Dim mbAddNewFlag As Boolean
Dim mbDataChanged As BooleanPrivate Sub Form_Load()
'连接数据库
Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=MSDASQL;dsn=JinCai;uid=;pwd=;" '连接字段
Set adoPrimaryRS = New Recordset
adoPrimaryRS.Open "select UserID,password from J_MiMa", db, adOpenStatic, adLockOptimistic Dim oText As TextBox
'绑定文本框到数据提供者
For Each oText In Me.txtFields
Set oText.DataSource = adoPrimaryRS
Next mbDataChanged = False
End SubPrivate Sub Form_Resize()
On Error Resume Next
'设计仿ADO控件的按钮位置
lblStatus.Width = Me.Width - 1500
cmdNext.Left = lblStatus.Width + 700
cmdLast.Left = cmdNext.Left + 340
End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If mbEditFlag Or mbAddNewFlag Then Exit Sub Select Case KeyCode
Case vbKeyEscape
cmdClose_Click
Case vbKeyEnd
cmdLast_Click
Case vbKeyHome
cmdFirst_Click
Case vbKeyUp, vbKeyPageUp
If Shift = vbCtrlMask Then
cmdFirst_Click
Else
cmdPrevious_Click
End If
Case vbKeyDown, vbKeyPageDown
If Shift = vbCtrlMask Then
cmdLast_Click
Else
cmdNext_Click
End If
End Select
End SubPrivate Sub Form_Unload(Cancel As Integer)
Screen.MousePointer = vbDefault
End SubPrivate Sub adoPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'为这个 recordset 显示当前记录位置
lblStatus.Caption = "Record: " & CStr(adoPrimaryRS.AbsolutePosition)
End SubPrivate Sub adoPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'验证代码置于此处
'下列动作发生时该事件被调用
Dim bCancel As Boolean Select Case adReason
Case adRsnAddNew
Case adRsnClose
Case adRsnDelete
Case adRsnFirstChange
Case adRsnMove
Case adRsnRequery
Case adRsnResynch
Case adRsnUndoAddNew
Case adRsnUndoDelete
Case adRsnUndoUpdate
Case adRsnUpdate
End Select If bCancel Then adStatus = adStatusCancel
End SubPrivate Sub cmdAdd_Click() '“新增记录”按钮代码
On Error GoTo AddErr
With adoPrimaryRS
If Not (.BOF And .EOF) Then
mvBookMark = .Book
End If
.AddNew
lblStatus.Caption = "添加记录"
mbAddNewFlag = True
SetButtons False
End With Exit Sub
AddErr:
MsgBox Err.Description
End SubPrivate Sub cmdDelete_Click() '“删除记录”按钮代码
On Error GoTo DeleteErr
With adoPrimaryRS
.Delete
.MoveNext
If .EOF Then .MoveLast
End With
Exit Sub
DeleteErr:
MsgBox Err.Description
End SubPrivate Sub cmdRefresh_Click() '“刷新数据库”按钮代码
'只有多用户应用程序需要
On Error GoTo RefreshErr
adoPrimaryRS.Requery
Exit Sub
RefreshErr:
MsgBox Err.Description
End SubPrivate Sub cmdEdit_Click() '“编辑记录”按钮代码
On Error GoTo EditErr lblStatus.Caption = "编辑记录"
mbEditFlag = True
SetButtons False
Exit SubEditErr:
MsgBox Err.Description
End SubPrivate Sub cmdCancel_Click() '“取消修改”按钮代码
On Error Resume Next SetButtons True
mbEditFlag = False
mbAddNewFlag = False
adoPrimaryRS.CancelUpdate
If mvBookMark > 0 Then
adoPrimaryRS.Book = mvBookMark
Else
adoPrimaryRS.MoveFirst
End If
mbDataChanged = FalseEnd SubPrivate Sub cmdUpdate_Click() '“确定修改”或“更新修改”按钮代码
On Error GoTo UpdateErr adoPrimaryRS.UpdateBatch adAffectAll If mbAddNewFlag Then
adoPrimaryRS.MoveLast '移到新记录
End If mbEditFlag = False
mbAddNewFlag = False
SetButtons True
mbDataChanged = False Exit Sub
UpdateErr:
MsgBox Err.Description
End SubPrivate Sub cmdClose_Click()
Unload Me
End SubPrivate Sub cmdFirst_Click() '“第一条记录”按钮代码
On Error GoTo GoFirstError adoPrimaryRS.MoveFirst
mbDataChanged = False Exit SubGoFirstError:
MsgBox Err.Description
End SubPrivate Sub cmdLast_Click() '“最后一条记录”按钮代码
On Error GoTo GoLastError adoPrimaryRS.MoveLast
mbDataChanged = False Exit SubGoLastError:
MsgBox Err.Description
End SubPrivate Sub cmdNext_Click() '“下一条记录”按钮代码
On Error GoTo GoNextError If Not adoPrimaryRS.EOF Then adoPrimaryRS.MoveNext
If adoPrimaryRS.EOF And adoPrimaryRS.RecordCount > 0 Then
Beep
'已到最后返回
adoPrimaryRS.MoveLast
End If
'显示当前记录
mbDataChanged = False Exit Sub
GoNextError:
MsgBox Err.Description
End SubPrivate Sub cmdPrevious_Click() '“上一条记录”按钮代码
On Error GoTo GoPrevError If Not adoPrimaryRS.BOF Then adoPrimaryRS.MovePrevious
If adoPrimaryRS.BOF And adoPrimaryRS.RecordCount > 0 Then
Beep
'已到最后返回
adoPrimaryRS.MoveFirst
End If
'显示当前记录
mbDataChanged = False Exit SubGoPrevError:
MsgBox Err.Description
End SubPrivate Sub SetButtons(bVal As Boolean) '按钮代码显示设计
cmdAdd.Visible = bVal
cmdEdit.Visible = bVal
cmdUpdate.Visible = Not bVal
cmdCancel.Visible = Not bVal
cmdDelete.Visible = bVal
cmdClose.Visible = bVal
cmdRefresh.Visible = bVal
cmdNext.Enabled = bVal
cmdFirst.Enabled = bVal
cmdLast.Enabled = bVal
cmdPrevious.Enabled = bVal
End Sub以上代码是一个页面的总设计,包括ADO代码的连接,及各个按钮功能。只要在窗体上加上控件就可用。!
然后
dim conn as new adodb.connection
dim rs as new adodb.recordset
conn.open "dsn=数据原名;uid=sa;pwd="
sql=""
adors.open conn,3,3
必须在引用里引用了ADO,2。X的版本吧
dim conn As New ADODB.Connection
dim rs as new adodb.recordset
conn.ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Eam;Data Source=inf02
"rs.open "表名或查询语句",conn,其它参数
可以测试一下是否连接成功
我在连接好之后,就 set datagrid1.datasource=rs
可是不行啊,错在哪里呢?(rs已经open了)