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

Requêtes et SQL. Discussion :

Impossible de parcourir un recordset


Sujet :

Requêtes et SQL.

  1. #1
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Par défaut Impossible de parcourir un recordset
    Bonsoir,

    Le but de cette "routine" est, préalablement à la saisie d'un rendez-vous, d'indiquer à l'utilisateur si un rendez-vous est déjà préexistant sur le créneau horaire.

    Je voulais utiliser ce code ... mais il ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim rst As DAO.Recordset
    Dim nom As Variant
    Dim oDb As DAO.Database
    Set oDb = CurrentDb
    Set rst = oDb.OpenRecordset("select * from t_rendezvous where (horairedebut between #" & Format(DateRdV1, "mm/dd/yyyy") & " " & HoraireD & "# and #" & Format(DateRdV2, "mm/dd/yyyy") & " " & HoraireF & "#) or (horairefin between #" & Format(DateRdV1, "mm/dd/yyyy") & " " & HoraireD & "# and #" & Format(DateRdV2, "mm/dd/yyyy") & " " & HoraireF & "#)", dbOpenDynaset)
    rst.MoveFirst
    Do Until rst.EOF
    MsgBox rst.Field("NR").Value
    rst.MoveNext
    Loop
    Set rst = Nothing
    Set oDb = Nothing
    end sub
    Le "daterdv*" est sous la forme 16/08/2012 ... ce qui explique le format() et correspond à la date début/fin du futur rdv.
    Le "horaire*" étant l'heure de début/fin du futur rendez-vous
    Le "horairedebut" ou "horairefin" correspondent aux rdv déja existants (date + heure) sur lesquels la requête tend à déterminer s'il y a, ou non, "chevauchement" de créneaux

    Le pire ... c'est que la requête "en dur" fonctionne et donne des résultats sous forme d'une table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "select * from t_rendezvous where (horairedebut between #08/16/2012 09:00# and #08/16/2012 11:00#) or (horairefin between #08/16/2012 09:00# and #08/16/2012 11:00#);"
    Il doit donc y avoir un pb du côté du traitement du rst mais je ne vois pas où ...

    S'il vous plaît ... si quelqu'un peut m'éclairer ... Merci

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 171
    Billets dans le blog
    47
    Par défaut
    bonsoir,

    on ne sait jamais mais que donne un debug.print placé juste avant l'ouverture du recordset:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    debug.print "select * from t_rendezvous where (horairedebut between #" & Format(DateRdV1, "mm/dd/yyyy") & " " & HoraireD & "# and #" & Format(DateRdV2, "mm/dd/yyyy") & " " & HoraireF & "#) or (horairefin between #" & Format(DateRdV1, "mm/dd/yyyy") & " " & HoraireD & "# and #" & Format(DateRdV2, "mm/dd/yyyy") & " " & HoraireF & "#)"
    Et surtout, qu'entends-tu par "ne fonctionne pas" ?

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Par défaut
    Merci ...

    Lorsque je dis "fonctionne", c'est que la requête "en dur" me retourne, dans un tableau, 3 résultats ...

    Par contre, en "relatif" ... çà ne donne rien ...

    J'ai essayé le debug.print .... et rien ne se passe

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 171
    Billets dans le blog
    47
    Par défaut
    J'ai essayé le debug.print .... et rien ne se passe
    ça se passe dans la fenêtre d'exécution.
    Dans l'éditeur VBA, Menu Affichage-->Fenêtre exécution

    Le tutoriel qui va bien: Utilisation du Debug.Print

    Tu regardes si la chaîne SQL a une bonne tête.

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Par défaut
    Il devait être tard ...

    En fait, le format "heure" de "horaireD" et "horaireF"" n'était pas bon ...

    Il était de format "09:00" alors qu'il devait être "09:00:00".

    En effet, les champs "horaire debut" et "horaire fin" contenaient des heures sous forme "09:00:00" ....

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

Discussions similaires

  1. impossible de mettre à jour recordset
    Par zephyr59 dans le forum Access
    Réponses: 4
    Dernier message: 25/11/2016, 10h02
  2. Parcourir un recordset pour un select-Case
    Par Pascal87 dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/09/2007, 21h16
  3. Réponses: 4
    Dernier message: 29/05/2006, 17h15
  4. Réponses: 3
    Dernier message: 29/03/2006, 13h21
  5. impossible d'ouvrir deux recordset sur la meme connection ?
    Par requiemforadream dans le forum ASP
    Réponses: 3
    Dernier message: 28/04/2005, 09h31

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