Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xsgl.mdb ;Persist Security Info=true;Jet OLEDB:Database Password=wesdxc
专业表:
字段名称 类型 宽度
序号 自动编号
专业代码 文本 8
专业名称 文本 50
学制 文本 1
课程表:
字段名称 类型 宽度
序号 自动编号
课程名称 文本 50
教材 文本 200
专业 文本 50
周学时 文本 2
班级表:
字段名称 类型 宽度
序号 自动编号
年级 文本 4
专业 文本 50
班号 文本 8
名称 文本 50
学生表:
字段名称 类型 宽度
序号 自动编号
学号 文本 10
姓名 文本 16
性别 文本 2
生日 日期/时间
政治面貌 文本 20
民族 文本 20
籍贯 文本 8
电话 文本 30
邮箱 文本 30
特长 文本 50
照片 OLE 对象
成绩表:
字段名称 类型 宽度
序号 自动编号
学号 文本 8
学期 文本 20
课程 文本 50
平时 单精度型
考查 单精度型
考试 单精度型
总评 单精度型
用户表:
字段名称 类型 宽度
序号 自动编号
用户名 文本 20
密码 文本 20
权限 文本 10
当程序用ado的jet4.0方式连接的时候,对于设有access数据库密码的mdb的访问居然报错“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开”,而用odbc方式不报错,小阴沟里翻船,郁闷中然后查文档解决之:
错误 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
改了后就能够正常使用了,nnd,原来jet着鸟对于设置密码的mdb要用到windows的用户和组角色的设置的,以示安全,可tmd最可笑的是mdb的密码是单独存放的,脆弱的一踏糊涂,用一个小软件一看就能看到了,就象马奇诺防线,前面铜墙铁壁的,可德国人从后面抱了个园,谁和你正面作战呀,真可悲。。。。。
Feedback
# re: 当程序用ado的jet4.0方式连接的时候,对于设有access数据库密码的mdb的访问居然报错“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开”,而用odbc方式不报错,小阴沟里翻船,郁闷中然后查文档解决之 回复 更多评论
2006-05-04 12:15 by 刘浩
我也出现这种问题了,不过我不知道怎么改啊。
能不能帮帮忙啊。
我用的是VB+ACCESS
QQ:5407543
SELECT 学生.学号, 学生.姓名, 学生.性别, 成绩.课程, 成绩.总评
FROM 成绩 INNER JOIN 学生 ON 成绩.学号 = 学生.学号;
SELECT DISTINCT 成绩.学号, 学生.姓名, 学生.性别, (select 总评 from 成绩 where 课程='高等数学' and 学生.学号=成绩.学号) AS 高等数学, (select 总评 from 成绩 where 课程='计算机基础' and 学生.学号=成绩.学号) AS 计算机基础
FROM 学生, 成绩
WHERE 学生.学号=成绩.学号;