Public Sub ConnectToDatabase(DataControl As Control, _
Path As String, SourceOrSQL As Variant) Const BYTE_MAX = 32 Const PWD_BYTE_POS = &H43 Dim bAccessKey(1 To BYTE_MAX) As Byte Dim bCryptKey(1 To BYTE_MAX) As Byte Dim SPass As String Dim I As Long DataControl.DatabaseName = Path bAccessKey(1) = &H86 bAccessKey(2) = &HFB bAccessKey(3) = &HEC bAccessKey(4) = &H37 bAccessKey(5) = &H5D bAccessKey(6) = &H44 bAccessKey(7) = &H9C bAccessKey(8) = &HFA bAccessKey(9) = &HC6 bAccessKey(10) = &H5E bAccessKey(11) = &H28 bAccessKey(12) = &HE6 bAccessKey(13) = &H13 bAccessKey(14) = &HB6 bAccessKey(15) = &H8A bAccessKey(16) = &H60 bAccessKey(17) = &H54 bAccessKey(18) = &H94 bAccessKey(19) = &H7B bAccessKey(20) = &H36 bAccessKey(21) = &H91 bAccessKey(22) = &H7F bAccessKey(23) = &HDF bAccessKey(24) = &HB1 bAccessKey(25) = &H77 bAccessKey(26) = &HF4 bAccessKey(27) = &H13 bAccessKey(28) = &H43 bAccessKey(29) = &HCF bAccessKey(30) = &HAF bAccessKey(31) = &HB1 bAccessKey(32) = &H33 Dim iFile As Integer iFile = FreeFile Open Path For Binary As #iFile Get #iFile, PWD_BYTE_POS, bCryptKey Close iFile SPass = "" For I = 1 To BYTE_MAX If bCryptKey(I) = bAccessKey(I) Then Exit For SPass = SPass & Chr$(bCryptKey(I) Xor bAccessKey(I)) Next I DataControl.Connect = ";PWD=" & SPass DataControl.RecordSource = SourceOrSQL DataControl.Refresh End Sub |