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 :

Récupérer résultats listbox dans requête


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut Récupérer résultats listbox dans requête
    Bonjour,

    j'ai un formulaire de recherches mulicritères réalisé à l'aide du tutorial de Cafeine. Les résultats de la recherche se trouvent donc dans une listbox.

    comment faire pour récupérer ces résultats dans une requête ?

    Je suppose que c'est faisable... j'ai trouvé une explication qui pourrait se rapprocher de mon problème sur le forum :

    Citation Envoyé par Christophe93250
    dans une nouvelle requête tu fais une relation entre ta listbox et ta requête précédente, ensuite tu rentres le champs de ta listbox pour qu'il fasse le tri dans ta requête, tu le décoche pour pas qu'il n'apparaisse dans la requête et tu met toutes les colonnes désirées.
    mais je ne sais pas comment faire une relation avec une listbox dans une nouvelle requête?

    Merci d'avance pour les explications,

    Nabouille

  2. #2
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    comment faire pour récupérer ces résultats dans une requête ?
    Peux-tu etre plus clair ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    En fait, j'aimerais pouvoir sortir un état ou exporter ma liste de résultats vers xls...

    Comment dois-je faire?

    Merci
    Nabouille

  4. #4
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Tu as une requete qui est source de cette liste certainement. Il te suffit de base un etat sur cette requete.

    En esperant que ca corresponde a ce que tu attends.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Non, en fait je n'ai pas de requête proprement dite... puisqu'elle est dépendante du formulaire de recherche multi-critère : C'est une requête avec plein de IF et le résultats de la requête dépend de ce qui a été cocher dans le formulaire et apparaissent dans une listebox :

    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
    21
    22
    23
     
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
    SQL = "SELECT C, Titre, DATE_F as Année, Client FROM [_C_CONTRATS_REQ] Where C <> 0 "
    If Me.chkClient Then
        SQL = SQL & "And Client like '*" & Me.txtRechClient & "*' "
    End If
    If Me.chkTitre Then
        SQL = SQL & "And Titre like '*" & Me.txtRechTitre & "*' "
    End If
    If Me.chkDate Then
        SQL = SQL & "And DATE_F >= " & Me.cmbDate & " "
    End If
    If Me.chkTransp Then
        SQL = SQL & "And SUJ_TRANS = " & Me.chkTransp & " "
    End If
     
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
    SQL = SQL & ";"
    Me.lblStats.Caption = DCount("*", "_C_CONTRATS_REQ", SQLWhere) & " / " & DCount("*", "_C_CONTRATS_REQ")
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
    Je ne sais donc pas comment voir apparaître ces résultats dans une état, une table ou les exporter vers Excel??

    J'espère avoir été plus claire,
    Merci
    Nabouille

  6. #6
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Puisque le texte de la requete est contenu dans la variable SQL, il te suffit de creer en VBA une requete et de baser un etat dessus.

    En esperant t'aider.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    ok je pense que c'est ça que j'ai besoin.

    Je dois donc écrire ceci quelque part... mais où?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.CreateQueryDef("MaReqCreee", "Select * FROM Table1")
    mais où?

    Dans le code RefreshQuery() de mon formulaire (repris ci-avant)?

    Si je met à la fin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SQL = SQL & ";"
    CurrentDb.CreateQueryDef("Recherche", "SQL")
    Me.lblStats.Caption = DCount("*", "_C_CONTRATS_REQ", SQLWhere) & " / " & DCount("*", "_C_CONTRATS_REQ")
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
    End Sub
    ça ne marche pas...


    Merci
    Nabouille

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    Où dois-je écrire le code?

    J'ai écrit ça dans le code RefreshQuery() de mon formulaire (repris ci-avant)?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...
    SQL = SQL & ";"
     
    CurrentDb.CreateQueryDef("Recherche", "SQL")
     
    Me.lblStats.Caption = DCount("*", "_C_CONTRATS_REQ", SQLWhere) & " / " & DCount("*", "_C_CONTRATS_REQ")
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
     
    End Sub

    mais ça ne marche pas...
    Quelqu'un peut-il m'aider?

    Merci
    Nabouille

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    svp... quelqu'un peut m'aider?

  10. #10
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Encore faut-il que tu precise ce qui ne marche pas.
    As-tu un message d'erreur ? Rien ne se passe ? Quelle ligne semble poser probleme ? En quoi le resultat actuel differe de ce que tu attends ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    Sur la nouvelle ligne que j'ai ajoutée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CurrentDb.CreateQueryDef("Recherche", "SQL")
    J'ai le message:
    Erreur de compliation erreur de syntaxe
    attendu :=
    Merci

  12. #12
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Voila ! Deja si on sait ou est le probleme c'est plus simple de t'aider !!! :p

    Essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.CreateQueryDef("MaReqCreee", "Select * FROM Table1")
    Et si tu n'as pas de message d'erreur c'est que le probleme vient certainement de ta chaine SQL. Fais un Debug.Print SQL avant de creer la requete pour voir si le SQL est bien celui que tu attends.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    Je suis désolée de ne m'être pas assez clairement exprimée

    J'ai mis la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CurrentDb.CreateQueryDef("Recherche", "Select * FROM [_C_CONTRATS_REQ]")
    et il me met exactement le même message d'erreur

    J'ai essayé avec et sans les [ ]

    Merci

  14. #14
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Essaie sans les parentheses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.CreateQueryDef "MaReqCreee", "Select * FROM Table1"
    Apres je ne vois pas trop quoi essayer ... n'ayant pas Access au boulot je ne peux pas tester ton code.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    ça avance... il ne me met plus d'erreur directement dans VB...
    Le requête a été créée mais elle reprend toute la table et pas uniquement les lignes sélectionnées via le formulaire (comme je le souhaiterais)

    Lorsque j'essaie de faire une nouvelle sélection dans mon formulaire... il me met un nouveau message d'erreur :

    erreur d'exécution 3012
    L'objet "recherche" existe déjà
    Effectivement puisqu'il vient d'être créé... mais j'aimerais qu'il puisse se mettre à jour à chaque sélection dans mon formulaire.

    Même lorsque je supprime la requête et que je complie... l'erreur est toujours là !

    Merci pour tes réponses si rapides
    Nabouille

  16. #16
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Citation Envoyé par Nabouille
    Effectivement puisqu'il vient d'être créé... mais j'aimerais qu'il puisse se mettre à jour à chaque sélection dans mon formulaire.
    Pour modifier le SQL une requete existante la reponse est encore dans la FAQ :
    http://access.developpez.com/faq/?page=Requetes

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 29
    Points
    29
    Par défaut
    ok, après beaucoup de tatonnements, j'ai fini par obtenir ce que je voulais

    j’ai remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CurrentDb.CreateQueryDef "Recherche", “SELECT * FROM _C_CONTRATS_REQ
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CurrentDb.CreateQueryDef "Recherche", Me.lstResults.RowSource
    J’ai donc uniquement les lignes sélectionnées par mon formulaire dans ma requête

    Ensuite j'ai exporté le résultat de ma requête dans excel, puis supprimé ma requête pour que cela refonctionne à la prochaine sélection

    Merci pour la patience de Demco
    Nabouille

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

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 16h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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