Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

求:启动时自动刷新链接加密后台数据表

zhangjl  发表于:2011-07-27 12:09:53  
复制

将系统分离了,后台也是ACCESS的,

为了安全,将后台加密了,前台是链接后台的表,

没加时,用DoCmd.TransferDatabase方法可以更新所有的表,

但是加密后,

我搞不定了,

刷新时要自己不断的输入密码,

求高人指点用DoCmd.TransferDatabase方法,怎么解决啊

 

Top
loginwjd 发表于:2011-08-06 23:44:02

问题:

使用TransferDatabase导入外部加密的数据库文件时,怎样自动输入密码?不用ODBC数据
库.

DoCmd.TransferDatabase acImport, "Microsoft Access", 数据库路径, acTable, 表
名称, 表名称

 


回答:

根据我的经验,在TransferDatabase方法中并不支持打开加密的文件。但是我们可以通过下面两种变通的方式来实现:

1. 通过DAO的方法来实现类似的功能,比如:
Dim db As DAO.Database, tdf As DAO.TableDef

Set db = CurrentDb
Set tdf = db.CreateTableDef ("tblTestLink")
tdf.SourceTableName = "tblTestLink"
tdf.Connect = ";DATABASE=c:\testdatatrans\source.mdb;PWD=<Password>" 
db.TableDefs.Append tdf
Set tdf = Nothing

如果希望手动输入密码的话,可以将语句修改成:
tdf.Connect = ";DATABASE=c:\testdatatrans\source.mdb;PWD="&InputBox("Enter Password")

2. 我们可以采取“欺骗”的方式来完成这个功能:在Access中先通过code打开该数据库,然后紧接着用TransferDatabase来完成这个操作:

Function foo()
    Dim db As Database
    Dim oAcc As Access.Application

    Const TMP = "<database name>"

    Set db = DBEngine.CreateDatabase(TMP, _
                        dbLangGeneral)
    db.NewPassword "", "<password>"
    db.Close
    Set db = Nothing

    Set oAcc = New Access.Application
    Set db = oAcc.DBEngine.OpenDatabase(TMP, _
                            False, False, ";PWD=<Password>")
    DoCmd.TransferDatabase acImport, "Microsoft Access", _
    <Database Path> acTable, <Source TableName>, <Destination TableName>
    db.Close
    Set db = Nothing
End Function

关于这个方法更多的详细描述,您可以参考MVP Michael Kaplan的文章:

Specify UserName & Password for new Access instance
http://www.mvps.org/access/modules/mdl0036.htm

http://www.access911.net/fixhtm/72FAB31E11DCEAF3.htm链接



总记录:1篇  页次:1/1 9 1 :