工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号) Dim CN As New ADODB.Connection '定义数据库的连接 Dim Rs As New ADODB.Recordset CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\NWIND.MDB;Persist Security Info=False" CN.Open Rs.CursorLocation = adUseClient Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic Set DataGrid1.DataSource = Rs没问题呀!
可能我的问题叙述的不是很详细。If rst.State = 1 Then '暂停处 rst.Close End IfWith rst .ActiveConnection = db .CursorLocation = adUseClient .CursorType = adOpenKeyset .LockType = adLockReadOnly .Properties("IRowsetIdentity") = True .Open tmpSQL, dbEnd With 以上是一部分代码,运行到第一行“暂停处字样”,让程序停一下,再按F5继续,问题就不出现,直接运行完就出那个提示。注:我用的ADO连接DATAGRID。
If rst.State = 1 Then '暂停处 rst.Close End If去掉。写:Set CN = New ADODB.Connection set Rs = New ADODB.Recordset
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
改成: Dim Rs As New ADODB.Recordset Rs.CursorLocation = adUseClient Rs.Open tmpSQL, db, adOpenDynamic, adLockBatchOptimistic Set DataGrid1.DataSource = Rs
Dim Rs As New ADODB.Recordset CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\NWIND.MDB;Persist Security Info=False"
CN.Open Rs.CursorLocation = adUseClient
Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic Set DataGrid1.DataSource = Rs没问题呀!
rst.Close
End IfWith rst
.ActiveConnection = db
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockReadOnly
.Properties("IRowsetIdentity") = True
.Open tmpSQL, dbEnd With
以上是一部分代码,运行到第一行“暂停处字样”,让程序停一下,再按F5继续,问题就不出现,直接运行完就出那个提示。注:我用的ADO连接DATAGRID。
rst.Close
End If去掉。写:Set CN = New ADODB.Connection
set Rs = New ADODB.Recordset
工程--->引用--->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 Rs As New ADODB.Recordset
Rs.CursorLocation = adUseClient
Rs.Open tmpSQL, db, adOpenDynamic, adLockBatchOptimistic Set DataGrid1.DataSource = Rs