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 :

vérification d'un champ


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut vérification d'un champ
    Bonjour à tous,

    j'ai dans un formulaire plusieurs champs devant permettre un enregistrement.

    Le premier de ces champs n'a pas droit aux doublons et donc je désirerai faire ne sorte que si un autre enregistrement de la table MaTable contient le même nom dans le champ en question, il faudrait qu'au moment ou l'on passe au champ d'après (j'immagine par un Update), un msgbox apparaisse pour mettre en garde la personne comme quoi il y a déja un enregistrement du meme nom et qu'il faut trouver un autre nom.

    Voila, quelqu'un pourait-il me donner un coup de main?

    Merci d'avance
    Cyriusix

  2. #2
    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 651
    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 651
    Points : 34 360
    Points
    34 360
    Par défaut
    Bonjour,
    plusieurs méthodes sont possibles. Perso je combine souvent les fonctions Nz() + Dcount()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Nz(Dcount("*","MaTable","ChampA=3 AND ChampB='" & Me.ChampB & "'"),0)<>0 Then
    Msgbox "OKI"
    Else
    MsgBox "U FAIL"
    End if

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Merci beaucoup pour ce code, mais serait-ce possible d'avoir quelques explications? genre à quoi servent Nz et DCount ainsi que un petit commentaire sur le reste.. je ne suis malheureusement pas encore super rodé en VBA..

    Merci bien.

  4. #4
    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 651
    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 651
    Points : 34 360
    Points
    34 360
    Par défaut
    Bonjour,
    outre l'aide en ligne qui explique le fonctionnement,
    voici les liens issus de la FAQ ^^
    Dcount()
    http://access.developpez.com/faq/?pa...es#Recordcount
    Nz()
    http://access.developpez.com/faq/?page=Langage#nz

    Nz n'est pas forcément nécessaire dans tous les cas, mais un blindage toujours prévisible.

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Oui merci..

    Mais a quoi correspond le ChampA = 3?

  6. #6
    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 651
    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 651
    Points : 34 360
    Points
    34 360
    Par défaut
    Exemple, c'est un exemple

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Je suis peut'être chiant, mais que représente le 3.. (ca serait un exemple de quoi?)


  8. #8
    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 651
    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 651
    Points : 34 360
    Points
    34 360
    Par défaut
    ...
    un exemple de champ numérique pour lequel on impose la valeur.

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    ... Je sais que je ne suis pas très doué en vba, mais à mon avis je n'ai pas du bien expliquer mon problème..

    Donc plus précisément:

    Dans mon formulaire frmNouveauCamp, j'ai plusieurs champs: IDCamp (clé primaire mais invisible en mode fromulaire), NumCam (numéro d'immatriculation du camp donc en texte mais interdisant les doublons), Nomcamp (texte également), DateCamp(Date/heure)...

    Je désirerais faire en sorte que lorsque l'utilisateur entre le numéro d'immatriculation du camp qu'il va créer, si le numéro est déja utilisé par un autre camp, au moment ou il se déplace (clic, tab... pour aller, par exemple, remplir le champ NomCamp) un msgbox apparait pour l'avertir que ca ne joue pas. Mais si le numéro est libre, il continue sans autre à pouvoir remplir la suite.

    Voila j'espère que c'est plus claire à présent.. et désolé si ca l'était déja avant et qu'en fait j'ai simplement pas compris le code..

    Merci

  10. #10
    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 651
    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 651
    Points : 34 360
    Points
    34 360
    Par défaut
    Oui, ca j'ai bien compris,
    il faut mettre le code dans l'évènement "sur sortie".

    si j'adapte mon code par rapport à ce que tu m'as dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Nz(Dcount("*","MaTable","NumCam='" & Me.NumCam & "'"),0)<>0 Then
    Msgbox "OKI"
    Else
    MsgBox "U FAIL"
    End if

  11. #11
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    j'ai compris.. merci beaucoup de ta patience.

    Par contre, il faut juste inverser le résultat du else avec celui du if car si le NumCamp du formulaire est égal au NumCamp de ma table, cela ne doit pas être "Oki"

    Une dernière petite chose, si je désirais que si le champ est donc incorecte, il se vide et que le curseur se remette sur le champ NumCamp, il me faudrait mettre quoi?

    Merci bien

  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 651
    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 651
    Points : 34 360
    Points
    34 360
    Par défaut
    Pour vider un champ :
    pour mettre le focus sur un champ

  13. #13
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Super, merci beaucoup.

    en fait, je ne mettais pas l'événement dans la bonne sortie.. donc ca ne marchais pas.. mais maintenant tout est ok..

    Milles mercis, sujet résolu.

    Cyriusix

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

Discussions similaires

  1. Fonction vérification cohérence des champs
    Par bc.dumon dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/04/2008, 13h00
  2. [MySQL] Vérification d'un champ sans doublon
    Par khamett dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/02/2008, 13h25
  3. vérification d'un champ
    Par WomanPSG76 dans le forum VBA Access
    Réponses: 8
    Dernier message: 23/08/2007, 13h52
  4. Réponses: 10
    Dernier message: 20/07/2007, 14h39
  5. [RegEx] ereg() vérification d'un champs
    Par akara dans le forum Langage
    Réponses: 1
    Dernier message: 03/07/2007, 16h22

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