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 :

Automation d'une requête paramétrée sur excel


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 33
    Points : 33
    Points
    33
    Par défaut Automation d'une requête paramétrée sur excel
    Bonjour à tous,
    Mon problème est le suivant, je veux exporter une requête access sur excel.
    J'ai utilisé pour m'aider le tutoriel de Cafeine qui est très bien + tutoriel de loufab très bien aussi ;

    Lorsque j'exécute mon code, j'ai en retour l'erreur suivante : erreur d'exécution 13, imcompatibilité de type

    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
    Private Sub btn_ouvrirEtat4_Click()
    Dim sql As String
    Dim xlAppl As Excel.Application 'application excel
    Dim xlSheet As Excel.Worksheet 'feuille excel
    Dim xlbook As Excel.Workbook 'classeur excel
    Dim I As Long, J As Long
    Dim rec As Recordset
     
    sql = "TRANSFORM Sum(tlnkvéhiculeCarte.dwMontant) AS SommeDedwMontant"
    sql = sql & " SELECT tlnkvéhiculeCarte.dwID"
    sql = sql & " FROM tlnkvéhiculeCarte"
    sql = sql & " WHERE (((tlnkvéhiculeCarte.dwannée) = " & Me.ztAnnée & " Or (tlnkvéhiculeCarte.dwannée) = " & Me.ztAnnée - 1 & "))"
    sql = sql & " GROUP BY tlnkvéhiculeCarte.dwID"
    sql = sql & " PIVOT tlnkvéhiculeCarte.dwannée;"
     
    'supprime la requête qConsommationAnnuelleEssence_AC
    DoCmd.DeleteObject acQuery, "qConsommationAnnuelleEssence_AC"
    'crée la nouvelle requête
    CurrentDb.CreateQueryDef "qConsommationAnnuelleEssence_AC", sql
     
    Set rec = CurrentDb.OpenRecordset("qConsommationAnnuelleEssence_AC", dbOpenSnapshot)
     
     
    ...

    Je voudrais connaître le problème, j'ai essayé l'aide mais je n'ais rien trouvé.

    Merci d'avance pour toutes vos réponses.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    Tu peux passer ton paramètre de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim db As DAO.Database, Qdef As DAO.QueryDef, r As DAO.Recordset
    Dim Dt As Date
    
    Set db = CurrentDb
    ' Ouvre requête paramétrée Query1
    Set Qdef = db.QueryDefs("Query1")
    ' Renseigne le paramètre 
    Dt=#4/27/2006#
     ' ou si la date vient d'un formulaire
    Dt=Forms!NomFormulaire!NomControleDate
    Qdef.Parameters("[Entrer Date]") = Dt
    ' Ouvre le recordset à partir de l'objet QueryDef
    Set r = Qdef.OpenRecordset
    NomFormulaire : Nom du formulaire contenant la date pour la requête
    NomControleDate : Nom du Contrôle dans le formulaire contenant la date.
    Le format d'affichage du Contrôle doit être un format date pour éviter des erreurs de convertion.

    Bon courage.

  3. #3
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Ca alors la question à laquelle j'ai répondu n'est plus la même.

    Pour le 2e problème, dans un source SQL la date doit être écrite sous la forme #m/d/yyyy# (mois/jour/année encadré par des dièses)
    A+

  4. #4
    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,


    Plutôt que de t'embeter à effacer et à recréer ta requête tu peux utiliser :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CurrentDb.QueryDefs("qConsommationAnnuelleEssence_AC").SQL = sql
    Ensuite, est-ce que ta requête tu arrives à l'ouvrir directement via Access en double-cliquant dessus...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 33
    Points : 33
    Points
    33
    Par défaut
    A mcdotta
    Merci pour pour l'astuce, je vais essayer.

    Et oui, j'arrive à ouvrir la requête 'qConsommationAnnuelleEssence_AC' que j'ai créée en double cliquant dessus

    A LedZeppII, j'avais trouvé une solution entre temps, merci je vais tout de même étudier la tienne, elle pourra me servir par la suite!

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 33
    Points : 33
    Points
    33
    Par défaut
    J'ai trouvé la solution
    Merci encore à tous.
    Il s'agissait encore d'un truc simple sur lequel on s'arrache les cheveux :
    il fallait mettre set rec as DAO.recordset

    A bientôt

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

Discussions similaires

  1. [AC-2010] Importation d'une requête Access sur Excel
    Par jurta dans le forum Access
    Réponses: 22
    Dernier message: 22/11/2013, 08h57
  2. [AC-2007] afficher une requête access sur excel automatiquement
    Par marco_t dans le forum Access
    Réponses: 1
    Dernier message: 01/10/2010, 13h57
  3. Réponses: 3
    Dernier message: 12/12/2006, 11h45
  4. Ouvrture Formulaire basé sur une requête paramétrée
    Par teffal dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/07/2006, 16h04
  5. Erreur de syntaxe sur une requête paramétrée
    Par deglingo37 dans le forum Access
    Réponses: 5
    Dernier message: 16/05/2006, 22h21

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