Quantcast
Channel: Форум программистов и сисадминов Киберфорум
Viewing all articles
Browse latest Browse all 514864

Поиск текста в запароленном модуле прикреплённой базы данных - MS Access

$
0
0
Добрый вечер.
Мне нужно устроить небольшой поиск по всем базам данных Access на компьютере.
Ищу в модулях. Всё происходит достаточно хорошо, до тех пор, пока не попадается база данных с паролем на модуле.

Вот моя функция:

:

Function ODBC_Module_inDBn_search()
On Error GoTo ODBC_Module_inDBn_search_Err
 
Dim rst_FileList        As DAO.Recordset
Dim rst_verknListe      As DAO.Recordset
Dim db                  As DAO.Database
Dim app                As New Access.Application
Dim findThat            As String
    findThat = ".Connect "
Dim oComponent          As Object
 
Dim anzZeilenInModul    As Long
Dim zeileNr            As Long
Dim accDatei            As String
 
 
AktVorgID = CurrentProject.Connection.Execute("SELECT Max(Vorgaenge.ID) AS MaxvonID FROM Vorgaenge;").Fields(0)
    Set db = CurrentDb
    Set rst_FileList = db.OpenRecordset("SELECT * FROM 1_accdb_Datei_Liste WHERE VorgangID = " & AktVorgID & "")
    Set rst_verknListe = db.OpenRecordset("2_ODBC_Verkn_Liste")
 
    Do While Not rst_FileList.EOF
       
        accDatei = "C:\testBE_DB_ModulPasswort.accdb"
        Set app = CreateObject("Access.application")
 
        Dim passwort As String
 
 
 
        Set db = app.DBEngine.OpenDatabase(accDatei, False, False, ";PWD=" & "kennwort")
        app.OpenCurrentDatabase accDatei
 
                Debug.Print rst_FileList!ID
        For Each oComponent In app.VBE.ActiveVBProject.VBComponents
            zeileNr = 1
            With oComponent
                anzZeilenInModul = .CodeModule.CountOfLines
 
                Do While .CodeModule.Find(findThat, zeileNr, 1, -1, -1, False, False, False) = True
                    rst_verknListe.AddNew
                    rst_verknListe!VorgangID = AktVorgID
                    rst_verknListe!AccessDatei_ID = rst_FileList!ID
                    rst_verknListe!Objekt = 3 ' 3 - Für Module
                    rst_verknListe!NameAktuell = oComponent.Name
                    rst_verknListe!Verknuepfung = Trim(.CodeModule.Lines(zeileNr, 1))
                    rst_verknListe.Update
 
                    zeileNr = zeileNr + 1    'Restart the search at the next line looking for the next occurence
                Loop
            End With
        Next oComponent
        app.Quit
 
        rst_FileList.MoveNext
    Loop
 
 
 
ODBC_Module_inDBn_search_Exit:
rst_FileList.Close
Set rst_FileList = Nothing
rst_verknListe.Close
Set rst_verknListe = Nothing
db.Close
Set db = Nothing
    Exit Function
 
ODBC_Module_inDBn_search_Err:
 
    MsgBox Err.Source & ", " & Err.Description
    Resume ODBC_Module_inDBn_search_Exit
 
End Function

Весь интернет перерыл - ничего не нашёл.
Если пароль на всю БД - примеры есть, а вот если только на модуль...
Может кто сталкивался?

Еще один момент: в некоторых БД при закрытии выводится MsgBox, в этих моментах моя функция затыкается. Может кто знает как закрыть БД (у меня в строке app.Quit) безо всяких уведомлений?

Viewing all articles
Browse latest Browse all 514864

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>