当程序用ado的jet4.0方式连接的时候,对于设有access数据库密码的mdb的访问居然报错“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开”,而用odbc方式不报错,小阴沟里翻船,郁闷中然后查文档解决之

本文分析了OLEDB连接Access数据库时出现的错误7399及其解决办法,主要针对多用户环境下数据库连接配置问题,包括注册表设置及连接字符串的正确配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

错误 7399

严重级别 16
消息正文

OLE DB 提供程序 ''%1!'' 报错。%2!

无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。

解释

用于 Jet 的 Microsoft OLE DB 提供程序返回的错误信息表明以下情况之一:

  • Microsoft® Access 数据库不是受保护的数据库,且指定的登录和密码不是无密码的 Admin
  • Access 数据库受到保护,并且 HKEY_LOCAL_MACHINE/Software/Microsoft/Jet/4.0/SystemDB 注册表键值未指向正确的 Access 工作组文件。受保护的 Access 数据库具有相应的工作组文件,其中包括应由上面的注册表键值指出的完整路径。
对策

验证当前 Microsoft SQL Server™ 的登录是否映射为无密码的 Admin

如果正在访问的 Access 数据库受到保护,请确保上面的注册表键值指向 Access 工作组文件的完整路径名。


ADOConnection.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False; Password=Psd;Data Source=filename.mdb"

程序运行到ADOConnection.open时出错,显示“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开。”请问该OPEN语句该这样写?
    注:该ACCESS数据库安装在服务器上,要求多用户可同时使用!
    水平: 中级(周明 )
问题出在: 
    ADOConnection.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False; Password=Psd;Data Source=filename.mdb"
    不能用Password的形式定义数据库密码,应该改成:
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filename.mdb ;Persist Security Info=False;Jet OLEDB:Database Password=Psd

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值