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 :

Verifier le contenu dans une liste par rapport à une requête


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut Verifier le contenu dans une liste par rapport à une requête
    Bonjour,
    J'ai un formulaire en mode "Entrée de données (oui)"
    Comment faire pour tester la présence d'un enregistrement sachant que la personne rendre le nom du produit ... ?

    J'ai regardé ceci http://access.developpez.com/faq/?pa...rifValExistZdl
    mais ce n'est pas adapté ...

    Faut-il créer une requête sur tous les produits et faire un test mais lequel ?

    Comment faites-vous ?

    Par exemple saisie de casserole
    Il faudrait faire un test lors de la saisie et ensuite afficher tout ce qui commence par cass ?

    Merci pour vos lumières ...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Bonjour,
    en fait j'aimerais savoir comment vous tester l'existence d'une donnée dans une table à partir d'un formulaire en création ?

    Merci d'avance

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Bonsoir,
    je ne sais pas quelle solution choisir !
    une personne ouvre un formulaire en creation elle ne peut donc pas voir le contenu de la table, comment faire pour éviter les doublons.

    Une requête selection à coté qui affiche le contenu par un select ... like des termes entrés ou un fonction vba ?

    Je voudrais juste un conseil !

    Bien sûr on rentre le nom du produit et pas la clé.

    Merci

    PS: je ne sais pas si je suis clair !

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    Bonjour, euhhh nan tu n'est pas très clair

    Tout d'abord je n'ai pas très bien bien compris quelle est la finalité de ton form :
    -Tu veut créer un nouvel enregistrement et le renseigner via ce formulaire?(ici moi je passerais par une vérification de doublons lors de la validation de l'enregistrement)
    -Tu veut modifier un enregistrement déjà existant? (dans ce cas il serais a mon sens plus simple de passer par un formulaire de recherche qui te permet ensuite d'ouvrir ton formulaire de modification)

    De plus comment est construite ta table? accepte tu les doublons pour les noms de produits? (pour reprendre ton exemple peut tu avoir avoir plusieurs produits qui s'appelles cass?)

    Cordialement

    Mcfly

  5. #5
    Membre habitué Avatar de anouar_chaieb
    Inscrit en
    Mai 2004
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 276
    Points : 178
    Points
    178
    Par défaut RE
    Bonjour à tous

    1 Tu dois transferer le champ clé primaire où tu commence la saisie en contrôle [zone de liste modifiable].
    2 Dans sa propriété--origine source choisir (table/requête)
    3 Au dessous dans (contenu) tu cliques sur le bouton générer et tu dois insérer ta requête ou table.
    4 Tu insères le champ clé primaire puis le nom du produit
    5 Dans format tu fixe les largeurs des colonnes exp: (2cm;3cm)

    A ce moment là lorsque tu introduis le texte tu peux cliquer sur la liste pour s'assurer.
    J'espère que j'étais clair
    Quel est le plus rapide? lire le FAQ:

    http://access.developpez.com/faq/ Ou bien créer un post?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Bonjour,
    je ne connais pas trop access !

    J'ai bien fait un menu déroulant sur clé et donnée.

    J'ai mis le paramètre limité à la liste non

    Quand je rentre une donnée non comprise dans la liste j'ai le message suivant :
    "vous avez peut être entré du texte dans un champ numérique ou un nombre supérieur à ce que permet le paramètre de de la propriété de la taille du champs"

    pour info :
    Taille 32 en mode texte !
    Table liée sur Oracle.

    ???

    Merci.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    euhhh j'ai toujours pas compris la... tu veut rajouter un enregistrement, le modifier ou les deux?

    En tout cas pour ce qui est de ta liste, elle de quel type ta clé? NUmAuto? Si oui alors si tu veut changer ou ajouter un nouvel enregistrement je pense qu'il serais mieux de baser ton form sur la table Produit, et ne pas afficher la clé (c'est un numauto donc normalement tu n'a pas besoin de modifié, et si tu créé un nouvel enregistrement, le champ se remplira automatiquement)

    Cordialement

    Mcfly

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Merci,
    j'ai un ensemble de tables une centaine avec des boutons de création.

    Oui en effet mon dernier test est absurde ! puisque qu'il porte sur un clé auto !

    J'ai une table produit avec un id et un nom.
    Je donne la possibilité de créer un produit et j'utilise pour cela le formulaire en mode "entrée de données oui"
    J'ai donc un formulaire avec un seul champ nom produit :_________


    Comment faites-vous pour tester si le produit existe sachant que la personne ne saisit que le nom du produit.

    >-Tu veut créer un nouvel enregistrement et le renseigner via ce >formulaire?(ici moi je passerais par une vérification de doublons lors de la >validation de l'enregistrement)
    Comment faire ?

    J'ai essayé de créer une requête sur les articles qui prend comme critère :[Formulaires]![toto]![ART_NOM]& "%"

    Puis dans mon formulaire création (toto) j'appelle un sous formulaire sur cette requête !
    quand je tape un article rien ne se passe même si je créé un événement sur focus ou apr_è maj avec me.form.refresh !

    Je n'y comprends plus rien !!
    PS : Bien sur si je lance mon sous-formulaire et que je tape art1 il afficher art1 et art1toto!

    J'ai essayé aussi d'afficher une liste de recherche qui affiche le contenu des articles ! mais c'est lourd pour ensuite juste remplir un champs !


    Merci.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    ahhh ok bah a la limite si tu ne veut pas de doublons, ya trois solutions :
    -Soit comme je le disais tu test via vba l'existence ou non de doublons dans ta table (un peu lourd surtout si tu est débutant en access, mais c'est aussi la solution la plus "souple")
    -Soit comme tu ne veut pas de doublons dans ta table, et bien tu défini simplement le champ nom comme clé primaire et du coup tu zappe le champ numauto(mais ca peut devenir problèmatique sur tu a plusieurs tables qui sont liées)
    -Soit tu met la propiété indexé du champ nom a "oui-sans doublons" et dans ce cas la access fera le test pour toi (mais du coup on revient quasiment au même point que ma deuxième solution, c'est a dire que ton champ numauto sera alors quasi inutile)

    Cordialement

    Mcfly

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Re,
    >-Soit comme tu ne veut pas de doublons dans ta table, et bien tu défini >simplement le champ nom comme clé primaire et du coup tu zappe le champ >umauto(mais ca peut devenir problèmatique sur tu a plusieurs tables qui sont >liées)
    tables oracle liées donc pas possible

    >Soit tu met la propiété indexé du champ nom a "oui-sans doublons" et dans ce >cas la access fera le test pour toi (mais du coup on revient quasiment au >même point que ma deuxième solution, c'est a dire que ton champ numauto >sera alors quasi inutile)
    là encore il me faut agir sur oracle et mon mcd ne sera plus top !

    >-Soit comme je le disais tu test via vba l'existence ou non de doublons dans >ta table (un peu lourd surtout si tu est débutant en access, mais c'est >aussi la solution la plus "souple")
    oui mais c'est surtout pour savoir s'il existe art1 Art1 ou artun ... dans la base !
    Si vous avez des exemples en vba ?

    mais est-ce possible d'avoir dans un champ de ce formulaire la possibilité de rentrer un texte ,article1 par exemple, et voir le résultat dans le même formulaire, ceci me suffirait !

    Merci

    Merci.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Bonjour,avez-vous une solution ?
    Merci.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Bonjour,
    j'ai fait un sous formulaire sur une requête de type Comme [Formulaires]![toto]![ART_NOM] & "*"

    Mais dans mon formulaire en création (entreé de donnée oui) dans le champs ART_NOM je ne sais pas quoi mettre comme évenement.
    J'ai essayé me.form.refresh mais ceci ajoute un enregistrement avec comme saisie titi
    F9 affiche bien dans le sous formulaire avec tout ce qui commence par titi.

    Comment faire pour avoir la liste qui s'affiche automatiquement mais sans créer un enregistrement !

    Merci.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Bonjour,
    j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub THE_ART_AfterUpdate()
    Dim wcrit As String
    Dim intx As Integer
    If DCount("ART_ID", "ARTICLE", ART_NOM = Me!ART_NOM) > 1 Then
    MsgBox ("doublon")
    intx = DCount("ART_ID", "ARTICLE", ART_NOM = Me!ART_NOM)
    Debug.Print (intx)
    End If
     
    End Sub
    Il affiche doublon tout le temps et en plus créé l'enregistrement car c'est un formulaire "avec entrée de donnée:oui"
    Comment faire pour tester les doublons sans qu'il ajoute dans la base !

    MErci.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Bonjour,
    personne a une solution ou un exemple ?
    Merci.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Bonjour,
    si une personne peut m'aider ou me donner une piste ?

    rappel du problème :
    J'ai un formulaire avec deux champs dont un est le champs nom qui est en "mode insertion de données oui" : comment gérer les doublons lors de la saisie avant l'insertion dans la base oracle ?
    Merci encore !

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Bonjour,
    juste une piste en vba ...
    Merci.

    Pourqoui avec ceci le programme passe toujours dans la boucle et est-ce la bonne solution ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub THE_ART_AfterUpdate()
    Dim wcrit As String
    Dim intx As Integer
    If DCount("ART_ID", "ARTICLE", ART_NOM = Me!ART_NOM) > 1 Then
    MsgBox ("doublon")
    intx = DCount("ART_ID", "ARTICLE", ART_NOM = Me!ART_NOM)
    Debug.Print (intx)
    End If
     
    End Sub

  17. #17
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Tu trouveras peut-être ce que tu cherches avec les méthodes DLookup et Undo :

    "La fonction DLookup recherche la valeur d'un champ particulier qui fait partie d'un jeu défini d'enregistrements (un domaine). Utilisez la fonction DLookup dans Visual Basic, une macro, une expression de requête ou un contrôle calculé de formulaire ou d'état. Variant."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim varX As Variant
    varX = DLookup("[LastName]", "Employees", "[EmployeeID] = 1")

    et

    Undo

    "Utilisez la méthode Undo pour restaurer un contrôle ou un formulaire tel qu'il était avant d'être modifié."


    Exemple:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim varX As Variant
    varX = DLookup("[LastName]", "Employees", "[EmployeeID] = 1")
    If Not IsNull(varX) Then
    MsgBox "Cette information existe déjà", vbInformation
    Me.Undo
    End If

    En espérant que ce soit une bonne piste pour toi.

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 391
    Points : 124
    Points
    124
    Par défaut
    Bonjour,
    Merci pour votre réponse et vos remarques
    Cordialement.

  19. #19
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Je ne sais pas si c'est encore d'actualité, mais le code suivant ne peut pas fonctionner

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DCount("ART_ID", "ARTICLE", ART_NOM = Me!ART_NOM)
    il faut écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DCount("ART_ID", "ARTICLE","[ART_NOM] = '" & Me!ART_NOM & "'")
    car je suppose que le champ ART_NOM est de type Texte

    --------------
    Frédéric
    http://www.access-developpement.com
    Frédéric
    Développeur d'Applications Access

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/11/2009, 15h13
  2. Soustraire les données d'une liste par rapport à une autre
    Par orion_ dans le forum Général VBA
    Réponses: 2
    Dernier message: 02/09/2009, 22h21
  3. mise à jour d'une liste par rapport à une autre
    Par Beltegeuse dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 02/05/2008, 15h21
  4. Dependance d'une liste par rapport à une autre
    Par jojo57 dans le forum JDBC
    Réponses: 1
    Dernier message: 01/12/2006, 21h18
  5. Réponses: 2
    Dernier message: 05/06/2006, 17h51

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