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 :

Modifier un champ après avoir coché une case à cocher


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 15
    Points : 15
    Points
    15
    Par défaut Modifier un champ après avoir coché une case à cocher
    Bonjour ou bonsoir à toutes et à tous,
    Je me permets encore une fois de faire appel à vos connaissances et à votre collaboration car je rencontre un problème que je ne parviens pas à résoudre malgré les consultations de plusieurs bouquins et forums. Voilà mon problème : je gère une base de données en Access 2010 pour mon club. J’ai plusieurs formulaires : FormPrincipal, FormInscription et un formulaire MENU. Dans le formulaire FormInscription, j’ai une case à cocher (RecuRemis) qui doit être cochée si, lors de l’inscription, le membre paie en cash. Dès lors je voudrais que dans le champ Mode de paiement qui porte le nom Modifiable72 (qui est un champ à choix multiple comprenant « espèces » et « Virements ») du formulaire FormPrincipal soit inscrit « Espèces ». J‘ai essayé avec des procédures événementielles et, n’ayant pas rencontré de succès, j’ai créé un module avec une fonction dont voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option Compare Database
     
    Public Function paiement()
        If Form_FormInscription.RecuRemis.Value = True And Form_FormPrincipal.Modifiable72.Value = "" Then
        Form_FormPrincipal.Modifiable72.Value = "Espèces"
        End If
     
    End Function
    J’appelle ma fonction comme ceci à partir de ma case à cocher de FormInscription:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub RecuRemis_AfterUpdate()
        Call paiement
    End Sub
    Malheureusement, je reçois le message d’erreur suivant (en pièce jointe car je ne sais pas comment faire autrement )

    Merci à l'avance pour votre aide.
    Images attachées Images attachées  

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 368
    Points : 23 840
    Points
    23 840
    Par défaut
    Tu n'as pas besoin de mettre cela dans un module à part. Tu peux le gérer directement dans le formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub RecuRemis_AfterUpdate()
        const MODE_PAIEMENT as string ="Espèces"
     
        If me.RecuRemis = True then
     
           if isnull(me.Modifiable72) or isEmpty(Modifiable72) then
                  Me.Modifiable72 = MODE_PAIEMENT 
           elseif trim(me.Modifiable72) = "" then
                  Me.Modifiable72 = MODE_PAIEMENT 
           end if
     
        end if
    End Sub
    Ça devrait fonctionner.

    J'ai traiter IsNull et IsEmpty à part à cause des Null qui font des choses bizares lorsqu'on les utilisent dans des tests.

    Au passage je te suggère de nommer ton champ Modifiable72 quelque chose comme lstModePaiement qui est tout de même plus parlant.

    A+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 15
    Points : 15
    Points
    15
    Par défaut Erreur
    Bonsoir et merci beaucoup pour cette réponse rapide.
    Malheureusement, le code ne fonctionne pas, voici une impression d’écran des messages d’erreur que je reçois. Serait-ce dû au fait que les champs concernés se trouvent dans des formulaires séparés ? En tous cas, je sèche…
    Images attachées Images attachées   

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 368
    Points : 23 840
    Points
    23 840
    Par défaut
    L'erreur de compilation se produit sur quelle lignes ?

    Note que j'ai oublié le me. dans isEmpty(Modifiable72), cela devrait être isEmpty(me.Modifiable72).

    Le me. se réfère au formulaire courant, cela permet d'avoir accès à tous les contrôles qu'il contient et cela sans ambiguité.

    A+

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 368
    Points : 23 840
    Points
    23 840
    Par défaut
    Si tes données ne sont pas dans le même formulaire il faut mettre [forms]![NomTonForm]![NomTonChanp] pour t'y référer.

    Form_NomTonForm ouvre une nouvelle instance du formulaire NomTonForm. [Forms]![NomTonForm] se réfère à une instance déjà ouverte.

    La collection Forms contient la liste de tous les formulaires ouverts.

    A+

  6. #6
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 15
    Points : 15
    Points
    15
    Par défaut Le code fonctionne!!!
    Bonsoir,
    Merci pour les réponses, les connaissances et l'engagement!!
    Je viens d'éssyer et ça fonctionne. J'ai suivis les conseils et j'aai changé le "modifiable72" en IsModePaiement .
    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
    Private Sub RecuRemis_AfterUpdate()
        Const MODE_PAIEMENT As String = "Espèces"
     
        If Me.RecuRemis = True Then
     
           If IsNull(Form_FormPrincipal.IsModePaiement) Or IsEmpty(Form_FormPrincipal.IsModePaiement) Then
                 Form_FormPrincipal.IsModePaiement = MODE_PAIEMENT
           ElseIf Trim(Form_FormPrincipal.IsModePaiement) = "" Then
                  Form_FormPrincipal.IsModePaiement = MODE_PAIEMENT
           End If
     
        End If
    End Sub
    Encore mille mercis. Ce forum est très agréable et est fréquenté par des personnes très compétentes.

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 368
    Points : 23 840
    Points
    23 840
    Par défaut
    À mon avis il faudrait remplacer Form_FormPrincipal par [Forms]![FormPrincipal]![IsModePaiement] parce que là tu devrais te retrouver avec une nouvelle instance du formulaire FormPrincipal, pas celui que tu as ouvert.

    A+

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/06/2012, 01h24
  2. [AC-2007] Actualiser un champ quand je coche une case
    Par tophe10000 dans le forum IHM
    Réponses: 2
    Dernier message: 08/12/2009, 20h04
  3. visualiser un champ apres avoir coché la case
    Par Daniela dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/07/2008, 13h00
  4. ouverture d'un formulaire après avoir coché une case
    Par bourguignon21 dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/07/2007, 16h56
  5. Réponses: 1
    Dernier message: 15/06/2006, 19h01

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