IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Extraire le code vba d'une base Access [Toutes versions]


Sujet :

Contribuez

  1. #1
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    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 : 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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    SaveVBCode "C:\chemin\modules.vb"
    Tout le code de la base de données sera stockée dans le fichier.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2018
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Réponse ancienne, mais pour moi cela ne fonctionne pas

    ACCESS 2013

  3. #3
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par sfilano Voir le message
    Réponse ancienne, mais pour moi cela ne fonctionne pas

    ACCESS 2013
    Bonjour,

    Vous devez avoir un problème, car cela fonctionne correctement, je viens de tester avec Access 2007 et 2016, et le fichier est bien créé dans les deux cas.

    Cdlt.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2018
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Ca y est, cela fonctionne.
    Je mettais le fichier directement à la racine du disque, certainement problème de droits en écriture. Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Exporter tout le code VBA d'une application Access
    Par zoom61 dans le forum VBA Access
    Réponses: 8
    Dernier message: 14/04/2011, 12h20
  2. Changer le Mot de Passe d'une Base Access par Le code
    Par sigap dans le forum Contribuez
    Réponses: 9
    Dernier message: 21/12/2010, 12h36
  3. Stocker / Extraire des fichiers dans une base Access
    Par bryan_fury75 dans le forum Bases de données
    Réponses: 5
    Dernier message: 14/06/2006, 16h17
  4. [VBA-E] Requetes depuis Excel sur une Base Access sécurisée
    Par DhiSan dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/05/2006, 19h44
  5. Réponses: 13
    Dernier message: 20/04/2006, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo