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

VBA Access Discussion :

Requete vers excel


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Points : 44
    Points
    44
    Par défaut Requete vers excel
    Je souhaite à partir d'un formulaire (listbox...) lancer une requête puis en extraire les résultats vers excel

    1.La saise dans le formulaire me permet de récupérer les 2 données "txtdu" et "lstpice"
    2.Je lance ensuite la requête de la façon suivante :
    Code:
    Set rst = CurrentDb.OpenRecordset("gaphiquerebuts", dbOpenSnapshot)


    avec dans la requête au niveau des champs les formules suivantes :
    Code:
    [Formulaires]![Etude rebuts]![txtdu]

    Par contre lorsque je la lance du formulaire avec le code set rst=... j'ai un message d'erreur "trop de parametre .2 attendu" comme si cette requête ne prenait pas en compte les valeurs "txtdu" et "lstpiece"correspondait à aucun résulat pourtant pour les valeurs que je saisie il ya des résultats


    Je patauge...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Points : 44
    Points
    44
    Par défaut
    En fait de façon plus simple mon pb est le suivant :
    1.Un formulaire me permet de choisir 2 données : "date" et "piece"
    2.A partir de ces 2 infos je fais un trie dans une table avec date et piece comme critére de recherche
    3.Transférer les résulats correspo,ndants dans une feuille excel éxistant et dans un onglet défini

    Je sais tous ces éléments séparemment mais à chaque fois je bloque quand je veux les faire fonctionner ensemble

    point 1 : le formulaire fonctione je récupére bien les données
    point 2 : j'arrive à faire ce genre de manip pour faire une listebox paramétré
    point 3 : j'utilise le tutoriel de cafeine pas de pb

    mais les 3 ensembles ???

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Si tu arrive à construire ta chaine SQl de sélections de tes données, j'ai fais une fonction qui automatise l'export vers Excel (la fonction reprend les principes du tuto de Cafeine). Si ça peut t'aidé, regarde en fin du message ici.


    A+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Points : 44
    Points
    44
    Par défaut
    J'ai travaille sur ta solution mais j'ai besoin d'informations complémentaires :
    1. J'ai bien une requête SQL qui se nomme SQL, les lignes suivantes me permettent de vérifier qu'elle donne bien des résultats, ce n'est pas la finalité mais seulement un contrôle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    '****mise à jour des champs de la requête
     
    Me.lstresultats.RowSource = SQL
    Me.lstresultats.Requery
    2. Ta fonction tu la lances avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Excl = fExportExcel(Chemin, Rs, True, 11, 2)
    Comment puis-je relier les RS et ma requête SQL

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dim RS as Dao.Recordset
    Set RS = currentdb.openrecordset(sql, dbopendynaset)
    Set Excl = fExportExcel(Chemin, Rs, True, 11, 2) 
     
    ...
     
    Set RS = nothing
    set Excl = nothing
    A+

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Points : 44
    Points
    44
    Par défaut
    J'ai mis ta méthode voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Me.lstresultats.RowSource = SQL
    Me.lstresultats.Requery
     
     
     'transfert vers excel
     
     
    Dim RS As Dao.Recordset
    MsgBox "test1"
    Set RS = CurrentDb.OpenRecordset(SQL, dbOpenDynaset)
    MsgBox "test2"
    Set Excl = TransfertExcelAutomationessai(RS)
    J'ai de nouveau le message d'erreur "trop de paramétres.?2 attendu", ce message apparaît entre test1 et test2, pourtant la listebox précédente me confirme que la SQL fonctionne, les résultats apparaissent

    Avez-vous une idée???

  7. #7
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    je ne comprends rien à cette ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Excl = TransfertExcelAutomationessai(RS)

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Points : 44
    Points
    44
    Par défaut
    Autant pour moi j'ai laissé trainer un essai pour essayer de debeuguer mon pb, sinon cette fonction lance le transefrt vers excel, je l'ai essayer indépendemment cela fonctionne, le pb se trouve bien entre les textes "test1" et "test2"
    voici le code pratiquement complet :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    '****montage de la requête en fonction des choix
    Dim SQL As String
    Dim SQLWhere As String
     
    SQL = "SELECT SaisieQ.Ideq, piece.[Désignation pièce], SaisieQ.[Num saisie], [Saisie rebuts].Nreb, SaisieQ.NBbonnes, [biblio rebuts].[Lib rebut], [Saisie rebuts].QuantitéReb FROM (piece INNER JOIN SaisieQ ON piece.Idpièce = SaisieQ.Codepiéce) INNER JOIN ([biblio rebuts] INNER JOIN [Saisie rebuts] ON [biblio rebuts].Idrebut = [Saisie rebuts].[Id rebut]) ON SaisieQ.[Num saisie] = [Saisie rebuts].Numsaisiereb "
     
     
    'ajout date du
    SQL = SQL & "WHERE (((SaisieQ.Dateprod)>= txtdu and (SaisieQ.Dateprod)<= txtau)"
     
     
    'ajout typepiéce
    If Not (tousproduits) Then
    SQL = SQL & "AND((PIECE.[Désignation pièce])=txtpiece)"
    End If
     
     
     
    'fin condition where
     SQL = SQL & ");"
    '****mise à jour des champs de la requête
     
    Me.lstresultats.RowSource = SQL
    Me.lstresultats.Requery
     
     
     'transfert vers excel
     
     
    Dim RS As DAO.Recordset
    Dim db As DAO.Database
     
    Set db = Application.CurrentDb
    MsgBox "test1"
    Set RS = db.OpenRecordset(SQL, dbOpenDynaset)
    MsgBox "test2"
    TransfertExcelAutomationessai (RS)
     
     
     
    Set RS = Nothing
    Set Excl = Nothing
     
     
    Exit_Commande16_Click:
        Exit Sub
     
    Err_Commande16_Click:
        MsgBox Err.Description
        Resume Exit_Commande16_Click
     
        End If
    End Sub

    Merci pout ton aide, parce que même si je n'y bosse pas 24/24, je commence à sécher

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Citation Envoyé par Frevale
    J'ai de nouveau le message d'erreur "trop de paramétres.?2 attendu"
    Pour moi c'est un pb dans ta chaine SQL. Fais un "debug.print SQL" et copier coller du contenu de SQl dans une nouvelle requete pour voir ce que cela donne.

    Plus généralement, regarde le tuto de Cafeine pour le debugage ici.


    A+

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Points : 44
    Points
    44
    Par défaut
    La chaîne SQL fonctionne correctement, j'ai d'ailleurs ajouter une lisbox qui affiche le résulatat de la SQL, et tout fonctionnement trés bien, j'ai bien les résulatst escomptés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.lstresultats.RowSource = SQL
    Me.lstresultats.Requery
    Par contre quand j'essaie d'extraire les résultats j'ai le message d'erreur :
    im RS As DAO.Recordset
    Dim db As DAO.Database

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set db = Application.CurrentDb
    MsgBox "test1"
    Set RS = db.OpenRecordset(SQL, dbOpenDynaset)
    MsgBox "test2"
    TransfertExcelAutomationessai (RS)
    Peut-être que je suis parti dans une solution trop compliqué, ce que je souhaite faire me semble simple : extraire à l'aide d'une requête paramétrée certaines données d'une table et les transférer vers excel

    Depuis 2s emaines je coince, je suis ouvert à tout autre solution..

Discussions similaires

  1. exporter un requete vers excel
    Par chamus dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 12/02/2007, 17h10
  2. Réponses: 4
    Dernier message: 13/09/2006, 16h53
  3. Requete vers excel et traitement
    Par robin des bulles dans le forum Access
    Réponses: 1
    Dernier message: 07/06/2006, 10h45
  4. Export requete vers excel et mise en forme
    Par ston dans le forum Access
    Réponses: 2
    Dernier message: 27/10/2005, 16h55
  5. export de requete vers excel(pb de mise en forme)
    Par syl221 dans le forum Access
    Réponses: 13
    Dernier message: 20/10/2004, 15h15

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