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 :

Select avec Condition et Valeurs Introduites


Sujet :

Requêtes et SQL.

  1. #1
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut Select avec Condition et Valeurs Introduites
    Bonjour

    J'ai une Table 1 :

    -Nom, Prénom, Code.

    A travers un Formulaire, j'ai 2 Liste, "L1", "L2" Liste des Noms et liste des prénoms.

    Je voulais que quand je séléctionne le nom, avec le prénom qui va avec j'affiche avec ma requette SQL le code Directement dans ma Zone de Texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim insSql as String
    
    insSql = "Select T1.Code"
    (le reste de la resquette)
    insSql = insSql & "FROM T1 Where T1.Nom = ' " & Me! L1.Value & " ', and T1.Prenom = ' " Me! L2.Value & " ' ;"
    
    'et pour affecter le résultat à ma zone de texte "Code":
    
    
    insSql = ' " Me !Code.value & " ' = T1.Code ; "
    Merci de me dire ce qui ne va pas dans ma requette, et merci de me proposer une autre solution Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    quel est le résultat, s'il y en a un ?

    sinon, le coups des deux égals, je ne sais pas comment il le prend. Il faudrait essayer de le mettre en deux ligne

    d'après ce que je comprend, ta variable insSQL = "Select T1.Code FROM T1 Where T1.Nom = ' " & Me! L1.Value & " ', and T1.Prenom = ' " Me! L2.Value & " ' ;":

    donc, ensuite, ta variable insSQL = la valeur du champ code
    ensuite, je ne sais pas quel priorité est utilisée

    edit :
    il manque surement un ""DoCmd.RunSQL""

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

    Excuse moi de te dire cela, mais ce que tu as fais est complétement faux

    1 -Ta requête est fausse car il ne faut pas, avant le And
    2 - Tes listes sont-elles liées ? Si ce n'est pas le cas, tu auras des nons correspondances entre le nom et le prénom.

    Si j'ai bien compris tu veux sélectionner dans une liste un nom, dans l'autre le prénom, et récupérer un code qui correspond au nom + le prénom.

    Je te conseille de crée une liste avec comme source une requête qui serait de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Code, Nom, Prenom FROM T1 ORDER BY NOM
    Dans les prorpriétés de ta liste tu mets le nombre de colonnes à 3, et les largeurs de colonnes à : 0 cm;5 cm;5 cm
    Ensuite sur l'évènement double click de ta liste tu affiches le code de la personne dans une textbox.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.latextbox.value = me.laliste.column(0)
    De plus je te conseille la lecture des différentes discussion qui concernent les listes dans le forum (et il y'en a).

    Starec

  4. #4
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    Merci pour votre aide.

    - Pour mes Listes elles sont dèjà liés, elles affiches le contenu des colonnes "NOM, "Prénom".

    - Ta bien vu, la raison de ma requette c'est d'afficher dans la Zone de Texte "Code", le Code qui correspond à mon nom et à mon prénom séléctionner dans les 2 Liste, L1, L2.

    J'ai essayé ton code, il fait pas exactement ce que je cherchais, il affiche dans la Zone de Texte "Code" le Nom que j'ai séléctionné dans L1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.Code.Value = Me.Nom.COLUMN (0)

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

    Ce que je t'ai écrit fonctionne dans le cas où tu mets tout dans la même zone de liste.

    Si tu veux garder tes deux listes, n'utilise pas une chaine SQL, mais une fonction de domaine qui se nomme DLookup, va regarder l'aide pour la syntaxe, et il y'a de nombreux exemples dans le forum.

    Starec

  6. #6
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    Ok je regarderai tous de suite.

    Mais je voulais comme même voir ta méthode, car Joindre tous dans le même Liste, la liste va afficher 1400 Ligne, C'est pour ça que je préfére mettre que 15 Nom dans la liste "L1", Puis 15 prénom dans "L2", et automatiquement avoir l'adresse ou les adresses.

  7. #7
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    J'ai le help, et ça l'air ce que je cherche.

    Mais ça ne donne rien dans le Résultat :

    Dans un clik de Boutton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub int_Click ()
    
    Forms!monFrmulaire! adresse(zone de texte).SetFocus
    
    Dim varX As Variant
    
    varX = DLookup ("[(Champ de la table) Adresse]", "maTable", "[Nom] = ' " & Me!Nom (Séléctionner).value & " ' ")
    
    adresse(zone de Texte).Value = varX
    
    End Sub
    Mais ça n'affiche pas même si j'ai ajouté le SetFocus j'ai que le clignotant sans aucun résultas.

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

    Heu il y'a encore des gros soucis dans ton code.

    Si cela est le nom de la zone de texte, change le tout de suite, ce n'est pas bon.
    Pareil pour cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [(Champ de la table) Adresse]
    Avant de continuer je t'invite à lire ce tuto d'Argyronet sur les conventions de nommages des contrôles.

    De plus quand tu trouves des exemples adapte les à ton cas.

    Starec

  9. #9
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    J'ai vu le tuto, (en diagonale manque de Temps stage oblige )

    Pour les changements j'ai fait ça :
    Mais je ne sais pas pourquoi je devrai changer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ("[(Champ de la table) Adresse]" ..
    dans l'aide ça représente le Champs à chercher dans la Table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Private Sub int_Click () 
    
    Forms!monFrmulaire! adresse(zone de texte).SetFocus
    
     Dim varX As Variant
    
     varX = DLookup ("[(Champ de la table) Adresse]", "maTable", "[Nom] = ' " & Me!Nom (Séléctionner).value & " ' ")
    
    ad (zone de Texte).Value = varX
    
    End Sub
    
    Et ça donne pareil que la pemière méthode.

  10. #10
    Invité
    Invité(e)
    Par défaut


    Tu n'as pas bien lut

    il faut remplacer
    par le nom de ta table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [(Champ de la table) Adresse]
    par le nom du champ que tu recherches
    , c'est , il faut mettre le nom de la textbox.

    Fait une recherche avec DLookup sur le forum.

    Starec

  11. #11
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    Mais oui, j'avais dèjà fait ça, c'est seulement pour montrer à tous le monde ou se trouve le champs à rechercher et le nom de la Table.

    Mais ça pérsisste ça ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub int_Click () 
     
    Forms!monFrmulaire! ad.SetFocus
     
     Dim varX As Variant
     
     varX = DLookup ("[(Adresse]", "T1", "[Nom] = ' " & Me!Nom.value & " ' ")
     
    ad.Value = varX
     
    End Sub

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

    Avant que je m'en aille, relis bien tout ce que j'ai écrit, les recherches à faire, et post le vrai code sans artifice entre parenthèses, cela induit en erreur.

    Starec

  13. #13
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    Comme DLookum ne marchait toujours pas, alors j'ai essayé une autre méthode qui marche.

    Mais je voulais vous demander comment une Zone de Texte peut récuperer le résultat d'une Requette SQL dans le Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    Dim dat As String
    
    dat = "SELECT DISTINCTROW [ImportCleIngenico].[DateGeneration] FROM & _ [ImportCleIngenico];")
    
    CurrentDb.Execute (dat)
    
    Me!DateCreation.Value = dat
    
    ' DateCreation : c'est la Zone de Texte
    
    Mais dans ma Zone de Texte il m'affiche seulement ce que j'ai écrit dans le Code "select ...........

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

    On ne peut mettre une chaine SQL à une textbox, il y'a deux solutions :

    1 - Le DLookup comme je te l'ai indiqué
    2 - Ou si tu tiens au SQL passé par DAO et un recordset.

    Dans ton cas le DLookup est la manière solution.

    Je te propose de réecrire correctement ton besoin et tes soucis (à la suite et pas sur un autre post), pour que tout le monde puisse y voir plus clair, car il y'a eut plusieurs solutions d'abordés, même moi j'ai perdu un peu le fil.

    Starec

  15. #15
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    Ok autant pour moi

    Je recapitule :

    J'ai une zone de texte dans un Formulaire, je veux que cette zone de texte se remplie automatiquement, aprés avoir selectionner une Valeur dans la liste 1 Modifiable :

    Pour ce faite j'ai fait une requêtte SQL, qui compare la valeur séléctionné dans L1, dans la Table "T1" et stock la valeur qui correspond dans la Table dans la Zone de Texte.

    Structure de la Table :
    - Liste 1 : Entreprise.

    - Code : Département.

    Ma Requêtte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    Private Sub interaction_Click()
    Dim insSql As String
    
    insSql = "SELECT T1.code"
    
    insSql = insSql & "FROM T1 Where T1.entreprise= ' " & Me!L1.Value & " ' ; "
    
    ' Stock dans la zone de Texte
    
    Me!code.value = insSql
    Avec DLookup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim VarX
     
    varX = DLookup ("[Codee]", "T1", "[entreprise] = ' " & Me!L1.value & " ' ")
     
    code.value = varX
    Mais ça ne marche pas.

Discussions similaires

  1. [XSLT] SELECT avec condition
    Par olbouss dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 03/04/2008, 10h10
  2. Réponses: 0
    Dernier message: 05/02/2008, 10h09
  3. Réponses: 11
    Dernier message: 11/03/2007, 21h30
  4. [HyperFile] requete de selection avec condition de comptage
    Par pierre.zelb dans le forum HyperFileSQL
    Réponses: 1
    Dernier message: 16/02/2006, 10h20
  5. Réponses: 6
    Dernier message: 08/06/2004, 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