联接字符串有很多参数可用的,比如也可以使用:
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"
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"
属性有 PassWord UseName !
如果不对就连接不上!
不知道用你的方法和用控件有没有区别!
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
cn.open
为什么我这样写系统会说CN。OPEN错误,
错误原因:找不到可插入的ISAM
这样写系统说:
不能启动应用程序。工作组信息文件丢失,或者已经被其它用户以独占方式打开。
为什么会这样呢?数据库没打开。
能不能根据我给的属性写个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"