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 :

Copier le code d'un module vers un autre


Sujet :

VBA Access

  1. #1
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut Copier le code d'un module vers un autre
    Bonjour,

    Je cherche comme dupliquer le code contenu dans un module d'un formulaire vers un autre. Je m'explique : j'ai un formulaire classique qui contient un bouton détails. le code de ce bouton permet de créer un nouveaux formulaire qui contient lui aussi un bouton détails. Je voudrai attribuer à ce nouveau bouton le même code que le premier bouton.

    Comme je suis un peu fainéant j'ai pas envie de retaper mon code. Donc existe-t-il un moyen de récupérer le code d'un bouton dans une variable sans le retaper? Cela me permettrai aussi de faire évoluer le code des deux bouton en même temps ce qui serai bien pratique

    Cordialement

  2. #2
    Membre régulier Avatar de ofinot
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 98
    Points : 100
    Points
    100
    Par défaut
    Ce que tu peux faire, c'est créer dans ton module une fonction, par exemple bouton_detail, comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public sub bouton_detail()
       'ICI TON CODE
    End sub
    Et tu y place le code de ton bouton.

    Après dans ton bouton tu n'auras plus qu'à appeler ladite fonction.

  3. #3
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Créer une fonction n'est pas le problème. Mon formulaire est créer dynamiquement et donc je me peux pas écrire par avance le code à main dans son module. Or le code à écrire existe déjà mais dans un autre module de formulaire, je cherche donc copier le code existant pour éviter de le recopier à la mains dans une constant.

    Je suis sur une piste avec la fonctions Find d'un module

    Je mettrai le code quand je l'aurai debugger

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 239
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 239
    Points : 555
    Points
    555
    Par défaut
    Salut,

    Si le bouton détail de ton formulaire crée un formulaire identique au premier, pourquoi ne pas le copier simplement, ainsi ton code le sera également.

    A voir si c'est possible.

    A+

  5. #5
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    c'est une très bonne idée, mais malheureusement je n'arrive pas à copier/coller un formulaire qui a du code VBA. Alors je copie/colle un formulaire vierge et je rajoute le code à la vollé

  6. #6
    Membre actif Avatar de psykodumarteau
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Points : 218
    Points
    218
    Par défaut
    Bonjour,

    Après une pause développement et quelques recherches, j'ai créé une fonction qui me permet de mettre dans une variable String le code d'une Function ou d'une Sub contenu dans le module d'un formulaire. Voici le code :

    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
     
    Public Function TrouveFonction(ByVal nomfonction As String, ByVal typefonction As String, ByVal formulaire As String) As String
    Dim lgdeb As Long
    Dim lgfin As Long
    Dim coldeb  As Long
    Dim colfin As Long
     
    Dim module As module
     
    Dim debmod As Long
    Dim finmod As Long
     
    Set module = Forms(formulaire).module
     
    lgdeb = 0
    coldeb = 0
    lgfin = module.CountOfLines
    colfin = 200
     
    If module.Find(typefonction & " " & nomfonction, lgdeb, coldeb, lgfin, colfin) Then
     
    debmod = lgdeb
     
    coldeb = 0
    lgfin = module.CountOfLines
    colfin = 200
     
        If module.Find("End " & typefonction, lgdeb, coldeb, lgfin, colfin) Then
        finmod = lgdeb - 1
        End If
    End If
     
     
    TrouveFonction = module.Lines(debmod + 1, finmod - debmod)
     
    End Function
    Pour coller le code la procédure d'évènement d'un autre formulaire je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    lgnreturn = mdlevent.CreateEventProc("Click", newform.BtnDetails.Name)
    mdlevent.InsertLines lgnreturn + 1, TrouveFonction("BtnDetails_Click", "Sub", "BESOINS&RESSOURCES&DESI&CLIENT")
    Cordialement

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/01/2007, 09h40
  2. Réponses: 3
    Dernier message: 20/11/2006, 17h48
  3. [MySQL] Copier 1 champ d'1 table vers une autre.
    Par cisse18 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 12/04/2006, 09h50
  4. Réponses: 12
    Dernier message: 22/02/2006, 15h28
  5. Copier un enregistrement d'une table vers une autre
    Par le lynx dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 04/01/2006, 09h56

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