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 :

DAO et requête sur Date [AC-2003]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2008
    Messages : 59
    Points : 38
    Points
    38
    Par défaut DAO et requête sur Date
    Je suis navré bien que j'ai lu les différents tutoriels je n'arrive pas à résoudre mon pb :

    j'ai ctrl dans un formulaire que j'ai nommé dans mon formulaire je saisie comme valeur pour ce contrôle "22/02/2011"
    ensuite j'ai écris ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    rst1 = "SELECT TR_Ereception.num_recep, TR_Ereception.date_recep FROM TR_Ereception WHERE (((TR_Ereception.date_recep)=" & Me.Ctrl_newdate & "));"
    Set rs1 = CurrentDb.OpenRecordset(rst1)
    MsgBox "le résultat de la requête rs1 =  " & rs1.Fields(0).Value
    Mais mon code me retourne aucun enregistrement alors que réellement dans ma table j'ai au moins un enregistrement avec cette valeur.
    J'ai pensé que mon souci provenait du format de date alors J'ai essayé de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim dt As Date
        dt = Format(Me.Ctrl_newdate, "mm/jj/aaa")
    et de remplacer Me.ctrl_newdate par dt dans ma requête. Mais comme retour j'ai un message "incompatibilité de type".
    Quelqu'un peut-il m'orienter ?
    Merci d'avance

  2. #2
    Provisoirement toléré
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Points : 50
    Points
    50
    Par défaut
    bonjour,

    dans ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim dt As Date
        dt = Format(Me.Ctrl_newdate, "mm/jj/aaa")
    je pense que tu devrais rajouter un "a" pour l'année. Tu as écris "mm/jj/aaa" au lieu de "mm/jj/aaaa" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim dt As Date
        dt = Format(Me.Ctrl_newdate, "mm/jj/aaaa")

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2008
    Messages : 59
    Points : 38
    Points
    38
    Par défaut
    En fait c'était une erreur dans la saisie de mon post
    j'avais bien écrit "aaaa" dans mon code.

    Mais je te remercie quand même

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu dis que ton code ne retourne aucun enregistrement, mais as-tu un message d'erreur ?

    En effet, si ton champ TR_Ereception.date_recep est de type Date, tu dois utiliser des # avant et après pour insérer ta date.

    De plus, tu es en VBA, la commande Format doit prendre la syntaxe angla-saxonne : mm/dd/yyyy.

    Un tuto à lire : http://mhubiche.developpez.com/vba/f...ions/datetime/

    Philippe

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2008
    Messages : 59
    Points : 38
    Points
    38
    Par défaut Elements de réponse
    En fait
    j'ai testé d'abord ma requête SQL à travers le module Requête d'accès. Cette requête me retourne un enregistrement

    Ensuite je lance mon code en vba

    1er cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        dt = Me.Ctrl_newdate
        Dim rst1 As String
        Dim rs1 As DAO.Recordset
     
     
    rst1 = "SELECT TR_Ereception.num_recep, TR_Ereception.date_recep FROM TR_Ereception WHERE (TR_Ereception.date_recep)=" & dt & ";"
    Set rs1 = CurrentDb.OpenRecordset(rst1)
    MsgBox "le résultat de la requête rs1 =  " & rs1.Fields(0).Value
    j'obtiens le message d'erreur suivant : "Aucun Enregistrement"
    2eme cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dt = Format(Me.Ctrl_newdate, "mm/jj/aaaa")
     
        Dim rst1 As String
        Dim rs1 As DAO.Recordset
     
     
    rst1 = "SELECT TR_Ereception.num_recep, TR_Ereception.date_recep FROM TR_Ereception WHERE (TR_Ereception.date_recep)=" & dt & ";"
    Set rs1 = CurrentDb.OpenRecordset(rst1)
    MsgBox "le résultat de la requête rs1 =  " & rs1.Fields(0).Value
    dans ce cas j'obtiens le message d'erreur "Incompatibilité de type"

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Citation Envoyé par Philippe JOCHMANS Voir le message
    Bonjour

    Tu dis que ton code ne retourne aucun enregistrement, mais as-tu un message d'erreur ?

    En effet, si ton champ TR_Ereception.date_recep est de type Date, tu dois utiliser des # avant et après pour insérer ta date.

    De plus, tu es en VBA, la commande Format doit prendre la syntaxe angla-saxonne : mm/dd/yyyy.

    Un tuto à lire : http://mhubiche.developpez.com/vba/f...ions/datetime/

    Philippe
    Il faudrait prendre en compte les messages.

    Philippe

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2008
    Messages : 59
    Points : 38
    Points
    38
    Par défaut RE
    J'ai pris en compte ton message.
    Pour l'instant bien que je comprend le message.
    Je ne vois pas très bien comment modifier mon code.
    Je vais travaille dessus donc.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2008
    Messages : 59
    Points : 38
    Points
    38
    Par défaut finalement
    merci. finalement ça marche mieux comme ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      dt = Format(Me.Ctrl_newdate, "mm/dd/yyyy")
        Dim rst1 As String
      
    rst1 = "SELECT TR_Ereception.num_recep, TR_Ereception.date_recep FROM TR_Ereception WHERE (TR_Ereception.date_recep)=#" & dt & "# ;"

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

Discussions similaires

  1. [REQ] Requête sur date et heure
    Par benazerty dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 26/06/2006, 13h34
  2. [sql server] requête sur dates et heures (format du résultat
    Par isachat666 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/02/2006, 13h48
  3. Requète sur dates compliquée ...
    Par itklif2 dans le forum Requêtes
    Réponses: 7
    Dernier message: 28/11/2005, 23h31
  4. [ADO] Requète sur dates
    Par cdlr27 dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/01/2005, 22h39
  5. Requête sur date
    Par guenfood dans le forum Access
    Réponses: 11
    Dernier message: 08/12/2004, 16h11

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