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

IHM Discussion :

conditions vba formulaire


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 25
    Points
    25
    Par défaut conditions vba formulaire
    Bonjour, j'ai un formulaire avec un champ danse et un champ groupe
    dans danse on trouve : jazz, classique par exemple
    dans groupe : jazz1, jazz2, classique1, classique2 (suivant les niveaux des adhérents)

    Un membre peut s'inscrire dans plusieurs danses.
    Pour s'inscrire en jazz2, il doit être déjà inscrit en jazz1, comment puis je faire pour faire une formule me permettant de vérifier que si je choisi jazz2, le membre soit déjà inscrit en jazz1 ? merci

  2. #2
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    tout dépend de ton niveaux en vba. Cette information est disponible depuis le formulaire dans tu veux sélectionner. Sinon il te faut contrôler dans la table en question.


    Dolphy

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 25
    Points
    25
    Par défaut image jointe
    coucou, je tai mis une image pour que tu te rendes mieux compte.
    sinon en vba je me débrouille pas mal on va dire ...

    Version : access 2007

  4. #4
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    sur l'événement mise à jour de la liste tu réalise ton test, regarde du côté de DLookup tu trouveras une explication avec exemples dans l'aide VBA

    En fonction du retour du test tu peux afficher un message signalant qu'il ne suit pas le cursus


    Dolphy

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 25
    Points
    25
    Par défaut et non
    j'arrive pas .... enfin si j'arrive à faire une formule style dcount (*) ("T_Inscription", "groupe='" & me!groupe=')>0 mais si j'entre un nouveau membre, je ne peux l'inscrire dans une danse qu'un autre membre est inscrit, en fait j'aimerai que cette formule marche mais par membre, je sais ^pas si c'est clair ...

    Sinon voir photo si jointe, je n'arrive pas avec ma case à cocher remise famille, quand je la coche elle est cochée pour touts les membres et pareil quand je la décoche, comment je peux faire ? merci

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 25
    Points
    25
    Par défaut ok
    J'ai presque trouvé, chaque membre peut s'inscrire dans plusieurs danses mais je voudrais que si le membre est déjà inscrit en jazz par exemple, il ne puisse pas se réinscrire deux fois dans le même cours.
    Alors j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If DCount("*", "[T_Membres]", "Prénom='" & Forms![F_Membres]!Prénom & "'" & "NOM='" & Forms![F_Membres]!Nom & "'") And DCount("*", "[T_Inscription]", "groupe='" & Me!groupe & "'") > 0 Then
    X = MsgBox("Déjà inscrit danse ce cours", vbOKOnly + vbExclamation, "attention")
    Me.Undo
    Mais ça ne fonctionne pas
    En fait je voudrais que la base regarde si pour tel nom et prénom (car deux membres peuvent avoir le même nom), il est déjà inscrit dans tel danse

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 628
    Points : 34 330
    Points
    34 330
    Par défaut
    salut,
    attention ton critère n'est pas bon dans ton DlookUp
    essaie avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DCount("*", "[T_Membres]", "Prénom='" & Forms![F_Membres]!Prénom & "' AND NOM='" & Forms![F_Membres]!Nom & "'")
    ou alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DCount("*", "[T_Membres]", "Prénom='" & Forms![F_Membres]!Prénom & "' OR NOM='" & Forms![F_Membres]!Nom & "'")
    selon le filtre souhaité
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 25
    Points
    25
    Par défaut ok
    J'ai mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DCount("*", "[T_Inscription]", "groupe='" & Me!groupe & "'" > 0) And DCount("*", "[T_Membres]", "Prénom='" & "Forms![F_Membres]!Prénom" & "' AND NOM='" & "Forms![F_Membres]!Nom" & "'") Then ...
    Mais ça fonctionne pas ... Dès que c'est le même nom il me dit impossible

    J'ai essayé ça mais ça ne fonctionne pas non plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'If DCount("*", "[T_Inscription]", "groupe='" & Me!groupe & "'" > 0) And DCount("*", "[T_Inscription]", "idmembre='" & Forms![F_Membres]idmembre & "'") Then

  9. #9
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 628
    Points : 34 330
    Points
    34 330
    Par défaut
    attention, tu confonds encore nom de variable et valeur de variable, id est :
    - soit tu utilises les quote ' avec la valeur des controls

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DCount("*", "[T_Inscription]", "groupe='" & Me!groupe & "'" > 0) And DCount("*", "[T_Membres]", "Prénom='" & Forms![F_Membres]!Prénom & "' AND NOM='" & Forms![F_Membres]!Nom & "'") Then ...
    - soit tu n'utilises pas les quote
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DCount("*", "[T_Inscription]", "groupe='" & Me!groupe & "'" > 0) And DCount("*", "[T_Membres]", "Prénom=" & "Forms![F_Membres]!Prénom" & " AND NOM=" & "Forms![F_Membres]!Nom" & "") Then ...
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 25
    Points
    25
    Par défaut yes
    C'est vrai que je début en vba donc j'ai encore du mal avec les quotes ou pas
    En tout cas merci ça marche du tonnerre !!!

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 25
    Points
    25
    Par défaut ben non en fait ça marche pas ...
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DCount("*", "[T_Inscription]", "groupe='" & Me!groupe & "'") > 1 And DCount("*", "[T_Membres]", "Prénom='" & Forms![F_Membres]!Prénom & "' AND Nom='" & Forms![F_Membres]!Nom & "'") Then
    Si je met >0 dès que j'ajoute un groupe il me dit déjà inscrit alors que le membre n'est inscrit nul part ...
    En mettant >1 ça marche pour 2 membres et à partir du 3ème dès que je rentre un groupe il me dit déjà inscrit alors qu'il n'est inscrit nul part ...

    Je ne sais plus quoi faire
    J'ai essayé aussi en mettant au lieu d'égal au nom et prénom, égal à l'idmembre mais ça ne marche pas non plus ...

  12. #12
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 628
    Points : 34 330
    Points
    34 330
    Par défaut
    ta deuxième partie de test, tu ne lui as mis aucune valeur, est-ce normal ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 25
    Points
    25
    Par défaut heu
    ben je sais pas, je veux juste qu'il verifie que se soit le meme nom et prénom

  14. #14
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 628
    Points : 34 330
    Points
    34 330
    Par défaut
    oui, mais en l'occurence, tu ne spécifies pas la valeur que tu veux tester avec ton Dcount...
    en essayant avec ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If DCount("*", "[T_Inscription]", "groupe='" & Me!groupe & "'") > 1 And DCount("*", "[T_Membres]", "Prénom='" & Forms![F_Membres]!Prénom & "' AND Nom='" & Forms![F_Membres]!Nom & "'")>1 Then
    ca donne quelque chose de pklus concluant ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 25
    Points
    25
    Par défaut merci jpcheck
    merci mais ça ne fonctionne pas, peut importe ce que je rentre il me met : déjà inscrit dans cette danse ...

    sinon j'ai essayé avec ce code, ça marche presque mais il doit manquer quelque chose ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub groupe_AfterUpdate()
     
    t = DLookup("[groupe]", "T_Inscription")
    y = DLookup("[idmembre]", "T_Inscription")
     
    If (y = Forms![F_Membres]![idmembre]) And (t = Forms![F_Membres]![F_Inscription]![groupe]) Then
    x = MsgBox("Déjà inscrit danse ce cours", vbOKOnly + vbExclamation, "attention")
    Me.Undo
     
    Else
    End If
    End Sub

  16. #16
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 628
    Points : 34 330
    Points
    34 330
    Par défaut
    alors en partant sur cette méthode, je proposerais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub groupe_AfterUpdate()
     
    t = Nz(DLookup("[groupe]", "T_Inscription", "[groupe] = Forms![F_Membres]![f_inscription]![groupe]"),0)
    y = Nz(DLookup("[idmembre]", "T_Inscription","[idmembre]=Forms![F_Membres]![Idmembre]"),0)
     
    If y <>0  And t <> 0  Then
    x = MsgBox("Déjà inscrit danse ce cours", vbOKOnly + vbExclamation, "attention")
    Me.Undo
     
    Else
    End If
    End Sub
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 25
    Points
    25
    Par défaut
    ça ne fonctionne pas non plus, pour nimporte quel enregistrement il m'affiche le message : déjà inscrit ...

  18. #18
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 628
    Points : 34 330
    Points
    34 330
    Par défaut
    peux-tu regarder la valeur retournée par tes controls d'une part,
    celles dans tes tables.

    ca me parait louche comme fonctionnement final :/
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 70
    Points : 25
    Points
    25
    Par défaut
    ben en fait c'est par des listes déroulantes que j'affiche les groupes, il enregistre le nom du groupe dans la table inscription

  20. #20
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 628
    Points : 34 330
    Points
    34 330
    Par défaut
    oui, mais qu'est-ce qui existe déjà au départ ?
    les groupes ?
    les membres ?
    les deux ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/02/2007, 09h03
  2. Réponses: 2
    Dernier message: 17/03/2006, 18h15
  3. Problème: condition sur formulaire dans requête
    Par decour dans le forum Access
    Réponses: 1
    Dernier message: 17/10/2005, 23h27
  4. Réponses: 3
    Dernier message: 13/06/2005, 14h07
  5. Réponses: 2
    Dernier message: 04/02/2005, 11h03

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