网站、APP、小程序、软件、硬件定制开发,联系QQ:99605319


设置DAO库并在VBA中运行Access数据库密码读取源码的步骤:

一、设置DAO库

  1. 打开你的Office应用程序(如Excel或Access)。

  2. 打开VBA编辑器:

    • 在Excel中,你可以按 Alt + F11 来打开VBA编辑器。

    • 在Access中,你可以通过“开发工具”选项卡中的“Visual Basic”按钮来打开VBA编辑器。

  3. 设置对DAO库的引用:

    • 在VBA编辑器中,选择菜单栏上的“工具”(Tools),然后选择“引用”(References)。

    • 在“引用 - VBAProject”窗口中,滚动查找与DAO相关的条目(例如“Microsoft DAO 3.6 Object Library”或类似名称,具体取决于你的Office版本)。

    • 勾选该条目,然后点击“确定”保存更改。

二、运行你的代码

一旦你已经设置了对DAO库的引用,你可以将你的代码放入一个VBA模块或工作表代码区域中,然后运行它。

以下是如何将你的代码放入一个VBA模块中并运行的步骤:

  1. 在VBA编辑器中,右键点击“插入”(Insert),然后选择“模块”(Module)。

  2. 在新打开的模块窗口中,粘贴以下代码

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


评论(0条)

请登录后评论
ziyuan

ziyuan Rank: 16

0

0

0

( 此人很懒并没有留下什么~~ )

首页

栏目

搜索

会员