用RDS也可以'引用ADO '引用Microsoft Remote Data Services 2.x Library '可以当即测试,我的服务器开着 Private Sub Command1_Click() Dim DF As Object Dim strServer As String Dim strConnect As String Dim strSQL As String Dim objADORs As Recordset Dim ds As New DataSpace Dim k As String Dim i As Integer strServer = "http://9zp.com" strConnect = "Data Source=hzn;" 'hzn是数据源名,连接到一个.mdb strSQL = "Select * from user" Set DF = ds.CreateObject("RDSServer.DataFactory", strServer) Set objADORs = DF.Query(strConnect, strSQL) For i = 0 To objADORs.Fields.Count - 1 k = k & objADORs.Fields(i).Name & Chr(10) Next i MsgBox k MsgBox objADORs.Fields(0) objADORs.Fields(0) = "改变这几个字试试" DF.SubmitChanges strConnect, objADORs MsgBox objADORs.Fields(0)End Sub
http://blog.csdn.net/online/archive/2004/07/07/35994.aspx
以下方法可用于 ADO 连接局域网内的机子上的数据库:连接字符串 Connectstring 可参照以下写法:
"provider=Microsoft.Jet.OLEDB.4.0;Data source =" + [Access97、Access2000 数据库路径及名称] + " ;Persist Security Info=False;Jet OLEDB:Database Password=" + [数据库密码] 其中:[Access97、Access2000 数据库路径和名称] 可以是你自己的机子上的某个数据库,也可以是局域网上的某个机子上的数据库,例如:[Access97、Access2000 数据库路径和名称] = "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 盘(外加 $ 符号表示该盘你可以不必去有意识的共享也能让程序正常访问数据库 )当然用 DAO 也可以,只是连接数据库的方法不同而已:
'用 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建议:你将上面的连接字符串事先保存在一配置文件中(如:DataPath.ini),你在程序启动时直接读取该连接字符串即可,这样,你的连接字符串可以动态的进行改变,其不美哉!
改为:
Dim adoCnn As New ADODB.Connection
'引用Microsoft Remote Data Services 2.x Library
'可以当即测试,我的服务器开着
Private Sub Command1_Click()
Dim DF As Object
Dim strServer As String
Dim strConnect As String
Dim strSQL As String
Dim objADORs As Recordset
Dim ds As New DataSpace
Dim k As String
Dim i As Integer
strServer = "http://9zp.com"
strConnect = "Data Source=hzn;" 'hzn是数据源名,连接到一个.mdb
strSQL = "Select * from user"
Set DF = ds.CreateObject("RDSServer.DataFactory", strServer)
Set objADORs = DF.Query(strConnect, strSQL)
For i = 0 To objADORs.Fields.Count - 1
k = k & objADORs.Fields(i).Name & Chr(10)
Next i
MsgBox k
MsgBox objADORs.Fields(0)
objADORs.Fields(0) = "改变这几个字试试"
DF.SubmitChanges strConnect, objADORs
MsgBox objADORs.Fields(0)End Sub