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

IHM Discussion :

Créer état à partir résultat d'une recherche


Sujet :

IHM

  1. #1
    Membre régulier Avatar de Rcanada
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 130
    Points : 123
    Points
    123
    Par défaut Créer état à partir résultat d'une recherche
    Bonjour à tous !

    Dans un formulaire, je réalise une recherche multicritere dont le résultat est affiché dans une listbox, et je voudrais pouvoir créer un état à partir du résultat de la recherche (en gros je veux pouvoir créer un état contenant la même chose que ma listBox).

    Le probleme c'est que je n'utilise pas une requête stockée directement dans access, mais une requete que je stocke dans un string et que j'execute ensuite dans le vba. Comment puis-je faire ?

  2. #2
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Hello,


    Ben, au niveau de ton rapport, tu peux lui passer ton string SQL au niveau de la propriété recordsource.

    Mettons que ton string qui stocke la requête s'appelle strSQL

    Tu peux lui dire :

    DoCmd.OpenReport strMonRapport, acViewPreview
    With Reports(strMonRapport)

  3. #3
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Hello,


    Ben, au niveau de ton rapport, tu peux lui passer ton string SQL au niveau de la propriété recordsource.

    Mettons que ton string qui stocke la requête s'appelle strSQL

    Tu peux lui dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DoCmd.OpenReport strMonRapport, acViewPreview
    With Reports(strMonRapport)
       .RecordSource = strSQL
    End With
    Bonne journée

  4. #4
    Membre régulier Avatar de Rcanada
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 130
    Points : 123
    Points
    123
    Par défaut
    Merci à toi pour ta réponse rapide. Je vais tester ta solution.

  5. #5
    Membre régulier Avatar de Rcanada
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 130
    Points : 123
    Points
    123
    Par défaut
    Petite question : le nom que tu précise dans openReport doit être le non d'un etat qui existe déjà ? Si oui, comment créer cet état ? Doit il être vide ?

  6. #6
    Membre régulier Avatar de Rcanada
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 130
    Points : 123
    Points
    123
    Par défaut
    Il me met une erreur comme quoi le recordSource ne peut pas être modifié en viewPreview ou une fois que l'impression est lancée.

  7. #7
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Hello,


    Ah oui, il faut que l'état existe déjà... et que les controles soient placés...

    Si tu veux créer un état dynamiquement (c'est à dire en supposant que les champs de ta listebox ne sont pas les mêmes selon les recherches...) ca c'est une autre paire de manches...

    A+

  8. #8
    Membre régulier Avatar de Rcanada
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 130
    Points : 123
    Points
    123
    Par défaut
    En fait les champs sont les même selon la recherche , c'est juste les criteres de recherche qui changent. Donc je sais à l'avance les champs qui vont apparaître sur l'état. Dois-je créer un état avec les champs correspondant, puis fixer le recordSource ?

  9. #9
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut A supprimer
    Désolée, je m.... avec les tabulations et il me valide mes messages à double et trop tôt....

  10. #10
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Re,


    Oui, prépare ton Etat en lui attribuant momentanément une record source qui te donne la liste des champs.

    En fait, tu as raison concernant l'erreur, je pense que tu dois ouvrir le rapport en mode création (acViewDesign), lui attribuer ta recordsource, ferme le rapport en sauvant puis l'ouvrir en Preview.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DoCmd.OpenReport strMonRapport, acViewDesign
    With Reports(strMonRapport)
       .RecordSource = strSQL
    End With
    DoCmd.Close acReport, strMonRapport, acSaveYes
    DoCmd.OpenReport strMonRapport, acViewPreview
    Attention, car ce genre de chose ne marche pas si ton utilisateur utiliser un runtime.

    Je te conseille alors de créer une requête au vol (il faut que la référence DAO soit cochée). Tu crées une requête bidon que tu appelles par exemple qryTmp. Ton Etat a sa propriété RecordSource sur qryTmp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CurrentDb.QueryDefs("qryTmp")=strSQL
    <div style="text-align: left;">DoCmd.OpenReport strMonRapport, acViewPreview
    </div>

    Tiens nous au courant.

  11. #11
    Membre régulier Avatar de Rcanada
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 130
    Points : 123
    Points
    123
    Par défaut
    Ok, j'ai trouvé !
    En fait, il suffit de créer une requête nommée "requête_temp" bidon du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * from produit
    Puis ensuite, dans l'évenement qui doit déclencher l'ouverture de l'état (du style onClick du'n bouton), rajouter le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CurrentDb.QueryDefs("requête_temp").SQL = SQL
    DoCmd.OpenReport "print_recherche", acViewPreview
    SQL, étant la chaine de caractère contenant la requête, et print_recherche étant un état dont le recordSource = requête_temp

    Voila, merci pour ton aide mcdotta.

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Merci Rcanada,

    Ma requête SQL est bien modifiée mais mon rapport n'affiche pas selon le tri que je lui indique selon ma requête SQL!

    C'est bizzare, mon état reste toujours identique!
    Y a un réglage à faire?

    Merci pour votre aide
    Raf

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

Discussions similaires

  1. Remplissage listbox à partir des résultats d'une recherche
    Par typhoon751 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/11/2010, 10h36
  2. Réponses: 16
    Dernier message: 11/08/2008, 12h52
  3. exporter le résultat d'une recherche multi-critère ?
    Par Tetsuotil dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 18/07/2006, 17h39
  4. Résultat d'une recherche
    Par Rehtakulveets dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 09h42
  5. [XP pro] Suppression du résultat d'une recherche
    Par Higgins dans le forum Windows XP
    Réponses: 1
    Dernier message: 17/02/2006, 08h32

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