1 工程->引用,把当前版本的DAO(3.51)去掉,换为3.6版的。 2 加入下列代码: dim db as dao.database, rs as dao.recordset set db = dbengine.opendatabase("数据库文件名") set rs = db.openrecordset("SQL语句") set data1.recordset = rs
给VB打补丁。或把office换成97版的。
ADO连接: 工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)Option ExplicitDim WithEvents adoRS As Recordset Dim db As Connection '提数据事件 Set db = New Connection db.CursorLocation = adUseClient db.Open"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;Jet OLEDB:Database Password=1234;" ' ########################################## '打开密码是1234的Access2000数据库db1.mdb '不需要密码,就把Jet OLEDB:Database Password=1234;这段去掉 Set adoRS = New Recordset
adoRS.Open "SELECT * FROM 表", db, adOpenStatic, adLockOptimistic '赋值给 DataGrid 表 Set DataGrid1.DataSource = adoRS '表刷新 DataGrid1.Refresh '添加事件和保存 adoRS.AddNew '保存 adoRS![字段a] = text1.Text adoRS![字段b] = text2.Text adoRS.UpdateBatch adAffectAll'删除 adoRS.Delete '重新赋值给表 adoRS.Requery Set DataGrid1.DataSource = adoRS DataGrid1.Refresh '其他相关操作: '上一条 If Not adoRS.BOF Then adoRS.MovePrevious If adoRS.BOF And adoRS.RecordCount > 0 Then '已到最后返回 adoRS.MoveFirst End If '下一条 If Not adoRS.EOF Then adoRS.MoveNext '下一条 If adoRS.EOF And adoRS.RecordCount > 0 Then '已到最后返回 adoRS.MoveLast End If '第一条 If Not adoRS.BOF Then adoRS.MoveFirst '最末 If Not adoRS.EOF Then adoRS.MoveLast
DATA只能连接ACCESS97。用ADODB对象来连接吧。 具体的方法如下: Dim WithEvents adoRS As Recordset Dim db As Connection '提数据事件 Set db = New Connection db.CursorLocation = adUseClient db.Open"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;Jet OLEDB:Database Password=1234;"'1234密码可以不要 Set adoRS = New Recordset adoRS.Open "SELECT * FROM 表", db, adOpenStatic, adLockOptimistic '赋值给 DataGrid 表 Set DataGrid1.DataSource = adoRS '数据显示控件刷新 DataGrid1.Refresh
data控件只能连接access97的数据库,如果你用的是access2000你就需要在access2000中把相应的数据库利用“工具-数据库实用工具-转换数据库-到早期的access数据库版本”把相应的数据库转换到access97版本,然后再用data控件连接。 或者:在vb中选择“工程-部件-添加Microsoft ADO Data contral 6.0(oledb)”中的ado控件, ADO控件即支持access97也支持access2000。
2 加入下列代码:
dim db as dao.database, rs as dao.recordset
set db = dbengine.opendatabase("数据库文件名")
set rs = db.openrecordset("SQL语句")
set data1.recordset = rs
工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)Option ExplicitDim WithEvents adoRS As Recordset
Dim db As Connection
'提数据事件
Set db = New Connection
db.CursorLocation = adUseClient
db.Open"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;Jet OLEDB:Database Password=1234;"
' ##########################################
'打开密码是1234的Access2000数据库db1.mdb
'不需要密码,就把Jet OLEDB:Database Password=1234;这段去掉 Set adoRS = New Recordset
adoRS.Open "SELECT * FROM 表", db, adOpenStatic, adLockOptimistic
'赋值给 DataGrid 表
Set DataGrid1.DataSource = adoRS
'表刷新
DataGrid1.Refresh
'添加事件和保存
adoRS.AddNew
'保存
adoRS![字段a] = text1.Text
adoRS![字段b] = text2.Text
adoRS.UpdateBatch adAffectAll'删除
adoRS.Delete
'重新赋值给表
adoRS.Requery
Set DataGrid1.DataSource = adoRS
DataGrid1.Refresh '其他相关操作:
'上一条
If Not adoRS.BOF Then adoRS.MovePrevious
If adoRS.BOF And adoRS.RecordCount > 0 Then
'已到最后返回
adoRS.MoveFirst
End If
'下一条
If Not adoRS.EOF Then adoRS.MoveNext '下一条
If adoRS.EOF And adoRS.RecordCount > 0 Then
'已到最后返回
adoRS.MoveLast
End If
'第一条
If Not adoRS.BOF Then adoRS.MoveFirst
'最末
If Not adoRS.EOF Then adoRS.MoveLast
具体的方法如下:
Dim WithEvents adoRS As Recordset
Dim db As Connection
'提数据事件
Set db = New Connection
db.CursorLocation = adUseClient
db.Open"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb;Jet OLEDB:Database Password=1234;"'1234密码可以不要
Set adoRS = New Recordset
adoRS.Open "SELECT * FROM 表", db, adOpenStatic, adLockOptimistic
'赋值给 DataGrid 表
Set DataGrid1.DataSource = adoRS
'数据显示控件刷新
DataGrid1.Refresh
或者:在vb中选择“工程-部件-添加Microsoft ADO Data contral 6.0(oledb)”中的ado控件,
ADO控件即支持access97也支持access2000。