hhy02111 发表于 2012-5-14 17:43:06

使用论坛自定义函数access,如何打开带密码的mdb文件【以解决】

本帖最后由 hhy02111 于 2012-5-18 18:47 编辑

问题如上,没有密码的文件都能正常打开,带密码后就提示出错,请问如何解决
UserInclude\Access.au3 (709) : ==> ??????(?????).:
$oADO.Open($adSource)
$oADO.Open($adSource)^ ERROR

502762378 发表于 2012-5-14 20:03:15

回复 1# hhy02111


    没研究过这个,之前三千兄研究过这个话题,你看看有没有帮助

http://www.autoitx.com/forum.php?mod=viewthread&tid=31870&highlight=access

sdc7 发表于 2012-5-15 18:53:27

看看参数吧·· 参数里可以写密码的·~·。。。。

hhy02111 发表于 2012-5-16 17:31:39

回复 2# 502762378
之前也读过他写的那篇文章,包括他引用的,只是感觉论坛的自定义函数比较好用,所以才想用用,但是牵扯到密码问题,比较挠头

user3000 发表于 2012-5-16 17:41:12

本帖最后由 user3000 于 2012-5-16 17:42 编辑

回复 4# hhy02111
那你编辑下 AU3 安装目录下 UserInclude\Access.au3
将   _dbOpen 函数的内容更换如下的就可以了
Func _dbOpen($adSource, $password = Default)
        If IsObj($oADO) Then
                $oADO = ObjGet('', $oADO)
        Else
                $oADO = ObjCreate("ADODB.Connection")
                $oADO.Provider = _adoProvider()
                If $password = Default Then
                        $oADO.Open($adSource)
                Else
                        $oADO.Open("Data Source=" & $adSource & ";Jet Oledb:Database Password=" & $password)
                EndIf
        EndIf
        Return $oADO
EndFunc   ;==>_dbOpen
最好还加入容错代码, 因为如果数据库密码不正确时, 程序可能会因对象错误而崩溃!

hhy02111 发表于 2012-5-16 18:57:56

用Persist Security Info=False;Jet OLEDB:Database Password=123456;Data Source替换access里的data sourec,提示这个错误
Access1.au3" (486) : ==> ???????????("Object").:
While Not $oRec.EOF
While Not $oRec^ ERROR

鹰飞九天 发表于 2012-5-17 09:14:50

学习学习,长点见识

hhy02111 发表于 2012-5-18 18:34:34

哈,谢谢,方法可行,但还是有些问题,最后直接把密码写入你给的 _dbOpen函数里测试成功,希望下次更新论坛函数的时候能改下这个问题。

hhy02111 发表于 2012-5-18 18:34:38

哈,谢谢,方法可行,但还是有些问题,最后直接把密码写入你给的 _dbOpen函数里测试成功,希望下次更新论坛函数的时候能改下这个问题。

hhy02111 发表于 2012-5-18 18:36:54

回复 5# user3000


    谢谢了,基本搞定了~~!!
页: [1]
查看完整版本: 使用论坛自定义函数access,如何打开带密码的mdb文件【以解决】