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 :

requête paramétrée en vba


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut requête paramétrée en vba
    Bonjour
    Encore un pti problème je promes c'est mon dernier.
    J'ai un etat qui a en source une requete paramétrée "RCA2 (année et mois)" et une table "solde"
    et j'ai mis un formulaire "welcome" pour entrer l'année et le mois et sur clic "ok" j'ai mis un code qui fais des calculs et les stockes dans la table "solde" et après l'état s'ouvre or lors de l'ouverture de l'état j'ai encore le mesgbox pour entrer le mois et la date qui est declencher par la requete RCA2
    comment faire pour que la requete source recupere la donnée entrées dans le formulaire "welcome"

  2. #2
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut
    je ne sais pas si c'est fesable ou pas j'ai mis dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set Tdf = db.QueryDefs("RCA2")
     
      ' Code qui utilise qdf
      ' Par exemple
    Tdf.Parameters("année") = Forms!Welcome.Form!cboannee   '<== si requête paramétrée
    Tdf.Parameters("mois") = Forms!Welcome.Form!mois
    Set mydeb = Tdf.OpenRecordset
     
    Report![CA].RecordSource = "SELECT *, solde.initial, solde.final FROM " & mydeb & " LEFT JOIN solde ON " & mydeb!DateCA & "= solde.DateCA;"
    mais ça me donne incompatibilité de type pour mydeb

  3. #3
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 959
    Par défaut
    Bonsoir,
    le message d'erreur indique que tu veux utiliser un objet recordset (mydeb) à l'intérieur d'un texte ("SELECT * ...)
    il faudrait que tu récupères le texte SQL de "RCA2" contenu dans Tdf.SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Mydeb As String
    Mydeb = Tdf.SQL
    et après il faudrait remplacer les paramètres par leur valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mydeb = Replace(Replace(Mydeb, "L_Annee", tdf.Parameters("année")), "Le_Mois", tdf.Parameters("mois"))
    Les variables L_Annee et Le_Mois sont ceux utilisés dans la clause WHERE.
    ensuite l'utiliser dans le SQL final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Report![CA].RecordSource = "SELECT Mydeb.*, solde.initial, solde.final FROM SOLDE, (" & mydeb & ") AS Mydeb LEFT JOIN solde ON mydeb.DateCA = solde.DateCA;"
    A priori, cela devrait fonctionner. Si ce n'est pas le cas, poste le code de RCA2.

  4. #4
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 959
    Par défaut Un petit oubli
    Bonjour,
    il faut modifier l'instruction Replace pour enlever le point virgule contenu dans Mydeb :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mydeb = Replace(Replace(Left(Mydeb, Len(Mydeb) - 1), "L_Annee", tdf.Parameters("année")), "Le_Mois", tdf.Parameters("mois"))

  5. #5
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut
    Bonjour,
    Merci grandbois pour la réponse
    j'ai tjs pas compris c'est quoi " l_annee" et "le_mois"??

  6. #6
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Par défaut
    Re,
    j'ai essayé mais ça me renvoie une erreur "objet requis" dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Report![CA].RecordSource = "SELECT Mydeb.*, solde.initial, solde.final FROM SOLDE, (" & mydeb & ") AS Mydeb LEFT JOIN solde ON mydeb.DateCA = solde.DateCA;"

Discussions similaires

  1. Requête paramétrée en VBA et erreur 91
    Par sardaucar dans le forum VBA Access
    Réponses: 16
    Dernier message: 30/10/2014, 17h44
  2. [AC-2010] Requête paramétrée en vba
    Par frannzz dans le forum VBA Access
    Réponses: 5
    Dernier message: 31/08/2012, 15h54
  3. Requête paramétrée depuis VBA
    Par efvsql dans le forum Microsoft BI
    Réponses: 0
    Dernier message: 25/08/2008, 20h24
  4. [code VBA]passage de variable pour une requête paramétrée
    Par christrabin dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/04/2007, 14h30
  5. VBA & Requête paramétrée
    Par gripoil dans le forum Access
    Réponses: 4
    Dernier message: 25/11/2004, 09h54

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