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

Access Discussion :

comparer une textbox a une table


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 42
    Points
    42
    Par défaut comparer une textbox a une table
    bonjour

    comment faire pour comparer la textbox Nom au champs Nom de la table personne (a tous les enregistrements).

    Le but étant de verifier si quand on ajoute une personne, le nom de cette derniere est deja dans la table.

    merci.

  2. #2
    Membre habitué Avatar de RGShoop
    Homme Profil pro
    Freelance
    Inscrit en
    Août 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 112
    Points : 154
    Points
    154
    Par défaut
    Bonjour,

    Normalement, il faut un bout de code mais j'ai également galéré alors voici ce que j'ai fait :


    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
    19
    20
     
    Dim Dbs as Database
    Dim Rst as recordset
    dim crit as String
     
    set Dbs=currentDb
    Set Rst=Dbs.openrecordset("Nom de ta table", dbopendynaset)
     
    crit="[Ton champ de recherche sur la table]=" & chr(34) & me.Nom & chr(34)
     
    rst.findfirst crit
     
    if rst.nomatch
    rst.addnew
    rst![Nom]=me.Nom
    rst.update
    end if
     
    rst.close
    dbs.close
    Tu le place selon l'évènement que tu souhaites: Après mise à jour; sur sortie...


    A+ RG

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 45
    Points : 37
    Points
    37
    Par défaut
    il faut créer un objet DAO qui permet l'accès aux données par le code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim dbs As Database
    Dim rst As DAO.Recordset
    Set dbs = OpenDatabase("CheminDaccesEtNomDuFichier")
    Set rst = dbs.OpenRecordset("NomDeLaTable", dbOpenTable)
     
    rst.MoveFirst
        While Not rst.EOF
             'ici tu peut faire ton test
             if rst("NomDuChamp") = me.TextBox then
                 ...
             end if
             rst.movenext
        wend

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par fazerman
    il faut créer un objet DAO qui permet l'accès aux données par le code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim dbs As Database
    Dim rst As DAO.Recordset
    Set dbs = OpenDatabase("CheminDaccesEtNomDuFichier")
    Set rst = dbs.OpenRecordset("NomDeLaTable", dbOpenTable)
     
    rst.MoveFirst
        While Not rst.EOF
             'ici tu peut faire ton test
             if rst("NomDuChamp") = me.TextBox then
                 ...
             end if
             rst.movenext
        wend
    Hello, ta solution est valide mais nécessite le parcours entier de la table ... ce qui peut être longuet sur une table de 300 000 enregistrements.

    Sinon il y a aussi DCount()
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Le mieux est d'utiliser la propriété eof du recordset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Rst as DAO.Recordset
    Set Rst=CurrentDb.OpenRecordset("SELECT ChampNom FROM MaTable WHERE ChampNom=" & chr(34) & LaTextBox & Chr(34))
    If not Rst.Eof then 
    Msgbox "le nom existe déjà"
    Else
    ' traitement
    End if
    Rst.Close
    Set Rst=Nothing

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 2
    Dernier message: 31/10/2011, 11h45
  3. Bind d'une textbox d'une usercontrol sur une Dependency property
    Par Yogy dans le forum Windows Presentation Foundation
    Réponses: 11
    Dernier message: 27/04/2010, 05h26
  4. Pb copier une valeur d'une textbox vers une cellule
    Par whykiki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/12/2007, 11h49
  5. Réponses: 2
    Dernier message: 18/12/2006, 19h04

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