Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Contribuez
Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/05/2011, 13h28   #1
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Par défaut Extraire le code vba d'une base Access

Salut,

Voici le code qui permet d'extraire tout le code d'une base Access (basé sur le code d'Hervé Inisan).

Créer un module copier le code suivant dedans :
Code :
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Sub SaveVBCode(ByVal NomFichier As String)
 
Dim obj As Access.AccessObject
Dim IdFile As Integer
 
' On vérifie si le fichier existe déjà...
If Dir(NomFichier) <> "" Then
  If MsgBox("Le fichier existe déjà. Souhaitez-vous le remplacer ?", _
    vbQuestion + vbYesNo + vbDefaultButton2, "Export Modules") = vbNo Then
    Exit Sub
  End If
End If
 
' Ouvrir le fichier texte
IdFile = FreeFile
Open NomFichier For Output As #IdFile
 
' Traiter tous les modules un par un
For Each obj In CurrentProject.AllModules
  DoCmd.OpenModule obj.Name
  ExportVBCode "MODULE", Application.Modules(obj.Name), IdFile
  DoCmd.Close acModule, obj.Name
Next
 
' Traiter tous les formulaires un par un
For Each obj In CurrentProject.AllForms
  DoCmd.OpenForm obj.Name, acDesign
  If Forms(obj.Name).HasModule Then
    ExportVBCode "FORM MODULE", Forms(obj.Name).Module, IdFile
  End If
  DoCmd.Close acForm, obj.Name
Next
 
' Traiter tous les états un par un
For Each obj In CurrentProject.AllReports
  DoCmd.OpenReport obj.Name, acDesign
  If Reports(obj.Name).HasModule Then
    ExportVBCode "REPORT MODULE", Reports(obj.Name).Module, IdFile
  End If
  DoCmd.Close acReport, obj.Name
Next
 
' On ferme !
Close #IdFile
MsgBox "Opération terminée !", vbInformation, "Code VB exporté"
End Sub
 
 
Sub ExportVBCode( _
  ByVal Titre As String, _
  vbMod As Access.Module, _
  ByVal IdFile As Integer)
 
Print #IdFile, "' ----------"
Print #IdFile, "' " & Titre & ": " & vbMod.Name
Print #IdFile, "' ----------"
Print #IdFile, ""
Print #IdFile, vbMod.Lines(1, vbMod.CountOfLines)
Print #IdFile, ""
Print #IdFile, ""
End Sub
Ensuite dans la fenêtre d'exécution (ou Ctrl+G), saisir le code suivant :
Code :
SaveVBCode "C:\chemin\modules.vb"
Tout le code de la base de données sera stockée dans le fichier.
__________________
N'oubliez pas le Tag :

C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama]
Je ne réponds pas aux messages privés s'ils sont liés à une question du forum

Mon site sur Developpez.com
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h09.


 
 
 
 
Partenaires

Hébergement Web