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

VBA Access Discussion :

Sauver le code avec Notepadd++ [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 247
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 247
    Par défaut Sauver le code avec Notepadd++
    Salut à tous et bon dimanche,

    J'ai créé un module qui me permet de sauvegarder au choix, le code de mes modules, Forms, Etat en format Txt avec notepad.

    J'ai envie, pour une lecture plus facile, de le sauvegarder avec NotePad++, donc je crée mon fichier .Txt et je l'ouvre avec NotePad++
    MAIS :
    Je dois faire une sélection de language pour VB et ensuite sauvegarder sous NomDeFichier.vb afin de pouvoir le réouvrir avec NotePad++
    Donc si vous pouvez m'aider à automatiser la sauvegarde sous NotePad++ dans ce format, je suis preneur.

    Merci pour votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 247
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 247
    Par défaut
    Bon, j'ai posé ma question trop vite

    Faut juste mettre .vb dans l'extension du fichier

    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
    Function SaveModules( _
      ByVal strFilename As String, _
      Optional ByVal blnOpenNotePad As Boolean = True)
     
        Dim ao As Access.AccessObject
        Dim intFileHandle As Integer
     
     
        strFilename = "M:\Code_Modules.vb" 'Changer le nom du fichier suivant ce que l'on veut
     
        ' On vérifie si le fichier existe déjà...
        If Dir(strFilename) <> "" Then
          If MsgBox("Le fichier existe déjà. Souhaitez-vous le remplacer ?", _
            vbQuestion + vbYesNo + vbDefaultButton2, "Export Code Modules") = vbNo Then
            Exit Function
          End If
        End If
     
        ' Ouvrir le fichier texte
        intFileHandle = FreeFile
        Open strFilename For Output As #intFileHandle
     
        ' ***************** Que le nom des Modules
        Dim db As DAO.Database, Doc As DAO.Document
        '
            Set db = CurrentDb
     
            For Each Doc In db.Containers("Modules").Documents
              Print #intFileHandle, Doc.Name
            Next
        '
            Set db = Nothing
     
        ' ***************** Traiter tous les modules un par un
        For Each ao In CurrentProject.AllModules
        '  ' On ouvre le module...
          DoCmd.OpenModule ao.Name
        '
        '  ' On écrit le code sur disque...
          SaveModule "MODULE", Application.Modules(ao.Name), intFileHandle
        '
        '  ' On referme le module
          DoCmd.Close acModule, ao.Name
        Next
     
        Close #intFileHandle
        If blnOpenNotePad Then
          ' Ouvrir le bloc-notes Windows si nécessaire
          Shell "C:\Program Files (x86)\Notepad++\notepad++.exe """ & strFilename & """", vbNormalFocus
        Else
          MsgBox "Opération terminée !", vbInformation, "Export Code"
        End If
    End Function
    Le module SaveModule

    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
    Sub SaveModule( _
      ByVal strTitle As String, _
      mdlModule As Access.Module, _
      ByVal intFileHandle As Integer)
     
        Long_Name = (Len(mdlModule.Name) - 5)
         Nom_Fichier = mdlModule.Name
        ' Titre du module
        Print #intFileHandle, "' ----------"
        Print #intFileHandle, Mid(mdlModule.Name, 1, (Len(mdlModule.Name))) 'Pour enlever Report_ devant le nom quand on imprime le nom des Etats
        Print #intFileHandle, "' ----------"
        Print #intFileHandle, ""
        Print #intFileHandle, mdlModule.Lines(1, mdlModule.CountOfLines)
        Print #intFileHandle, ""
        Print #intFileHandle, ""
    End Sub
    Voilà, et ça fonctionne Nickel

    A+

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 247
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 247
    Par défaut
    Pour finaliser la sauvegarde du code,

    Savez-vous comment je pourrais savegarder, comme le code VBA, le SQL des Requêtes.

    Merci

  4. #4
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 960
    Par défaut
    Bonjour,
    regarde dans QueryDefs de CurrentDb, il y a les propriétés Name et SQL qui devraient te donner la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function listeQry()
     Dim i As Integer
     
        With CurrentDb
            For i = 0 To .QueryDefs.Count - 1
                Debug.Print .QueryDefs(i).Name & " - " & .QueryDefs(i).type
                Debug.Print .QueryDefs(i).SQL
            Next i
        End With
     
    End Function

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 247
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 247
    Par défaut
    Salut,

    Merci pour ta réponse, je ragarde à ça demain.

    A+

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 247
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 247
    Par défaut
    Salut Tee_Grandbois,

    Ton code fonctionne bien, le seul bémol c'est qu'il me met également le code SQL qui se trouve dans Données/Contenu des contrôles
    Y a t-il un moyen de n'avoir que le SQL des Requêtes, je cherche mais pour l'instant ne trouve pas.

    Merci pour ton aide

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

Discussions similaires

  1. Comment linker avec odbc32.lib dans le code ? (avec gcc)
    Par _Audrey_ dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 06/11/2008, 17h40
  2. Probleme en compilant le code avec C2.EXE ?!?!?
    Par angelevil dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/11/2005, 16h13
  3. help sur un petit code avec XMLHttpRequest et setTimeout
    Par grinder59 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/10/2005, 10h22
  4. [JFileChooser]Sauver un fichier avec extension forcée
    Par FLCEOAP dans le forum Agents de placement/Fenêtres
    Réponses: 10
    Dernier message: 03/03/2005, 01h11
  5. [UML] génération de code avec omondo.uml
    Par RENAULT dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 31/10/2003, 13h14

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