读书人

为什么access中不能设置密码?该怎么处

发布时间: 2012-03-14 12:01:12 作者: rapoo

为什么access中不能设置密码?
在用oledb连接access数据库时,遇到这样的问题
当access没有设置密码时,成功连接
sqlca.dbms="OLE DB"
SQLCA.DBParm = "PROVIDER='Microsoft.Jet.OLEDB.4.0',DATASOURCE='test.mdb'
sqlca.autocommit=false


access设置了密码,且密码为123时,连接出错:
sqlca.dbms="OLE DB"
SQLCA.DBParm = "PROVIDER='Microsoft.Jet.OLEDB.4.0',DATASOURCE='test.mdb'"
sqlca.LogID="admin"
sqlca.LogPass="123"
sqlca.autocommit=false
求教为什么? 或者哪里写错了?


[解决办法]
用ODBC的两种方式肯定是可以用的,我一直都是这么连接的:
1,在DB画板版中,这么整:

// Profile shoffice_server_dataset
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=shoff_srv_dataset;UID=admin;PWD=123456'"

先建立 shoff_srv_dataset 数据源,并请注意在数据源建立时不能选择独占,至于为什么,你自己去想一下;

2,在代码中可以这么整:

SQLca.DBMS = "ODBC"
SQLca.AutoCommit = false
SQLca.DBParm = "ConnectString='driver={Microsoft Access Driver (*.mdb)};DBQ=c:\aa\完整的MDB文件名(包含括展名);uid=admin;pwd=123456'"


[解决办法]
一直只用ODBC连,可以设密码。

如果数据库本身没密码,代码有密码也可以打开。
[解决办法]

探讨
1,可是如果程序放到客户那里去的话很可能会出现密码不正确的情况呀.....

[解决办法]
探讨
呵呵! 上的,我跑了! 
的是下面的做什么不行.... 
/***如果不设置密码,且把第三行注释掉,那么是可以连接的,只要一设置ACCESS密码,这种连接就不行,老提示3028错误,"文件没有或者被其它用户占用",就算是在PB的配置数据那里设置也提示那样的错误...为什么?*/
SQLCA.DBMS = "OLE DB"
sqlca.userid="admin"
SQLCA.LogPass = "123"
SQLCA.AutoCommit = False
SQLCA.DBParm ="PROVIDER='Microsoft.Jet.OLEDB.4.0',DATASOURCE='test'"
CONNECT;

[解决办法]
非要用OLE DB 的话,试一下:
1,建立该ACCESS 的ODBC 数据源 test,
2,改 PROVIDER 为 "MSDASQL"
3,选择datastource 为 test;
// Profile mdb
SQLCA.DBMS = "OLE DB"
SQLCA.LogPass = <******>
SQLCA.LogId = "admin"
SQLCA.DBParm = "PROVIDER='MSDASQL',DATASOURCE='test'

敬告,
只在DB画板中测试时,即使密码错误,也没有像ODBC那样要求输入新密码, 只要密码正确,能正常连接该MDB,
但没有在代码中测试过.
[解决办法]
是MSDASQL



[解决办法]
在MSDN 上看到的:

Microsoft OLE DB Provider for ODBC (MSDASQL) 一项允许在 OLEDB 和 ADO(它在内部使用 OLEDB)上构建的应用程序通过 ODBC 驱动程序访问数据源的技术。 MSDASQL 是用于连接到 ODBC(而不是数据库)的 OLEDB 访问接口。 MSDASQL 随 Windows 操作系统提供.

[解决办法]
sqlca.DBParm = "ConnectString='DSN=MyDSN;PWD=MyPWD'"

或者

sqlca.DBParm = "ConnectString='driver={Microsoft Access Driver (*.mdb)};" PWD=MyPWD;dbq=MyDBFile'"

[解决办法]
已经给你讲了用oledb连接带密码的access必须用data link

// Profile saleudl
SQLCA.DBMS = "OLE DB"
SQLCA.AutoCommit = False
SQLCA.DBParm = "DATALINK='C:\saledb.udl'"
探讨
楼上的兄弟的两种都 ODBC的连接方式 ,我想的的OLE DB...

读书人网 >PB

热点推荐