联接字符串有很多参数可用的,比如也可以使用:
cn.open app.path & "\aa.mdb" &";pwd=ABC"
类似的还可以定义:DSN,UID,DATABASE等属性。
另外需要注意的是,一般APP.PATH的最后没有\的。
但是如果你在NT环境里把程序放在C:\或者D:\等盘符下执行,APP.PATH会以\结尾的。这个时候你的联接字符串实际上就等于:
c:\\aa.mdb等等。
会运行出错。请小心。
建议采用:
dim strpath as string;
strpath=app.path
if right(strpath,1)="\" then
    strpath=left(strpath,strlen(strpath)-1)
end if
然后再:
cn.open strpath & "\aa.mdb" &";pwd=ABC"

解决方案 »

  1.   

    我用控件访问过!
    属性有 PassWord UseName !
    如果不对就连接不上!
    不知道用你的方法和用控件有没有区别!
      

  2.   

    Dim cnn1 As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim cnnstr As String
    Set cnn1 = New ADODB.Connection
    cnn1.Open "provider=Microsoft.jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Jet OLEDB:Database Password=1111"Set rst = New ADODB.Recordset
    rst.CursorType = adOpenKeyset
    rst.LockType = adLockOptimistic
    rst.Open "select * from 11", cnn1Set Form1.MSHFlexGrid1.DataSource = rst
    rst.Close
    cnn1.Close
      

  3.   

    cn.ConnectionString = App.Path & "\aa.mdb" & ";pwd=abc"
    cn.open
    为什么我这样写系统会说CN。OPEN错误,
    错误原因:找不到可插入的ISAM
      

  4.   

    cn.Open App.Path & "\aa.mdb", , "abc"
    这样写系统说:
    不能启动应用程序。工作组信息文件丢失,或者已经被其它用户以独占方式打开。
    为什么会这样呢?数据库没打开。
      

  5.   

    cn.open(connectionstring,userid;ABC;)
      

  6.   

    userid是什么?我的库好像没有设置这个,
    能不能根据我给的属性写个CN.OPEN。
    Dim cn As New ADODB.Connection
    dim password as string
    password="abc"
    cn.Provider = "Microsoft.jet.oledb.3.51" 
    cn.ConnectionString = App.Path & "\aa.mdb"