我用vb做客户端,Access做服务器端,请问连接连接字符串如何写,是不是要写具体的路径
还是用ODBC来配置?因为局域网的规模不大,所以能用Access来做服务器端的数据库吗??

解决方案 »

  1.   

    '工程->引用->Microsoft ActiveX Data Objects 2.0 Library (后面为版本号)
    Dim rs As New ADODB.Recordset, cn As New ADODB.Connection将放ACCESS数据库的路径设置为共享,然后连接字符串如下:cn.ConnectionString = "DBQ=\\192.168.2.88\db\TelePhone.mdb;DefaultDir=" & _
            App.Path & ";Driver={Microsoft Access Driver (*.mdb)};" & _
            "DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;" & _
            "MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;" & _
            "Threads=3;UID=ADMIN;UserCommitSync=Yes;PWD=admind1234;"
    cn.Open===================不过不建议在局域网内使用ACCESS数据库,在多人并发操作的时候容易损坏数据库文件,造成不必要的损失,推荐使用网络数据库,如:SQL SERVER、SYBASE或者ORACLE
      

  2.   

    雖然Access一般性的損壞是可以自動修復的,但用的人一多就容易出現不可數據庫的崩潰,Access中并發數不能超過50
      

  3.   

    dbfilename = "\\yang\datagrid\order.mdb"
    ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbfilename & ";Persist Security Info=False;"
    conn.Open ConnectString因为局域网的规模不大,所以能用Access来做服务器端的数据库吗??
    不合适。
      

  4.   

    严重建议用SQLServer,Access在访问并发容易出问题。
      

  5.   

    用vb做客户端,Access做服务器端??
    什么意思??
    vb是开发程序的,access是数据库两者不是一类的呀??
      

  6.   

    最好实现一个服务端来进行数据封装操作
    在server端实现getConnection,closeConnection,query,delete,update,insert...等接口,
    然后利用DCOM,或者在客户端利用winsock控件来和服务端进行通讯,这样做的好处是客户端不必理会是什么数据库,只要接口不变,客户端就不必更新,最大限度的实现软件复用。
      

  7.   

    建议用SQLServer,Access是桌面型数据库,不但在访问并发容易出问题,而且数据量略大速度就成了问题。
      

  8.   

    其實是可以的!
    物料進銷存系統,約25個user同時使用,沒問題。
    幾個月才有一次不正常。建議用DAO方式訪問。用JET方式,不要odbc.這樣速度還很快,顯示2萬行數據都快。
    例: set db=dbengine.opendatabase("\\server\db$\db.mdb","pwd=xxx")
      

  9.   

    原则上你的需求可通过 ACCESS 来实现;但建议用SQLServer 数据库;Access是小型数据库,在访问并发容易出问题,而且数据量略大速度很慢!
    '以下提供 两类(DAO 和 ADO) 4 个连接 MDB 数据库的方法 :
    '用 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 CnnRst 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 盘(外加 $ 符号表示该盘你可以不必去有意识的共享也能让程序正常访问数据库 )'建议:你将上面的连接字符串事先保存在一配置文件中(如:DataPath.ini),你在程序启动时直接读取该连接字符串即可,这样,你的连接字符串可以动态的进行改变,其不美哉!