2009-03-09 4 views
2

J'ai essayé de trouver des informations sur l'accès au code brut dans MS Access (j'utilise v2007 mais devrait probablement s'appliquer à toutes les versions). Dites par exemple que je voudrais lister toutes les fonctions dans chaque formulaire code-derrière et le module dans l'application et énumérer leurs paramètres.Accéder au code brut dans une application MS Access

Comment y parviendrez-vous?

Remarque: Je suppose bien sûr que l'application n'est pas compilée.

Répondre

4

Vous pouvez générer tout le code en texte et l'exécuter via un autre programme ou le charger dans une base de données, ou vous pouvez écrire du code pour accéder au code en utilisant VBE.

Sub AllCodeToDesktop() 
    'The reference for the FileSystemObject Object is Windows Script Host Object Model 
    'but it not necessary to add the reference for this procedure. 

    Dim fs As Object 
    Dim f As Object 
    Dim strMod As String 
    Dim mdl As Object 
    Dim i As Integer 

    Set fs = CreateObject("Scripting.FileSystemObject") 

    'Set up the file. 
    Set f = fs.CreateTextFile(SpFolder(Desktop) & "\" _ 
     & Replace(CurrentProject.Name, ".", "") & ".txt") 

    'For each component in the project ... 
    For Each mdl In VBE.ActiveVBProject.VBComponents 
     'using the count of lines ... 
     i = VBE.ActiveVBProject.VBComponents(mdl.Name).CodeModule.CountOfLines 
     'put the code in a string ... 
     If VBE.ActiveVBProject.VBComponents(mdl.Name).codemodule.CountOfLines > 0 Then 
      strMod = VBE.ActiveVBProject.VBComponents(mdl.Name).codemodule.Lines(1, i) 
     End If 
     'and then write it to a file, first marking the start with 
     'some equal signs and the component name. 
     f.writeline String(15, "=") & vbCrLf & mdl.Name _ 
      & vbCrLf & String(15, "=") & vbCrLf & strMod 
    Next 

    'Close eveything 
    f.Close 
    Set fs = Nothing 
End Sub 

De: http://wiki.lessthandot.com/index.php/Code_and_Code_Windows

+0

Merci, je savais qu'il me manquait quelque chose, je ne me rappelais pas qu'il y avait un objet VBE. Merci encore :-) –

1

Est-il possible d'appeler l'objet VBE d'un autre programme? Merci d'avoir soulevé cette question des morts, j'ai la nouvelle discussion here

Questions connexes