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 :

Critère d'une zone de liste dans une requête [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 234
    Points : 554
    Points
    554
    Par défaut Critère d'une zone de liste dans une requête
    Salut,

    Je dois récupérer la sélection qui se trouve dans une zone de liste à choix multiple à l'aide d'une requête, comment puis-je faire cela.

    Merci
    A+

  2. #2
    Membre actif
    Formateur en informatique
    Inscrit en
    Janvier 2011
    Messages
    134
    Détails du profil
    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 134
    Points : 205
    Points
    205
    Par défaut
    Bonjour,

    Si la demande est : comment mettre en critère le choix d'une liste dans une requete :

    Dans la zone critère : il faut saisir formulaires!NomDuformulaire!NomDeLaListe
    Le générateur (bouton baguette magique) permet de construire l'expression.

    Cordialement,

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 234
    Points : 554
    Points
    554
    Par défaut
    Salut,

    Il s'agit d'une ZL pas d'une ZL modifiable et le critère que je place dans ma requête est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [forms]![F_Cmd_Consommables].[Lst_Reference]
    Je démarre la requête ajout avec le ! mais il me met qu'il copie 0 ligne.

    Je ne vois pas pourquoi.

    A+

  4. #4
    Membre actif
    Formateur en informatique
    Inscrit en
    Janvier 2011
    Messages
    134
    Détails du profil
    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 134
    Points : 205
    Points
    205
    Par défaut
    Ce ne serait pas parce que la selection multiple est activée ?

    Si c'est le cas une solution (vba) est de construire une chaine sql pour ta requete ajout :

    Passe en mode sql pour recupérer le code sql de ta requete

    dans vba :
    remplace les .... par ton code sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sub ajoutREF()
    For Each varItem In Me.Lst_Reference.ItemsSelected
        strSQL =".... ..... " & Me.Lst_Reference.ItemData(varItem) & "....."
        Docmd.runsql strSQL
    Next varItem
    End Sub
    Cordialement,

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 234
    Points : 554
    Points
    554
    Par défaut
    Merci pour ta réponse, j'essaye demain et on se dit quoi.

    A+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 234
    Points : 554
    Points
    554
    Par défaut
    Salut,

    Bon, j'ai essayé ceci mais il m'ajoute 0 ligne.

    Pourtant quand je regarde le code en pas à pas, il prend bien les lignes sélectionnées 1 à 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For Each varitem In Me.Lst_Reference.ItemsSelected
        StrSql = "INSERT INTO T_Tempo_Cmd_Conso ( Reference, Product_type, Description )" & _
        " SELECT R_Cmd_Conso.Reference, R_Cmd_Conso.Product_type, R_Cmd_Conso.Description" & _
        " FROM R_Cmd_Conso" & _
        " WHERE (R_Cmd_Conso.Reference)='" & Me.Lst_Reference.ItemData(varitem) & "';"
        DoCmd.RunSQL StrSql
    Next varitem
    Et aucun message d'erreur.

    Merci pour l'aide
    A+

  7. #7
    Membre actif
    Formateur en informatique
    Inscrit en
    Janvier 2011
    Messages
    134
    Détails du profil
    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 134
    Points : 205
    Points
    205
    Par défaut
    Est ce que la liste possède plusieurs colonnes ? Dans ce cas c'est ça qu'il faut mettre dans la requête ... le numéro de la première colonne étant 0

    Me.Lst_Reference.ItemData(NuméroDeColonne,varitem)

    Cordialement,

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 234
    Points : 554
    Points
    554
    Par défaut
    Bon, ça fonctionne, le seul hic c'est que qq fois la dernière sélection est ajoutée 2 fois ou 4X ou 8X ???

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 234
    Points : 554
    Points
    554
    Par défaut
    Salut,

    OK, j'ai résolu tous les problèmes du post, à bientôt pour d'autres questions.

    A+

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/08/2012, 03h31
  2. Réponses: 17
    Dernier message: 08/08/2008, 20h13
  3. Réponses: 10
    Dernier message: 02/01/2007, 13h49
  4. Réponses: 3
    Dernier message: 21/09/2006, 11h59
  5. Réponses: 6
    Dernier message: 06/09/2006, 14h50

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