Bonjour,
est ce qu'il existe un code permettant de recenser les procédures et fonctions VBA d'une base Access (courante ou en donnant un chemin) ?
Bonjour,
est ce qu'il existe un code permettant de recenser les procédures et fonctions VBA d'une base Access (courante ou en donnant un chemin) ?
Salut,
Oui, j'ai des modules et un form qui me permettent d'avoir le nom de tout les objets de ma base, le noms, le code. Par exemple le nom des tables, form, requêtes, modules et si je veux je peux même avoir le code VBA.
Le tout s'écrit dans un fichier texte.
A+
C'est intéressant, est ce que tu peux partager cette appli et son code ?
mais ce que je cherche est de lister les fonctions / procédures dans chaque module VBA
Bonjour.
Pour info il existe un outil de documentation dans Access qui peut peut-être répondre à ton besoin.
Dans la version 2013, il est dans le volet "Outils de base de données" "Documentation de la base de données".
Bon cela fait un rapport assez long et indigeste. Quand je m'en sers je l'imprime "en pdf" pour pouvoir ensuite faire des recherches dedans.
C'est loin d'être le truc idéal mais cela ne nécessite aucun codage.
A+
Vous voulez une réponse rapide et efficace à vos questions téchniques ?
Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.
Merci pour les réponses, l'export "papier" est effectivement intéressant, mais il faut l'exporter et retravailler la données, ce sera un bon plan B
En cherchant ça et là, il s'avère qu'il y a bien un code qui permet de le faire en VBA
je viens de trouver ça http://www.cpearson.com/excel/vbe.aspx
ça utilise la référence à "Microsoft Visual Basic For Applications Extensibility 5.3", avec des objets de type VBIDE
il y a du code … mais c'est du VBA "Excel" faisant référence à des worksheet, est ce que ce serait possible de l'adapter à du VBA Access ?, là je coince
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 Sub ListProcedures() Dim VBProj As VBIDE.VBProject Dim VBComp As VBIDE.VBComponent Dim CodeMod As VBIDE.CodeModule Dim LineNum As Long Dim NumLines As Long Dim WS As Worksheet Dim Rng As Range Dim ProcName As String Dim ProcKind As VBIDE.vbext_ProcKind Set VBProj = ActiveWorkbook.VBProject Set VBComp = VBProj.VBComponents("Module1") Set CodeMod = VBComp.CodeModule Set WS = ActiveWorkbook.Worksheets("Sheet1") Set Rng = WS.Range("A1") With CodeMod LineNum = .CountOfDeclarationLines + 1 Do Until LineNum >= .CountOfLines ProcName = .ProcOfLine(LineNum, ProcKind) Rng.Value = ProcName Rng(1, 2).Value = ProcKindString(ProcKind) LineNum = .ProcStartLine(ProcName, ProcKind) + _ .ProcCountLines(ProcName, ProcKind) + 1 Set Rng = Rng(2, 1) Loop End With End Sub Function ProcKindString(ProcKind As VBIDE.vbext_ProcKind) As String Select Case ProcKind Case vbext_pk_Get ProcKindString = "Property Get" Case vbext_pk_Let ProcKindString = "Property Let" Case vbext_pk_Set ProcKindString = "Property Set" Case vbext_pk_Proc ProcKindString = "Sub Or Function" Case Else ProcKindString = "Unknown Type: " & CStr(ProcKind) End Select End Function
Bonjour.
Oui c'est un palliatif vite fait mais peu exploitable par une machine.
Accéder au code VBA est pas mal pénible avec du VBA
Ici une discussion sur le sujet.
http://www.utteraccess.com/forum/Rea...-t2021888.html
Une autre astuce possible est d'exporter les objets sous forme de fichiers textes puis de lire les fichiers textes. C'est généralement plus facile même si l'export ajoute pas mal de trucs inutiles pour ce qui t'intéresse. En tout cas ça bât le pdf :-).
Tu as ici toute une discussion sur le sujet.
https://www.access-programmers.co.uk...xt-file.66204/
As-tu regardé si les Mz-Tools ne permettaient pas cela (dans les outils Access sur ce site) ?
Aussi il y a http://rubberduckvba.com/Indentation qui permet de faire des choses assez avancées.
A+
Vous voulez une réponse rapide et efficace à vos questions téchniques ?
Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.
Bonjour,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Public Sub listSubFuncVBA(PathBase As String) Dim oAccess As New Access.Application Dim oDb As DAO.Database Dim strName As String, strLine As String Dim I As Integer, J As Integer oAccess.OpenCurrentDatabase (PathBase) Set oDb = oAccess.CurrentDb For I = 1 To Application.VBE.VBProjects(1).VBComponents.Count ' nom du Formulaire, du Report, du Module Debug.Print vbCrLf & I & " " & Application.VBE.VBProjects(1).VBComponents.Item(I).Name For J = 1 To Application.VBE.VBProjects(1).VBComponents.Item(I).CodeModule.CountOfLines strLine = Application.VBE.VBProjects(1).VBComponents.Item(I).CodeModule.Lines(J, 1) strName = left(strLine, 11) ' nom des procédures et fonctions If left(strName, 11) = "Public Func" Then Debug.Print " " & I & " " & strLine ElseIf left(strName, 11) = "Private Fun" Then Debug.Print " " & I & " " & strLine ElseIf left(strName, 11) = "Public Sub " Then Debug.Print " " & I & " " & strLine ElseIf left(strName, 11) = "Private Sub" Then Debug.Print " " & I & " " & strLine Else ' lignes des procédures et fonctions ' Debug.Print strLine End If Next J Next I Set oAccess = Nothing End Sub
Un travail qui plait est à moitié fait.
Bonjour,
Pour lister les procédures
code de de Jean-Philippe André Redacteur/moderateur
http://www.developpez.net/forums/d67...s-base-access/
Bonjour à tous,
et merci pour les input
j'ai concaténé tout ça dans un base ci jointsGetFnction.zip
on saisit le nom de la base, son chemin on clique et on obtient la liste des fonction et Sub par module
Bonjour,
une contribution Excel adaptable pour Access :
https://www.developpez.net/forums/d1...lasseur-excel/
Cycle de vie d'un bon programme :
1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise
Pas de question technique par MP, je ne réponds pas
Mes ouvrages :
Apprendre à programmer avec Access 2016, Access 2019 et 2021
Apprendre à programmer avec VBA Excel
Prise en main de Dynamics 365 Business Central
Pensez à consulter la FAQ Excel et la FAQ Access
Derniers tutos
Excel et les paramètres régionaux
Les fichiers Excel binaires : xlsb,
Autres tutos
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager