Requete sql date

Messages postés
53
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
23 mars 2005
- - Dernière réponse : cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
- 17 juin 2004 à 17:07
hello,

Voilà, j'ai établi une requete au sein d'un recordset. Je voudrais que celle ci me permette d'afficher toutes les locations en cours à une date précise entrée. J'ai deux champs : DateDebutLocation et dateFin. Si la date recherchée est située entre ces 2 dates de début et fin,je voudrais que la location s'affiche. Hors avec mon code, si je rentre une date même hors créneau d'enregistrement, celui-ci s'affiche tout de même... De l'aide? mici

Dim chxrep
    Dim NumEnr, i As Integer

    chxrep = InputBox("Entrer la date recherchée", "date")
    Dim Db As Database
    Dim rs As Recordset
    Set Db = CurrentDb()
    Set rs = Db.OpenRecordset("SELECT [DateDebutLoc], [DateFinLoc] FROM LOCATION WHERE " & chxrep & " NOT BETWEEN [DateDebutLoc] and [DateFinLoc]")
     rs.MoveFirst
     For i = 1 To rs.RecordCount
        If Val(rs("DateDebutLoc").Value) <> Val(chxrep) Then
            rs.MoveNext
          Else
        Exit For
        End If
     Next i
    rs.Close


:)
Afficher la suite 

8 réponses

Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3
0
Merci
Set rs = Db.OpenRecordset("SELECT DateDebutLoc, DateFinLoc FROM LOCATION WHERE format(DateDebutLoc,"yyyy-mm-dd") >= #" & chxrep & "# and format(DateDebutLoc,"yyyy-mm-dd") <= #" & chxrep & "#")
Messages postés
437
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
10 août 2010
1
0
Merci
T'es sûr de ta requête ?
Moi j'aurais plutôt fait ça comme ça

Set rs = Db.OpenRecordset("SELECT [DateDebutLoc], [DateFinLoc] FROM LOCATION WHERE (DateDebutLoc <= #" & Format(chxrep, "mm/dd/yyyy") & "#) AND (DateFinLoc >=#" & Format(chxrep, "mm/dd/yyyy") & "#")
Messages postés
53
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
23 mars 2005
0
Merci
il est vrai que vos requetes sont bien meilleures, mais tous les enregistrements sont encore affichés, y compris ceux non concernés par la date entrée...
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3
0
Merci
oups j'avou mes < et > sont inversé
moi je préfère mettre des format, pusique si moindrement tu as des heure, tu viens de perdre des résultats

acorna, ça devrais marcher, au nombre de fois que je l,ai faite

DateDebutLoc et DateFinLoc sont un type quoi ??? date ??? dans ta base de donnée ou string ???
Messages postés
53
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
23 mars 2005
0
Merci
en mettant un point d'arrêt dans mon code, il m'est venu une idée : est-ce que le set rs = db.recordset est bien à sa place dans le code, étant donné qu'aucune valeur de début et fin n'est apparement prise en compte au pas à pas?
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3
0
Merci
si tes champ date sotn en fait des string, ça peux te faire ça

si tes champs date ont pas la bonne valeur ou son vide aussi, faut vérifer
Messages postés
53
Date d'inscription
mercredi 26 mai 2004
Statut
Membre
Dernière intervention
23 mars 2005
0
Merci
comment je peux savoir si c des string?
Pke ces champs la sont définis comme date, et ce sont des champs au format Date de ma bd.
Par contre mes champs ne sont jamais vides,et leur valeur, je ne pense pas qu'elle puisse être bonne ou pas, étant donné qu'elles sont saisies en fction des reservations...
Donc je vois pas vraiment, mais merci des pistes
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3
0
Merci
si dans ta base de donnée, c'est des date, donc c,est oki, de toute façon ça t'aurais sortie une erreur

sinon c,est peut-être un problème de formatage, genre l'année pis le jours sont inversé