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 :

Masquer sous formulaire et + pour certains enregistrements [AC-2019]


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut Masquer sous formulaire et + pour certains enregistrements
    Bonjour à tous et à toutes,

    Pour gérer les adhérents d'une assoc, j'ai un formulaire contenant les données principales avec un sous-formulaire contenant les infos des cotisations.

    Par défaut les adhérents sont "actifs" et donc doivent payer leurs cotisations (gérées dans le sous-formulaire)

    On accepte, à titre exceptionnel, des adhérents "associés" ou "honoraires" qui sont exonérés de cotisation

    En m'inspirant d'un code utilisé par ailleurs, j'ai voulu associé le code suivant pour, lorsque l'adhérent n'est pas "actif", le sous-formulaire et 3 zones de texte soient masqués


    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
    Private Sub Type_Adherent_AfterUpdate()
    Dim l_strSql As String
     
    If Me.Type_Adherent.Value <> "Actif" Then
     
        'If MsgBox("Etes-vous sur que cet adhérent est bien Associé ou Honoraire ?", vbQuestion + vbYesNo) = vbNo Then
     
            'End If
     
     
     
            l_strSql = "UPDATE T_Cotisation SET Cotisation_Du = 0 WHERE Cotisation_An  >= " & Year(Me.DateAdhesion) & " AND T_Adherent_FK = " & Me.N°Adherent
            Me!F_Cotisation.Visible = False
            Me!Montantdu.Visible = False
            Me!ZoneCotisations.Visible = False
            Me!Étiquette_total_5_cotis.Visible = False
     
     
              With DoCmd
                ' Desactive les messages système
                .SetWarnings False
                ' Execute la commande Sql
                .RunSQL l_strSql
                ' Réactive les messages système
                .SetWarnings True
              End With
     
     
     
       End If
     
     
    End Sub
    Cela fonctionne...sauf que cela masque les 4 éléments pour tous les enregistrements

    Il y a donc un problème de code et/ou de propriété à utiliser.

    Merci de votre aide
    A+

    C15

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 225
    Points : 553
    Points
    553
    Par défaut
    Salut,

    C'est logique puisque tu masque les 4 éléments après un update, mais quand tu change d'adhérent, les éléments sont toujours masqués
    Dans ton form principal, tu as un seul adhérent ou tous

  3. #3
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonsoir
    J'ai un seul enregistrement dans mon formulaire
    Merci
    C15

  4. #4
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Il faut mettre un Else dans ta condition If où tu mettras les valeurs de ta propriété Visible à True et changer les conditions de ton Update.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  5. #5
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Type_Adherent_AfterUpdate()
    If Me.Type_Adherent.Value <> "Actif" Then
        Me.F_Cotisation.Visible = False
        Me.Montantdu.Visible = False
        Me.ZoneCotisations.Visible = False
        Me.Étiquette_total_5_cotis.Visible = False
        CurrentDb.Execute "UPDATE T_Cotisation SET Cotisation_Du = 0" _
        & " WHERE Cotisation_An  >= " & Year(Me.DateAdhesion) & " AND T_Adherent_FK = " & Me.N°Adherent & "", dbFailOnError
    Else
        Me.F_Cotisation.Visible = True
        Me.Montantdu.Visible = True
        Me.ZoneCotisations.Visible = True
        Me.Étiquette_total_5_cotis.Visible = True
    End Sub
    La syntaxe en L7/8 évite l'utilisation du SetWarnings
    D'ailleurs je copierai le code ci-dessus sans L7/8 dans Private Sub Form_Current()
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  6. #6
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Salut
    Juste pour compléter le code de hyperion13
    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
    Private Sub Type_Adherent_AfterUpdate()
    If Me.Type_Adherent.Value <> "Actif" Then
        Me.F_Cotisation.Visible = False
        Me.Montantdu.Visible = False
        Me.ZoneCotisations.Visible = False
        Me.Étiquette_total_5_cotis.Visible = False
        CurrentDb.Execute "UPDATE T_Cotisation SET Cotisation_Du = 0" _
        & " WHERE Cotisation_An  >= " & Year(Me.DateAdhesion) & " AND T_Adherent_FK = " & Me.N°Adherent & "", dbFailOnError
    Else
        Me.F_Cotisation.Visible = True
        Me.Montantdu.Visible = True
        Me.ZoneCotisations.Visible = True
        Me.Étiquette_total_5_cotis.Visible = True
    End If
    End Sub
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  7. #7
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut Bertiny
    Effectivement, pas de correcteur automatique sur le bloc-notes
    Merci pour C15 (Pedro)
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 225
    Points : 553
    Points
    553
    Par défaut
    Salut c15nantes,

    Tu pourrais nous faire un retour des propositions faites stp

    Merci et bon dimanche

  9. #9
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonjour à tous et à toutes,

    Pour répondre à electrosat03
    membre du forum depuis 2011, j'ai toujours répondu, pas toujours immédiatement car le planning d'un retraité est parfois chargé, à tous les contributeurs, et ils sont nombreux, qui ont bien voulu m'aider.

    A hyperion13 (calot10) et à bertiny,
    merci de vos réponses.

    Hélas, cela ne fonctionne pas (avec ou sans L7/8) sur le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Type_Adherent_AfterUpdate()
    Les contrôles concernés sont masqués pour tous les adhérents, quelque soit leur statut.

    Par contre, cela fonctionne (sans L7/8) sur le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Form_Current()
    Merci encore de votre aide.
    Affaire conclue

    pour tous C15nantes
    et si j'osais "Access MVP" (Moi Vouloir Progresser)

    pour Hyperion13 ex Castel15

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 225
    Points : 553
    Points
    553
    Par défaut
    Salut,

    @c15nantes, c'était juste pour savoir. Content que tu ai reçu des réponses qui ont réglé ton problème.

    A+

  11. #11
    Membre habitué Avatar de C15nantes
    Homme Profil pro
    retraité
    Inscrit en
    Février 2011
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2011
    Messages : 379
    Points : 137
    Points
    137
    Par défaut
    Bonsoir
    Effectivement le principe même d'un forum est que tout le monde en profite
    A+
    c15

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

Discussions similaires

  1. [Toutes versions] Verrouillage d'un champ pour certains enregistrements dans formulaire en colonnes
    Par Thomas75005 dans le forum IHM
    Réponses: 1
    Dernier message: 07/01/2011, 18h15
  2. Ouvrir formulaire sur un certain enregistrement
    Par bobosh dans le forum VBA Access
    Réponses: 9
    Dernier message: 20/08/2008, 10h47
  3. Autorisations pour certains enregistrements
    Par mpereg dans le forum Sécurité
    Réponses: 1
    Dernier message: 22/05/2008, 23h27
  4. Sous-formulaire avec 1 seul enregistrement
    Par Farbin dans le forum Access
    Réponses: 6
    Dernier message: 08/08/2006, 16h37
  5. desactiver bouton pour certains enregistrements
    Par GymTonic dans le forum IHM
    Réponses: 7
    Dernier message: 04/01/2005, 23h46

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