dim Conn As New ADODB.Connection Private rsTable As New ADODB.Recordset dim SQL as stringConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & AccessPath & ";Persist Security Info=False"Conn.CursorLocation = adUseClient Conn.Open SQL = "select * from table " rsTable.Open strSQL, pubConn, adOpenDynamic, adLockOptimistic
'用 Data 控件访问有密码的 Access 数据库 With Data1 .DatabaseName = [数据库路径及名称] .Connect = ";pwd=" + [数据库密码] .RecordSource = [查询语句] .Refresh ' ... End With'用 DAO 访问有密码的 Access 数据库 Dim OpenDB As Database Dim Rst As DAO.Recordset Set OpenDB = DBEngine.Workspaces(0).OpenDatabase([数据库路径及名称], False, False, "MS Access;PWD=" + [数据密码]) Set Rst = OpenDB.OpenRecordset([查询语句], dbOpenSnapshot) '... '用 ADO 访问有密码的 Access 数据库 Dim adoCnn As ADODB.Connection Dim CnnStr As String CnnRst = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" + [Access97、Access2000 数据库路径及名称] + " ;Persist Security Info=False;Jet OLEDB:Database Password=" + [数据库密码] With adoCnn If .State = adStateOpen Then .Close .ConnectionString = CnnStr .Open If .State = adStateOpen Then ' 数据库打开成功 ' ... Else ' 数据库打开失败 ' ... End If '说明:Microsoft.Jet.OLEDB.3.51 只支持 Access97,不支持 Access2000 ' Microsoft.Jet.OLEDB.4.0 不仅支持 Access97,也支持 Access2000 End With'用 ADODC 控件访问有密码的 Access 数据库 With Adodc1 .ConnectionString = CnnStr .CommandType = adCmdText .RecordSource = [查询语句] .Refresh ' ... End With 其中:[数据库路径和名称] 可以是你自己的机子上的某个数据库,也可以是局域网上的某个机子上的数据库,例如:[数据库路径和名称] = "D:\...\mydb.mdb" 或者 app.path+"\data\mydb.mdb" 或者 "\\192.168.0.27\d$\...\mydb.mdb" 均可;对于 "\\192.168.0.27\d$\...\mydb.mdb" 中的 d$ 是指你的 192.168.0.27 这台机子上的 d 盘(外加 $ 符号表示该盘你可以不必去有意识的共享也能让程序正常访问数据库 )建议:你将上面的连接字符串CnnStr事先保存在一配置文件中(如:DataPath.ini),你在程序启动时直接读取该连接字符串即可,这样,你的连接字符串可以动态的进行改变,其不美哉!
更正:Dim adoCnn As ADODB.Connection 改为: Dim adoCnn As New ADODB.Connection
dim Cn as new Adodb.connectionCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & AccessDataBasePathAndNameCn.Open
Cn.CursorLocation = adUseClient
Cn.Open
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\computer.mdb;Persist Security Info=False;Jet OLEDB:Database Password=ok"
Cn.CursorLocation = adUseClient
Cn.Open
Private rsTable As New ADODB.Recordset
dim SQL as stringConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & AccessPath & ";Persist Security Info=False"Conn.CursorLocation = adUseClient
Conn.Open
SQL = "select * from table "
rsTable.Open strSQL, pubConn, adOpenDynamic, adLockOptimistic
With Data1
.DatabaseName = [数据库路径及名称]
.Connect = ";pwd=" + [数据库密码]
.RecordSource = [查询语句]
.Refresh
' ...
End With'用 DAO 访问有密码的 Access 数据库
Dim OpenDB As Database
Dim Rst As DAO.Recordset
Set OpenDB = DBEngine.Workspaces(0).OpenDatabase([数据库路径及名称], False, False, "MS Access;PWD=" + [数据密码])
Set Rst = OpenDB.OpenRecordset([查询语句], dbOpenSnapshot)
'...
'用 ADO 访问有密码的 Access 数据库
Dim adoCnn As ADODB.Connection
Dim CnnStr As String
CnnRst = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" + [Access97、Access2000 数据库路径及名称] + " ;Persist Security Info=False;Jet OLEDB:Database Password=" + [数据库密码]
With adoCnn
If .State = adStateOpen Then .Close
.ConnectionString = CnnStr
.Open
If .State = adStateOpen Then
' 数据库打开成功
' ...
Else
' 数据库打开失败
' ...
End If
'说明:Microsoft.Jet.OLEDB.3.51 只支持 Access97,不支持 Access2000
' Microsoft.Jet.OLEDB.4.0 不仅支持 Access97,也支持 Access2000
End With'用 ADODC 控件访问有密码的 Access 数据库
With Adodc1
.ConnectionString = CnnStr
.CommandType = adCmdText
.RecordSource = [查询语句]
.Refresh
' ...
End With
其中:[数据库路径和名称] 可以是你自己的机子上的某个数据库,也可以是局域网上的某个机子上的数据库,例如:[数据库路径和名称] = "D:\...\mydb.mdb" 或者 app.path+"\data\mydb.mdb" 或者 "\\192.168.0.27\d$\...\mydb.mdb" 均可;对于 "\\192.168.0.27\d$\...\mydb.mdb" 中的 d$ 是指你的 192.168.0.27 这台机子上的 d 盘(外加 $ 符号表示该盘你可以不必去有意识的共享也能让程序正常访问数据库 )建议:你将上面的连接字符串CnnStr事先保存在一配置文件中(如:DataPath.ini),你在程序启动时直接读取该连接字符串即可,这样,你的连接字符串可以动态的进行改变,其不美哉!
改为:
Dim adoCnn As New ADODB.Connection