本文由 资源共享网 – ziyuan 发布,转载请注明出处,如有问题请联系我们!Access数据库密码读取源码(VBA)
收藏设置DAO库并在VBA中运行Access数据库密码读取源码的步骤:
一、设置DAO库
打开你的Office应用程序(如Excel或Access)。
打开VBA编辑器:
在Excel中,你可以按 Alt + F11 来打开VBA编辑器。
在Access中,你可以通过“开发工具”选项卡中的“Visual Basic”按钮来打开VBA编辑器。
设置对DAO库的引用:
在VBA编辑器中,选择菜单栏上的“工具”(Tools),然后选择“引用”(References)。
在“引用 - VBAProject”窗口中,滚动查找与DAO相关的条目(例如“Microsoft DAO 3.6 Object Library”或类似名称,具体取决于你的Office版本)。
勾选该条目,然后点击“确定”保存更改。
二、运行你的代码
一旦你已经设置了对DAO库的引用,你可以将你的代码放入一个VBA模块或工作表代码区域中,然后运行它。
以下是如何将你的代码放入一个VBA模块中并运行的步骤:
在VBA编辑器中,右键点击“插入”(Insert),然后选择“模块”(Module)。
在新打开的模块窗口中,粘贴以下代码
Option Explicit Private Sub ShowPassWord_Click() Dim password As String Dim temp As Byte Dim source97(12) As Byte Dim source2000(39) As Byte Dim i As Integer Dim fd As FileDialog Dim selectedFile As String ' 初始化Access 97的加密关键字数组source97 source97(0) = &H86 source97(1) = &HFB source97(2) = &HEC source97(3) = &H37 source97(4) = &H5D source97(5) = &H44 source97(6) = &H9C source97(7) = &HFA source97(8) = &HC6 source97(9) = &H5E source97(10) = &H28 source97(11) = &HE6 source97(12) = &H13 ' 初始化Access 2000的加密关键字数组source2000 source2000(0) = &H20 source2000(1) = &H6D source2000(2) = &HEC source2000(3) = &H37 source2000(4) = &HFB source2000(5) = &HD2 source2000(6) = &H9C source2000(7) = &HFA source2000(8) = &H60 source2000(9) = &HC8 source2000(10) = &H28 source2000(11) = &HE6 source2000(12) = &HB5 source2000(13) = &H20 source2000(14) = &H8A source2000(15) = &H60 source2000(16) = &HF2 source2000(17) = &H2 source2000(18) = &H7B source2000(19) = &H36 source2000(20) = &H53 source2000(21) = &HE4 source2000(22) = &HDF source2000(23) = &HB1 source2000(24) = &HD1 source2000(25) = &H62 source2000(26) = &H13 source2000(27) = &H43 source2000(28) = &H69 source2000(29) = &H39 source2000(30) = &HB1 source2000(31) = &H33 source2000(32) = &H92 source2000(33) = &HF7 source2000(34) = &H79 source2000(35) = &H5B source2000(36) = &H34 source2000(37) = &H23 source2000(38) = &H7C source2000(39) = &H2A ' 创建文件对话框对象 Set fd = Application.FileDialog(msoFileDialogFilePicker) ' 设置文件对话框属性 With fd .Title = "打开ACCESS数据库文件" .Filters.Clear .Filters.Add "Access Databases", "*.mdb" .AllowMultiSelect = False If .Show = -1 Then ' 用户选择了文件 selectedFile = .SelectedItems(1) Else ' 用户取消 MsgBox "您未选择文件", vbOKOnly + vbCritical, "注意" Exit Sub End If End With ' 打开选定的数据库文件 Open selectedFile For Binary As #1 Get #1, 21, temp ' 判断数据库版本并进行相应处理 If temp = &H0 Then ' Access 97 For i = 0 To 12 Get #1, 67 + i, temp ' 读取文件中67-79位的数据 If temp = source97(i) Then Exit For ' 如果匹配结束循环 password = password & Chr((temp Xor source97(i))) ' 生成密码 Next i Close #1 If Len(password) = 0 Then MsgBox "该数据库没有加密!", vbInformation, "信息" Else MsgBox "该数据库的密码为:" & password, vbInformation, "信息" End If ElseIf temp = &H1 Then ' Access 2000 For i = 0 To 39 Step 2 Get #1, 67 + i, temp ' 读取文件中67-106位的数据 If temp = source2000(i) Then Exit For ' 如果匹配结束循环 password = password & Chr((temp Xor source2000(i))) ' 生成密码 Next i Close #1 If Len(password) = 0 Then MsgBox "该数据库没有加密!", vbInformation, "信息" Else MsgBox "该数据库的密码为:" & password, vbInformation, "信息" End If Else Close #1 MsgBox "无法识别的数据库版本", vbCritical, "错误" End If End Sub