Re recordset :( (assez urgent pliz)

acorna Messages postés 53 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 23 mars 2005 - 18 juin 2004 à 09:47
acorna Messages postés 53 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 23 mars 2005 - 21 juin 2004 à 08:22
Bonjour,

Voila, j'ai un code qui doit me permettre d'afficher toutes les reservations sur une date précise, que ce soit la date de debut, de fin, ou entre les 2.Mais quand je lance le code, j'obtiens à la fin un formulaire avec tous les enregistrements, même ceux hors date recherchée . POuvez-vous m'aider?

 Dim chxrep
    Dim NumEnr, i As Integer
    Dim DateDebutLoc As Date
    Dim DateFinLoc As Date
    
    

    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 ([DateDebutLoc] <= #" & Format(chxrep, "mm/dd/yyyy") & "#) AND ([DateFinLoc] >=#" & Format(chxrep, "mm/dd/yyyy") & "#)")
     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
   

    stDocName = "form tableau recherche dispo"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    DoCmd.Maximize
    rs.Close


mici :)

10 réponses

cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
18 juin 2004 à 10:18
Si j'interprête ton code, tu as un formulaire "form tableau recherche dispo" avec une source basée sur la table LOCATION et tu veux la filtrer sur stLinkCriteria.
Que contient stLinkCriteria au moment de l'OpenForm ? je ne vois nul part où tu le remplis ...
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
18 juin 2004 à 10:36
Salut,
premièrement, j'aurais plutot codé :
...WHERE #" & Format(chxrep, "mm/dd/yyyy") & "# between [DateDebutLoc] and [DateFinLoc]"

d'autre part, ton select ne te remonte que les dates de début et de fin, est-ce voulu ?

ensuite, méfie toi du rs.RecordCount qques fois ça ne donne pas la valeur réelle. Il vaut mieux l'utiliser comme suit :

dim nbrecords as long
rs.movelast
nbrecords=rs.recordcount
rs.movefirst

pour finir, je ne comprend pas le rôle de ta boucle
For i = 1 To rs.RecordCount

Cordialement

CanisLupus
0
acorna Messages postés 53 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 23 mars 2005
18 juin 2004 à 11:04
j'ai rectifié le rs.recordcount merci.
Pour le select, je n'ai besoin que de ces champs là pour comparer mes dates, c'est pour cela que je n'ai selectionné que ces 2 là.
Ensuite, pour la boucle, c'est pour balayer tous mes enregistrements. Je précise que c'est mon premier recordset, et que je suis loin de connaitre le fonctionnement lol
0
acorna Messages postés 53 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 23 mars 2005
18 juin 2004 à 11:10
euh, non, le but c'est pas de filtrer sur linkcriteria, mais de n'afficher que les enregistrements concernés par la date entrée dans l'input box...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
18 juin 2004 à 12:34
Si tu ne veux que les enregistrements à

[DateDebutLoc] = chxrep

pourquoi ne pas écrire directement :
Set rs Db.OpenRecordset("SELECT [DateDebutLoc], [DateFinLoc] FROM LOCATION WHERE [DateDebutLoc] #" & Format(chxrep, "mm/dd/yyyy") & "#")

Maintenant, il faut bien que tu lies ton formulaire au recordset, sinon, comment veux tu afficher tes résultats ?

Cordialement

CanisLupus
0
acorna Messages postés 53 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 23 mars 2005
18 juin 2004 à 13:40
non, c pas ça. Je voudrai les enregistrements datedebut <= chxrep => Date fin .
0
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
18 juin 2004 à 15:21
La question du loup demeure, à quel moment appliques-tu le filtre à ton formulaire pour ne conserver que les dates de ta requête ?

PS : testée séparément, la requête te retourne-t-elle les bons résultats ?
0
acorna Messages postés 53 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 23 mars 2005
18 juin 2004 à 15:38
je ne comprends pas. comment lier les 2, si ce n'est en ouvrant el formulaire qu'apres avoir executé la requete qui trie les enregistrements?
0
cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
19 juin 2004 à 13:38
Tu redéfinis la source du formulaire à l'ouverture ?
Tu appliques un filtre ?
0
acorna Messages postés 53 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 23 mars 2005
21 juin 2004 à 08:22
euh non. Comment faire?
0