Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

通过VBA动态链接另一带有密码的access数据库的表

时 间:2008-12-20 13:30:13
作 者:a63521557   ID:373  城市:重庆
摘 要:通过VBA编程动态链接到商品软件中带有密码的ACCESS数据库的表,对其数据进行再加工处理乃至二次开发利用。
正 文:

  现有好些商品软件和网站的后台数据库采用的仍是ACCESS数据库文件,并都加了密码,且其密码中还含有键盘难以输入的控制符。在既要保持原有软件所提供的功能可正常运行使用,又要充分利用其录入到ACCESS数据库中的业务数据资源,拓展其功能用途的情况下,通过VBA编程动态链接到带有密码的ACCESS数据库的表,对其数据进行再加工处理乃至二次开发利用,不失为一良好的途径。在此将实现这一过程的关键程序源代码摘录如下:

Private Sub Command1_Click()
On Error GoTo Err_Command1_Click
   
    Dim I As Integer

    I = CurrentDb.TableDefs.Count - 1
    '删除现有的全部链接表。表类型属性CurrentDb.TableDefs(I).Properties(1)为False
    While I >= 0
        'Debug.Print I, CurrentDb.TableDefs(I).Name, CurrentDb.TableDefs(I).Properties(1)
        If Not CurrentDb.TableDefs(I).Properties(1) Then
            DoCmd.DeleteObject acTable, CurrentDb.TableDefs(I).Name
        End If
        I = I - 1
    Wend

    Me.txtPWD.SetFocus  '激活密码输入栏
    SendKeys "%EC", False  'Alt+编辑(E)+复制(C)_复制密码(含键盘无法输入的字符)
    SendKeys "%FGL", False  'Alt+文件(F)+获取外部数据(G)+链接表(L)
    SendKeys Me.txtPath, False '输入数据库带盘符或网络地址符路径的全名
    SendKeys "%K", False  'Alt+链接(K)
    SendKeys "^V", False  'Ctrl+V_粘贴输入数据库密码
    SendKeys "{ENTER}", False  '确定回车
    SendKeys "%A", False  'Alt+全选(A)_选择全部表
    SendKeys "%A", False  'Alt+全选(A)_再次选择全部表,避免网络反映延迟阻断
    SendKeys "{ENTER}", False  '确定回车

Exit_Command1_Click:
    Exit Sub

Err_Command1_Click:
    MsgBox Err.Description
    Resume Exit_Command1_Click

End Sub

  不难看出,此程序主要就是运用了简单的SendKeys指令,模拟人工操作步骤,而使看似复杂的问题得到了解决。

示例文件请参见:http://www.accessoft.com/bbs/showtopic.asp?ID=2982&BoardID=17



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助