可以使用连接字串数据库 各种数据库的连接字串参见: http://www.connectionstrings.com/借助数据控件连接数据库如楼上所言,另外可以不用数据控件,在工程中引用microsoft activex data objects 2.0 library (2000可引用2.5) 一个实例:Public Function Get_Data(ByVal S_SQL_str As String) As Recordset '得到记录集 Dim con As ADODB.Connection Dim rs As ADODB.Recordset Dim strcnn As String Set con = New ADODB.Connection Set rs = New ADODB.Recordset
con.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=yourdatabase;Data Source=servers" rs.CursorLocation = adUseClient rs.CursorType = adOpenStatic rs.Open S_SQL_str, con, adOpenDynamic, adLockOptimistic Set Get_Data = rs Set con = Nothing Set rs = Nothing
If Err.Number <> 0 Then If Err.Number = 3704 Then MsgBox "连接失败!" , vbInformation, "信息!" Else MsgBox Err.Description, vbInformation, "信息!" End If Exit Function End If End Function
老是遗忘注明条件:S_SQL="select * from Yourtable"
谢谢各位,我的意思是尽可能多的使用代码,少用难以移植的东西如odbc,急,以后再结帖吧
用ADODim Cn1 As ADODB.Connection Dim Rs1 As ADODB.RecordsetSet Cn1 = New ADODB.Connection ConnectStr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=lgjygl;Data Source=ServerName"Cn1.Open ConnectStr, "sa(用户名)", "1234(密码)" Set Rs1 = New ADODB.Recordset Rs1.Open "Select * from Table where ……", Cn1, adOpenStatic
如果用SQL,在VB中不必用ADODC控件,只要有数据源就可以用添加代码的方式来连接数据库,我对ASP不是很熟,不好根据ASP说什么只给你个例子: 我有用SQL Server建的数据库JinShengLiCai,其中有一张表J_MiMa,其中有两个字段UserID、Password。用代码设计如下: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代码的连接,及各个按钮功能。只要在窗体上加上控件就可用。!这上面的代码都是在WIN2000+VB6.0+MS SQL 2000下通过,直接复制、粘帖就可以了!
具体代码可以看MSDN。里面很详细的。
各种数据库的连接字串参见:
http://www.connectionstrings.com/借助数据控件连接数据库如楼上所言,另外可以不用数据控件,在工程中引用microsoft activex data objects 2.0 library (2000可引用2.5)
一个实例:Public Function Get_Data(ByVal S_SQL_str As String) As Recordset '得到记录集
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strcnn As String
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
con.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=yourdatabase;Data Source=servers" rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.Open S_SQL_str, con, adOpenDynamic, adLockOptimistic
Set Get_Data = rs
Set con = Nothing
Set rs = Nothing
If Err.Number <> 0 Then
If Err.Number = 3704 Then
MsgBox "连接失败!" , vbInformation, "信息!"
Else
MsgBox Err.Description, vbInformation, "信息!"
End If
Exit Function
End If
End Function
Dim Rs1 As ADODB.RecordsetSet Cn1 = New ADODB.Connection
ConnectStr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=lgjygl;Data Source=ServerName"Cn1.Open ConnectStr, "sa(用户名)", "1234(密码)"
Set Rs1 = New ADODB.Recordset
Rs1.Open "Select * from Table where ……", Cn1, adOpenStatic
建立类(如:adoConn.cls)封装数据库的连接和事务、执行sql、断开等方法操作
在程序启动时,建立全局的数据库类对象,利用对象负责所有对数据库的操作
方案灵活、可重用性好
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代码的连接,及各个按钮功能。只要在窗体上加上控件就可用。!这上面的代码都是在WIN2000+VB6.0+MS SQL 2000下通过,直接复制、粘帖就可以了!