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 habitué
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 139
    Points
    139
    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
    12 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 886
    Points : 58 507
    Points
    58 507
    Billets dans le blog
    45
    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 habitué
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 139
    Points
    139
    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
    12 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 886
    Points : 58 507
    Points
    58 507
    Billets dans le blog
    45
    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 habitué
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 139
    Points
    139
    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, 11h02
  2. Parcourir un recordset pour un select-Case
    Par Pascal87 dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/09/2007, 22h16
  3. Réponses: 4
    Dernier message: 29/05/2006, 18h15
  4. Réponses: 3
    Dernier message: 29/03/2006, 14h21
  5. impossible d'ouvrir deux recordset sur la meme connection ?
    Par requiemforadream dans le forum ASP
    Réponses: 3
    Dernier message: 28/04/2005, 10h31

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