dim conn   
   dim connstr
   on error resume next
   connstr="DBQ="+server.mappath("*.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
     set conn=server.createobject("ADODB.CONNECTION")
     conn.open connstr

解决方案 »

  1.   

    你用odbc建立和远程数据库的连接,再用dsn就行了
      

  2.   

    那里面有一个ADO控件,里面在连接上可以选择,用这个虽然不是很好,但是在连接上比较方便
      

  3.   

    ado 或是Rds
    但是都要求在服务器端有相应的程序或是开放了相应的权限。
      

  4.   

    我觉得应该把数据拷过来,修改后再发回去,不然不好做,因为ACCESS是桌面数据库,对远程访问没有特别好的支持.或者你用B/S结构来存数据.
      

  5.   

    使用COM吧。 应该是可以的。
      

  6.   

    在本地的access库中建立远程链接表应该也可以的。
      

  7.   

    用ADO对象也可以用ADO控件,用ADO控件的属性生成连接字符串 ̄!!
      

  8.   

    最简单的方法,你将你的数据库设置为共享,然后这样
    dim rs as new adodb.recordset
    dim conn as new adodb.connection
    dim sqlstr
    dim data_path
    conn.connectionstring="provider=microsoft.jet.oledb.3.51;data source="+data_path
    data_path="computer_name/dircect_name_/data_name"
    conn.open
    sqlstr="select * from table_name"
    rs.open sqlstr,conn,1,1
    现在你就可以用了
    远程数据库用ACCESS不好啊,不过这样是可以访问的
    只要你的data_path字符串写好了
    如果你的计算机名是 h1  数据库共享名是data  数据库名是data.mdb
    那你可以这么写;
    data_path="//hl/data/data.mdb"
      

  9.   

    严格意义让讲,用ADO是不能访问远程数据库的,即使能效果也不太好,你还是考虑别的方式吧。
      

  10.   

    给你个例子,我用过的,没问题
    dim cn as new adodb.Connection
    Dim rs as new ADODB.RecordsetSet cn= new ADODB.Connection
    Set rs=new ADODB.RecordSetcn.open "DBQ=d:/myDatabase/myAccess.mdb;DRIVER={Microsoft Access Driver (*.mdb)};"
    rs.open "select * from myTable where ...",cn,adOpenDynamic, adLockOptimisticDo while not rs.eof    //do 
    loop
      

  11.   

    sinboy(辛巴) :
    他要的是访问远程数据库啊,不是本地数据库。
    怎么访问呢?
      

  12.   

    建议改为sql server,如果一定要用mdb,就用rds,不过在服务器端要安装pws或iis,才可以
      

  13.   

    严格说来,ACCESS不能用作远程数据库,只能说将ACCESS放在远程服务器上,做成共享,访问数据库还是应该和本地数据库一样。只是路径不同而已。
      

  14.   

    Dim cnn1 As ADODB.Connection
        Dim rstEmployees As ADODB.Recordset
        Dim strCnn As String
        Dim strID As String
        Dim strFirstName As String
        Dim strLastName As String
        Dim booRecordAdded As Boolean    ' 打开连接。
        Set cnn1 = New ADODB.Connection
        strCnn = "="provider=microsoft.jet.oledb.3.51;data source="+(database_path)
        cnn1.Open strCnn
            
        ' 打开雇员表。
        Set rstEmployees = New ADODB.Recordset
        rstEmployees.CursorType = adOpenKeyset
        rstEmployees.LockType = adLockOptimistic
        rstEmployees.Open "employee", cnn1, , , adCmdTable
      

  15.   

    //only to reference//
     客户端                                     服务器端                               TCP/IP
      vb编的程序               <---------->      RAccessService
      通过SOCKAPI                                      |
                                                       |   
    0A                                                MSACCESS
    0A-------------------------------------------------------------
    这就相当于三层模型结构。
    ---------------------------------------------------------------
    代码示例:以下代码比较简单,与ADO类似
    以下代码演示了,怎样获取数据,更新数据Sub main()
    Dim conn As New CConnection        '定义连接    -----相当于ADO中的Connection
    Dim rs As New CRecordset           '定义记录集  -----相当于ADO中的Recordset
    Dim sField1 As String, sField2 As String, sField3 As String, sField4 As String
    Dim bConn As Boolean
    Dim nFieldsCound As Long
    Dim bOK As Boolean
    '----------打开服务器上的数据库-----------------------------0D
    'bConn = conn.OpenConnection("192.168.1.125", "DSN=sa;DRIVER={SQL Server};UID=sa;PWD=;")
    bConn = conn.OpenConnection("192.168.1.155", "DSN=testmdb;DRIVER={Microsoft Access Driver (*.mdb)};UID=admin;PWD=;")
    If Not bConn Then
        MsgBox conn.GetLastError()
        Set conn = Nothing
        Exit Sub
    End If'------------------------打开服务器上的记录集----------------
    Set rs = conn.OpenResultset("SELECT * FROM zdxx")
    If rs Is Nothing Then
        MsgBox "记录集合打开错误!"
        Exit Sub
    End If
    nFieldsCound = rs.GetFieldsCount()
    Do Until rs.EOF
        sField1 = rs.GetFieldValueByIndex(0)
        sField2 = rs.GetFieldValueByIndex(1)
        sField3 = rs.GetFieldValueByIndex(2)
        sField4 = rs.GetFieldValueByIndex(3)
        Debug.Print sField1, sField2, sField3, sField4
        rs.MoveNext
    Loop
    rs.CloseRecordset'------------------------插入服务器上的记录--------------------
    Dim nRowAffected As Long
    bOK = conn.Execute("INSERT  into zdxx(zdxx,lkd,tabstop) values('测试内容','120','1')", nRowAffected)0D
    If (Not bOK) Then
        MsgBox conn.GetLastError0D
    Else
        MsgBox "更新记录数:" & nRowAffected
    End If
    Set rs = Nothing
    Set conn = Nothing
    '-------------------------------------------------
    '连接,记录集不关闭也可以,程序退出自动关闭
    End Sub