none
Reset des variables après l'utilisation de la méthode InsertLines insérant des lignes de code dans un module VBA RRS feed

  • Question

  • Bonjour,

    Version Access 2021.

    Lors de l'insertion de ligne de code à l'aide de la méthode <InsertLines> dans un module VBA, j'ai remarqué que toutes les variables du programme étaient resetées après sont exécution. Quand la ligne de code utilisant la méthode <InsertLines> est mise en commentaire, le problème ne se pose pas.

    Voici illustré le résultat d'un petit programme de test.

    Voici le code du teste dans le formulaire.

    Option Compare Database
    Option Explicit
    
    Dim MyVariableForm As String
    
    'Ajouter la référence <Microsoft Visual Basic for Applications Extensibility 5.3>
    
    Private Sub cmdCode_Click()
    
    Dim codeModuleProject As VBIDE.CodeModule
    Dim positionLine As Long, idNameprocedure As Long
    Dim codeVBA As String
    
    Set codeModuleProject = VBE.VBProjects(1).VBComponents("AddCode").CodeModule
    
    'Se positionne sur une nouvelle ligne en dessous du module
    positionLine = codeModuleProject.CountOfLines + 1
    
    'Crée le début de la procédure
    idNameprocedure = Timer * 100
    codeVBA = vbCrLf & "Public sub Essai" & idNameprocedure & "()"
    
    'Ajoute la fin de la procédure
    codeVBA = codeVBA & vbCrLf & vbCrLf & "End Sub"
    
    'Ajoute le code et le visualise
    codeModuleProject.InsertLines positionLine, codeVBA
    VBE.VBProjects(1).VBComponents(codeModuleProject.Name).Activate
    VBE.ActiveCodePane.SetSelection positionLine + 1, 1, positionLine + 1, 1
    VBE.ActiveCodePane.Show
    
    End Sub
    
    Private Sub cmdInitVariable_Click()
    
    'Initialise les variables publics et du formulaire
    MyVarPublic1 = 100
    MyVarPublic2 = True
    MyVariableForm = "Form variable"
    
    Me.txtVariable1 = MyVarPublic1
    Me.txtVariable2 = MyVarPublic2
    Me.txtVariable3 = MyVariableForm
    
    End Sub
    
    Private Sub cmdRead_Click()
    
    'Affiche les valeurs des variables publics et du formulaire
    Me.txtVariable1 = MyVarPublic1
    Me.txtVariable2 = MyVarPublic2
    Me.txtVariable3 = MyVariableForm
    
    End Sub

    Voici les variables publics dans le module Paramètres.


    Voici le code créé dans le module AddCode par la méthode InsertLines.

    Y-a-t-il une solution à ce problème?




    mercredi 22 février 2023 08:07

Toutes les réponses

  • Je viens d'essayer  la méthode <AddFromString> à la place de <InsertLines>.
    Le problème est identique.

    mercredi 22 février 2023 13:42
  • Bonsoir Jacky,

    Vous pouvez essayer d'ajouter le code dynamiquement à l'aide de OnAction comme expliqué dans le lien suivant:

    A bientôt

    Alexis


    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni « tel quel » et il n'implique aucune responsabilité de la part de Microsoft. S'il vous plaît n'oubliez pas de « Marquer comme réponse » les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile l’accès aux solutions.

    mercredi 22 février 2023 16:13
    Modérateur
  • Merci pour votre suggestion.

    Si j'ai bien compris, Onaction est associé à la création d'un bouton dans Excel.

    je ne trouve pas cela dans Access.

    De plus, la sous-routine que je dois créer dans mon module ne sera pas associée à un controle de formulaire.

    mercredi 22 février 2023 17:18