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 :

Problème de doublons Ajout de données Formulaire


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut Problème de doublons Ajout de données Formulaire
    Bonjour, j'ai crée un formulaire permettant de rajouter des clients (Table Clients: ID_Client; Nom_client) à ma base de données. J'ai aussi rajouté un bouton permttant de rajouter un enregitrement.
    Afin d'éviter les doublons, j'ai crée une procédure évènementielle sur mon bouton en sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    Private Sub Commande5_Exit(Cancel As Integer)
       If DCount("TCLIENTS_NOMCLIENT", "TCLIENTS", "TCLIENTS_NOMCLIENT = Formulaires![F_CreationClients]![TCLIENTS_NOMCLIENT] ") = 0 Then
            Else
                MsgBox "Ce client existe déjà. Merci de bien vouloir recommencer votre saisie  !"
                Me.Undo
        End If
    et sur le champs clients en sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    Private Sub TCLIENTS_NOMCLIENT_Exit(Cancel As Integer)
     
        If DCount("TCLIENTS_NOMCLIENT", "TCLIENTS", "TCLIENTS_NOMCLIENT = Formulaires![F_CreationClients]![TCLIENTS_NOMCLIENT] ") = 0 Then
            Else
                MsgBox "Ce client existe déjà. Merci de bien vouloir recommencer votre saisie  !"
                Me.Undo
        End If
    End Sub


    Lorsque je clique sur le bouton pour ajouter le nouveau client, j'obtiens bien le message d'erreur me disant que le client existe et ce dernier n'est pas rajouté à ma table clients .
    Cependant, lorsque j'appuie sur la touche Entrée, j'ai bien le même message d'erreur mais dans ce cas là, le client est jouté à la table et ce la crée des doublons dans ma table clients


    Quelqu'un a t-il une idée pour résoudre mon problème ??
    Est il possible de désactiver l'ajout d'un enregistrement par la touche "Entrée" ??



    Merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 94
    Par défaut
    SAlut,

    Pourquoi ne pas gérer le controle des doublons directement dans la strucutre de ta table?

    je suppose que le champs Id_client de ta table est une clé primaire.
    Si tu veux pas de doublons au niveau du champs "Nom_client", il te suffit d'indexé ton champs avec l'option "sans doublons".

    Tu peux aussi gérer avec du code VB le probléme des doublons, mais si tu ne passe pas sur le code, t'es mort.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut
    Je pense que ça vient qu'il me manque une procédure évènementiellle mais je ne sais pas à quel niveau ...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 94
    Par défaut
    Je ne comprend pas pourquoi tu passe par du code VB pour gérer ton probléme de doublons.

    En changeant un paramétre de ta table client le controle se fera automatiquement quelque soit le chemin emprunter par l'utilisateur (par formulaire ou par la table)

    Vas sur ta table en mode création et sur l'option index du champs "nom client" tu sélectionne "indexé Sans doublons".

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 116
    Par défaut
    Je suis d'accord avec toi . Cependant, j'ai crée un ID client en clé primaire afin justement d'éviter des doublons. Dans ce cas là, j'aurai juste crée le nom du client comme clé primaire..ça me dérange d'indexé ce champs sans doublons....


    Il n'y aurait pas une autre solution.. ??

    En faite ,mon problème vient juste de la validation apès appui sur la touche entrée qui l'ajoute à la base ...et qui logiquement ne devrait pas...


    merci de m'éclaircir !!

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 94
    Par défaut
    Citation Envoyé par vivicente Voir le message
    Je suis d'accord avec toi . Cependant, j'ai crée un ID client en clé primaire afin justement d'éviter des doublons.
    merci de m'éclaircir !!
    je compléte ta phrase :
    afin justement d'éviter des doublons d'ID, et non de nom.

    Actuellement ta clé primaire fonctionne trés bien, tu n'as pas de doublons d'enregistrement puisque l'id est défini comme clé et s'incrémente automatiquement. Donc rien n'empeche de creer trois monsieur dupond avec trois ID différent.

    Mais la je ne vois pas pourquoi ça te pose un probléme. Si tu ne veux pas de doublon au niveau du nom, tu n'as que deux possibilité :
    -tu mets le champs nom en clé primaire
    - ou tu garde l'id comme clé primaire mais tu crée un index sans doublons sur le champs nom

    un champs indexé ce n'est pas une cléprimaire, c'est juste un index. Je ne comprend pas pourquoi ça te dérange de l'indexé.

  7. #7
    Membre Expert Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Par défaut
    Bonjour
    Pev15 Une petite question et si 2 clients differant porte le meme Nom et meme Prenom comment fais tu cela peut arriver non?

  8. #8
    Membre Expert Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Par défaut
    Bonjour
    vivicente
    Quand tu appuis sur la touche entrer tu passe a un nouvel enregistrement?

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 94
    Par défaut
    Je suis tout a fait d'accord, c'est pour ça que la solution de L'Id en clé primaire je la trouve correcte. d'ou ma remarque de pouvoir saisir trois monsieur dupond avec 3 id différent.

    Citation Envoyé par pev15 Voir le message

    Actuellement ta clé primaire fonctionne trés bien, tu n'as pas de doublons d'enregistrement puisque l'id est défini comme clé et s'incrémente automatiquement. Donc rien n'empeche de creer trois monsieur dupond avec trois ID différent.

    Le probléme de vicente c'est qu'il est déja sur qu'il n'existe qu'un seul monsieur dupond. La solution est donc l'indexation sans doublons sur le champs concerné.

  10. #10
    Membre Expert Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Par défaut
    Le probléme de vicente c'est qu'il est déja sur qu'il n'existe qu'un seul monsieur dupond
    Peut on vraiment etre sur a 100%?
    Moi perso je lui conseillerais de continuer sur sa voix et d'ajouter une verification sur le codePostal ou l'adresse du client

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 94
    Par défaut
    Je suis d'accord, libre à lui de vérifier l'unicité de l'enregistrement sur d'autre paramétre telque le CP ou l'adresse.
    Le principe restera le meme : Indexation sans doublons sur le champs approprié.

    Moi mon conseil pour vicente, c'est surtout d'abandonner la solution du code VB qui est plus compliqué et moins perfomante qu'une indexation classique des champs de la tables.

Discussions similaires

  1. [ZF 1.10] Problème dans l'ajout des données depuis un formulaire
    Par king_soft dans le forum Zend_Form
    Réponses: 6
    Dernier message: 24/01/2011, 10h25
  2. ajout dans un formulaire et une base de donnée
    Par mademoizel dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/06/2006, 15h42
  3. Réponses: 9
    Dernier message: 01/06/2006, 13h25
  4. Réponses: 2
    Dernier message: 17/05/2006, 18h54
  5. Réponses: 22
    Dernier message: 07/12/2005, 14h51

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