您的位置:程序门 -> vb -> 数据库(包含打印,安装,报表)



急问,vb打开access数据库出现3051错误


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


急问,vb打开access数据库出现3051错误
发表于:2007-08-24 11:05:22 楼主
我是个学校的信息老师,想做个程序在每个教室的教学电脑里,可以自动判断
当前时间是上课时间还是课外时间,当前用户身份是否合法,比如上课时间只能
教师登录,课外时间只能学生登录,管理员任何时间都能登录.
我在一台机器上已经把程序设计好并测试了,但是我用vb的打包发布向导做成
安装包,安装到另一台机器上,我以管理员身份运行程序就没问题,但是注销管理
员选择教师身份登录时,运行程序就出现"运行时错误‘3051‘      
    microsoft       jet       数据库引擎打不开文件.它已经被别的用户以独占方式打开,或没有查看数据库的权限。     ",如果我关闭计算机再开启,然后直接登录教师后运行
程序还是一样的错误.   为什么同样的程序在原来那台机器上运行没问题,在这台机器
上就不行?这台机器我也已经设置好权限.
还有,在发帖前我搜索过相关问题,发现有人提过这个问题:"运行时错误‘3051‘           microsoft       jet       数据库引擎打不开文件“g:\ku.mdb '.它已经被别的用户
以独占方式打开,或没有查看数据库的权限。       "
我注意到他这个问题指出了打不开的文件的文件名,而我的却没有,我记得错误
提示时,文件两个字的后面是有引号的,所以我猜想可能我写的程序运行时导致打开
一个空字符串,因为我的语句是这样的
pstr=app.path+ "\xxgl.mdb "
set   db=opendatabase(pstr)
但是我在两行之间插入一句 msgbox   pstr
然后再调试,发现对话框弹出,信息为"e:\xtgl\xxgl.mdb "
正是我的数据库的路径,但是还是出那样的错误
为什么会这样,为什么语句是一样的,原来机器上就好好的,请大家帮忙,谢谢了

发表于:2007-08-24 12:11:241楼 得分:0
多方面测试
我把教师升级为管理员权限,试验结果还是一样.
我直接在程序里指明数据库路径来打开,编译后以教师身份登录运行,结果一样
我在程序里故意指定一个错误的文件路径来打开数据库,以管理员身份运行,报
错为"无法找到数据库文件xxxx",错误表现正常,以教师身份运行,还是老
错误!打不开数据库文件 ' '
反正以管理员身份,一切都正常,以教师身份,错误永远是那个,我看了,
在无法打开数据库文件后面是'',说明程序运行时总是认为我要打开一个空的
文件路径(或者说是不存在的),即使是我特意指定文件路径和名字也一样.
郁闷啊
发表于:2007-08-26 10:33:082楼 得分:0
pstr=app.path+ "\xxgl.mdb "

如果使用vb的话   建议   使用   pstr=app.path   &   "\xxgl.mdb "
发表于:2007-08-27 09:43:483楼 得分:0
重启了就不是真的让独占了,原因是你数据库路径问题!


快速检索

最新资讯
热门点击