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

Requêtes et SQL. Discussion :

resultat requete SQL d'un select dans variable vb


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut resultat requete SQL d'un select dans variable vb
    Voila mon probleme
    Je voudrais faire une macro qui permette de chercher dans une table si la valeur d'un champs d'un formulaire n'est pas dejà existant dans cette table.

    Je voudrais donc lancer une requete SQL :
    SELECT nom FROM table where nom="+Me.champs+";"
    et stocker le resultat dans une variable vb de telle facon que je puisse tester si cette variable est nulle ou non.
    J'ai regarde l'aide pour La fonction RunSQL mais impossible de faire une recherche avec. J'ai pense à DLookup mais ca marche pas. Alors Que faire??

    Please help me

    Merci

  2. #2
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    t'as essayé à CpteDom ?
    Céline

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    je ne comprends pas CpteDom?? ca veut dire quoi? c une fonction vb? je la trouve pas dans l'aide

    Merci pour ta reponse mais dis en moi un peu plus stp

    Seb

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    Dans ton générateur de macro dans la colonne condition, tu tapes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CpteDom("[Nom]";""table";"[Nom]=[Formulaires]![Nom_Formulaire]![Nom_champs]")>0
    Puis tu sélectionnes l'action BoiteMsg et dans dans la zone du message tu tapes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "Il existe déjà " & CpteDom(("[Nom]";""table";"[Nom]=[Formulaires]![Nom_Formulaire]![Nom_champs]") & personnes portant ce nom"
    par exemple.
    Puis tu nommes ta macro.
    Ensuite, tu appliques ta macro sur la zone de texte qui t'intéresses dans la propriété Avant MAJ.
    C'est clair ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 29
    Points : 28
    Points
    28
    Par défaut
    Il y a une parenthèse de trop dans le 2ème code !!!

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    c'est a peu pres le pb que j'ai posé dans un autre topic
    voila ce que je te propose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim rs as recordset
    dim sql1 as string
    sql1="SELECT nom FROM table where nom="Me.champs";" 
    set rs=currentdb.openrecordset("nom")
    if rs.recordcount>0 then
    msgbox("cette valeur existe")
    else
    msgbox("elle n'existe pas")
    endif

  7. #7
    Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Ca me parait pas mal comme solution mais je n'ai pas pu faire marcher ton code correctement.
    sql = "SELECT ListeName FROM Liste where ListeName=" + Listebis + ";"
    Set rs = CurrentDb.OpenRecordset("ListeName")
    If rs.RecordCount > 0 Then
    MsgBox ("cette valeur existe")
    Else
    MsgBox ("elle n'existe pas")
    End If
    Il me fait une erreur au niveau de la ligne Set rs =... Je ne comprends d'ailleurs pas ce qu'il faut mettre comme parametre ds OpenRecordset? Une Query sql? Une table? Un champs?
    Y'a t'il autre chose de necessaire pour faire fonctionner ce code.

    Merci pour ton aide

  8. #8
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    mince desolé jetais deconcentre bien sur c currentdb.openrecordset(sql) et non pas currentdb.openrecordset(monchamp)

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    la solution ke ta proposé toto marche aussi remplace cptedom par dcount.
    regarde le help sur dcount.

  10. #10
    Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Voila j'ai bien le changement. Mais j'ai une erreur du type :
    Type de données incompatible dans l'expression du critere
    Faut il rajouter un autre paramétre??

    Voici ma macro pour info :

    Dim rs As Recordset
    Dim sql As String
    Dim Listebis
    Dim test As String
    Listebis = Me.ListeName
    If (IsNull(Listebis)) Then
    MsgBox ("IMPOSSIBLE D'ENREGISTRER CETTE LISTE - CHAMPS Nom de la liste NON RENSEIGNE")
    Else
    sql = "SELECT ListeName FROM Liste where ListeName=" + Me.ListeName + ";"
    Set rs = CurrentDb.OpenRecordset(sql)
    If rs.RecordCount > 0 Then
    MsgBox ("cette valeur existe")
    Else
    MsgBox ("elle n'existe pas")
    End If

  11. #11
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    remplace where listename=" + me.listename +" par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where listename='" & Forms!lenomduformulaire!listename & "'
    et ça marchera

  12. #12
    Candidat au Club
    Inscrit en
    Octobre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Ca marche !!!

    Merci pour tout

    Bonne soiree

  13. #13
    Membre à l'essai
    Inscrit en
    Septembre 2004
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    pense au tag resolu.
    il est en bas a gauche.

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/09/2011, 18h24
  2. psql : resultat select dans variable ?
    Par Débéa dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 11/05/2010, 12h04
  3. [MySQL] affichage resultat requete sql dans tableau
    Par fasyr dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/04/2009, 11h18
  4. Resultat requete SQL dans SousFormulaire
    Par nabalilu dans le forum VBA Access
    Réponses: 6
    Dernier message: 03/06/2008, 16h21
  5. Resultat requete SQL dans MsgBox
    Par PhRey dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 11/01/2007, 11h03

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