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 :

Vérifier la saisie d'une liste déroulante et accepter cette saisie


Sujet :

IHM

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 41
    Points
    41
    Par défaut Vérifier la saisie d'une liste déroulante et accepter cette saisie
    Bonjour,

    J'aimerais contrôler la saisie dans une zone de liste modifiable, je connais la méthode NotInList mais j'aimerais que si cette référence n'est pas dans la liste elle y soit incorporée une fois la saisie terminée et que si elle est déjà présente qu'un message d'erreur soit affiché
    Pour le moment quand je saisie la référence j'ai le message d'erreur comme quoi la référence n'est pas dans la liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub RefHarnais_NotInList(NewData As String, Response As Integer) 
     
    Response = acDataErrAdded
     
    MsgBox "Vous avez créer une nouvelle référence."
     
     
    End Sub
    Si quelqu'un a une idée, je suis tout ouie.

  2. #2
    Membre averti Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 499
    Points : 304
    Points
    304
    Par défaut
    salut
    j'ai eu de l'aide de developeur ici
    j'espaire que ca t'aidera
    A+

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 41
    Points
    41
    Par défaut
    j'ai regardé ton lien merci, le problème est que j'ai toujours le message : "le texte entré n'est pas un élément de la liste"

    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
    Private Sub RefHarnais_NotInList(NewData As String, Response As Integer)
     
    Dim entDemande As Integer
     
    Dim bds As Database, rst As Recordset
    entDemande = MsgBox("Ajouter une nouvelle référence ?", vbQuestion + vbYesNo)
    If entDemande = vbYes Then
        Set bds = CurrentDb
        Set rst = bds.OpenRecordset("Harnais")
        rst.AddNew
        rst.Update
        Response = acDataErrAdded
    Else
        Response = acDataErrDisplay
        Exit Sub
    End If
    rst.Close
    End Sub

    J'ai donc toujours ce problème, je ne peux pas entrer une nouvelle reférence. Access voit que cette référence n'existe pas (logique elle n'est pas encore créer) donc il ne veux pas "l'enregistrer".

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu as mal vu le code que t'a fourni jawed, il te manque

    entre
    et
    en remplaçant Nom par ton champ de table, car là tu n'inscris rien dans ta table

    Starec

  5. #5
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 41
    Points
    41
    Par défaut
    Merci starec

    Effectivement j'avais oublié cette ligne, maintenant je n'ai plus le message d'erreur mais le problème est que, quand je rentre une référence qui existe déjà, je n'ai pas de message d'erreur qui apparaît comme je le souhaite.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    C'est normal, car l'événement NotInList est comme son nom l'indique : signal ce qui n'est pas dans la liste.

    Pourquoi veux-tu détecter si un élément est bien dans la liste ?

    Starec

  7. #7
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 41
    Points
    41
    Par défaut
    En faite j'ai une table composé des champs suivants :

    Contact 1
    Contact 2
    Cable

    Reference

    Par exemple la référence 0125 me donne comme composition Contact1 : RSC, Contact2: RMA et Cable 3311125934

    Seulement d'autres référence vont être créées dans les prochains mois, j'ai donc créé un formulaire pour entrer ces nouvelles références dans la table. Seulement pour qu'il n'y ai pas 2 fois la même référence (erreur de saisie de l'utilisateur) et donc une même référence avec des compositions différentes je veux qu'après avoir entré la reférence dans la liste modifiable de mon formulaire, un message d'erreur apparaisse au cas où cette référence existe déjà.

    J'espère être compréhensible.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Ce qu'il faut que tu fasses sur l'événement After_Update de ta liste, c'est de faire une recherche, pour cela utilise la fonction DLookup, je te laisse le soin d'aller voir dans l'aide.

    Et fais une recherche sur le forum avec DLookup, il y'a de nombreux exemples.

    Starec

  9. #9
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 285
    Points : 99
    Points
    99
    Par défaut
    Tiré de l'aide d'access sur BeforeUpdate :

    L'exemple suivant montre comment utiliser une procédure événementielle BeforeUpdate pour contrôler si un nom de produit a déjà été entré dans la base de données. Après que l'utilisateur a tapé un nom de produit dans la zone ProductName (Nom du produit), la valeur est comparée avec le champ ProductName (Nom du produit) de la table Products (Products). Si cette table contient une valeur correspondante, un message avertit l'utilisateur que le produit a déjà été entré.

    Pour essayer l'exemple, ajoutez la procédure événementielle suivante à un formulaire nommé Products contenant une zone de texte appelée ProductName.

    Private Sub ProductName_BeforeUpdate(Cancel As Integer)
    If(Not IsNull(DLookup("[ProductName]", _
    "Products", "[ProductName] ='" _
    & Me!ProductName & "'"))) Then
    MsgBox "Product has already been entered in the database."
    Cancel = True
    Me!ProductName.Undo
    End If
    End Sub
    Merci de votre aide

  10. #10
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 91
    Points : 41
    Points
    41
    Par défaut
    Merci avec le before Update ça fonctionne parfaitement.

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

Discussions similaires

  1. [XL-2010] Ajout d'un champ pour nouvelle saisie dans une liste déroulante
    Par jerem56 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/03/2014, 10h29
  2. Réponses: 1
    Dernier message: 13/06/2012, 09h45
  3. [AC-2007] Interdire la saisie dans une liste déroulante
    Par KIK83 dans le forum IHM
    Réponses: 4
    Dernier message: 18/11/2009, 02h08
  4. Comment autoriser la saisie dans une liste déroulante
    Par Kyti dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 27/10/2008, 16h44
  5. Controle de saisie sur une liste déroulante
    Par antier dans le forum IHM
    Réponses: 3
    Dernier message: 07/12/2005, 05h42

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