我要在程序中使用Adodb+DataGrid打开一个Access2000的表,要是用Adodc+DataGrid是没有问题的,但我现在想用Adodb打开则出现了问题:
代码:
rs as new adodb.recordset
conn as new adodb.connection with conn
.provider="Microsoft.Jet.OLEDB.4.0"
.Open "E:\Temp.mdb"
end with
rs.Open "Select * From table1",conn,adopenstatic,adlockoptimistic
set datagrid1.datasource=rs
datagrid1.refresh 问题:执行了这段代码,无显示错误,但DataGrid1什么也不显示,若将OLEDB.4.0改为OLEDB.3.51打开一个Acess97的表则没有问题,但OLEDB.3.51无法打开Access2000的mdb文件.
请问各位高手应如何解决这个问题呢?
代码:
rs as new adodb.recordset
conn as new adodb.connection with conn
.provider="Microsoft.Jet.OLEDB.4.0"
.Open "E:\Temp.mdb"
end with
rs.Open "Select * From table1",conn,adopenstatic,adlockoptimistic
set datagrid1.datasource=rs
datagrid1.refresh 问题:执行了这段代码,无显示错误,但DataGrid1什么也不显示,若将OLEDB.4.0改为OLEDB.3.51打开一个Acess97的表则没有问题,但OLEDB.3.51无法打开Access2000的mdb文件.
请问各位高手应如何解决这个问题呢?
'Public rs As ADODB.RecordsetPublic Sub Main()
Set conn = New ADODB.Connection
conn.ConnectionString = "driver={Microsoft Access Driver (*.mdb)};" & _
"dbq=" & App.Path & "\..\data\Sing.mdb"
' conn.ConnectionTimeout = 30
' conn.ConnectionString = "driver={SQL Server};" & _
"server=server;uid=userer;pwd=12345;database=azyw"
' conn.ConnectionString = "driver={SQL Server};" & _
"server=localhost;uid=sa;pwd=;database=sing"
conn.Open
rs.Open "Select * From table1",conn,adopenstatic,adlockoptimistic
set datagrid1.datasource=rs bf.Show
End Sub
Dim strSQL As String
dim conn as New ADODB.Connection
dim rs as New ADODB.Recordset
strSQL = App.Path & "\Biblio.mdb"
strSQL = Replace(strSQL, "\\", "\")
With conn
If .State = adStateOpen Then
.Close
End If
.CursorLocation = adUseClient
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & strSQL
.Open
End With
With rs
.Open "Select * from Authors;", conn, adOpenStatic, adLockOptimistic
If .BOF And .EOF Then
msgbox "没有任何记录"
Exit Sub
End If
.MoveFirst
.movelast
msgbox "有" & .recordcount & "条记录!"
N = .recordcount
End With
在对象窗口右键单击DataGrid控件,在弹出的菜单中选择“清除字段”,以上故障即消失。
我遇到过同样问题。但为什么会这样,恳求各位高手给予解答。
(微软有公布)
工程--->引用--->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 '如果要绑定TextBox(数组):
'Text1(0).DataField = 字段1
'Text1(1).DataField = 字段2
'.........
Dim oText As TextBox 'TextBox
For Each oText In Me.Text1
Set oText.DataSource = adoRS
Next
'添加事件和保存
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