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 :

passage de variable date dans une requête [AC-2002]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Points : 62
    Points
    62
    Par défaut passage de variable date dans une requête
    bonjour,

    n'étant pas encore très à l'aise sur le passage de variable d'un formulaire vers une requête SQL exécutée dans un autre formulaire, je m'adresse à la communauté pour résoudre mon problème

    Dans le formulaire appelé F_reporting, j'ai créé 2 champ "txtdatdeb" et "txtdabfin" pour la saisie de 2 dates de début et fin au format jj/mm/aaaa
    ensuite, un bouton est mis à disposition pour lancer une procédure événementielle. Dans cette dernière, il y a plusieurs actions :

    * récupérer les valeurs de txtdatdeb et txtdatfin dans des variables publiques "varpublic-date-debut et varpublic_date_fin"
    * lancer un autre formulaire F_reporting_AA .
    * dans le formulaire, execution d' une requête access contenant les 2 variables comme suit

    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
    Private Sub btincsem_Click()
    On Error GoTo Err_btincsem_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        varpublic_date_debut = txtdatdeb
        varpublic_date_fin = txtdabfin
     
        stDocName = "F_Reporting_AA"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
        DoCmd.Maximize  
     
    Exit_btincsem_Click:
        Exit Sub
     
    Err_btincsem_Click:
        MsgBox Err.Description
        Resume Exit_btincsem_Click
     
    End Sub
    La requête access qui s'exécute dans le nouveau formulaire est utilisée pour sélectionner des enregistrements en fonction des 2 dates saisies dans le formulaires précédents (F_Reporting). Cette sélection s'effectue sur 2 champs date clôture et date de création . Voici l'extrait de la requête qui ne fonctionne pas :
    ...
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    WHERE (((Format([date de clôture],"yyyymmdd"))>=Format(" & varpublic_date_debut & ","yyyymmdd") 
    And (Format([date de clôture],"yyyymmdd"))<=Format("& varpublic_date_fin & ","yyyymmdd"))) 
    OR (((Format([date création],"yyyymmdd"))>=Format(" & varpublic_date_debut & ","yyyymmdd") 
    And (Format([date création],"yyyymmdd"))<=Format(" & varpublic_date_fin & ","yyyymmdd")))
    ....

    Comment doit-on coder correctement les variables publiques?
    en vous remerciant par avance pour vos réponses.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 081
    Points : 24 724
    Points
    24 724
    Par défaut
    Bonjour,

    SQL est incapable de voir des variables VBA... c'est comme ça.

    Par contre SQL voit parfaitement les fonctions publiques des modules.

    Je te propose de créer 2 fonctions pour les renvoyer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function GetDateDebut() as date
        GetDateDebut = varpublic_date_debut 
    end function
     
    function GetDateFin() as date
        GetDateFin = varpublic_date_Fin 
    end function
    Tu peux ainsi faire ton appel dans la requete comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE .... "))>=Format(GetDateDebut(),"yyyymmdd")
    SQL est également capable de comprendre les appels formulaires (cf le tuto)
    auquel cas inutile de passer par des variables et autre fonction.
    Code directement ainsi ta requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE .... "))>=Format(forms.F_reporting.txtdatdeb,"yyyymmdd")
    Cordialement,

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    merci à loufab pour sa proposition.
    Je vais la tester et donner le résultat

    cordialement,

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 159
    Points : 62
    Points
    62
    Par défaut
    Bonsoir,

    je viens d'essayer. C'est parfait !
    Le résultat apparaît bien dans le formulaire avec le résultat de la requête.


    Merci encore

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

Discussions similaires

  1. [Dates] injecter une variable dynamique dans une requête
    Par omar071286 dans le forum Langage
    Réponses: 3
    Dernier message: 20/04/2008, 10h51
  2. Variable "date" dans une requête paramétrée
    Par amtdev dans le forum Bases de données
    Réponses: 10
    Dernier message: 25/01/2008, 20h42
  3. [ADO] Passage de paramètre de type Date dans une requête
    Par e-ric dans le forum Bases de données
    Réponses: 6
    Dernier message: 25/01/2006, 13h36
  4. Réponses: 7
    Dernier message: 08/10/2004, 00h59
  5. Date dans une requête
    Par fdloisel dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 03/09/2004, 18h14

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