Vba Gestion réservation date début/fin
FMDCC
Messages postés
74
Date d'inscription
Statut
Membre
Dernière intervention
-
othanga -
othanga -
Bonjour,
Je fais une petite application de gestion de réservation de chambre dans des résidences vacances(projet PTI de BTS IG).
J'ai pratiquement terminé mais j'ai toujours un problème lors de la recherche des chambres de disponibles selon le type, la ville et les date de début et de fin sélectionnés par l'utilisateur.
Je n'arrive pas à écrire la requête pour que cette sélection se fasse. Je bloque au niveau de la restriction sur les dates.
Voilà tout d'abord mon schéma relationnel:
http://img26.imageshack.us/img26/7246/schemarelation.jpg
Puis le formulaire qui permet la recherche des chambres disponibles et la réservation:
http://img26.imageshack.us/img26/2672/reservation.jpg
Pour le code voilà ce que j'ai en ce moment:
_____________________________________________________________________________
________________________________________________________________________________
J'espère que vous pourrez m'aider et je remercis déjà tout ceux qui ont pris le temps de lire ce sujet.
Je peux si certains le veulent vous l'envoyer pour que ce soit peut etre plus simple à comprendre.
Je fais une petite application de gestion de réservation de chambre dans des résidences vacances(projet PTI de BTS IG).
J'ai pratiquement terminé mais j'ai toujours un problème lors de la recherche des chambres de disponibles selon le type, la ville et les date de début et de fin sélectionnés par l'utilisateur.
Je n'arrive pas à écrire la requête pour que cette sélection se fasse. Je bloque au niveau de la restriction sur les dates.
Voilà tout d'abord mon schéma relationnel:
http://img26.imageshack.us/img26/7246/schemarelation.jpg
Puis le formulaire qui permet la recherche des chambres disponibles et la réservation:
http://img26.imageshack.us/img26/2672/reservation.jpg
Pour le code voilà ce que j'ai en ce moment:
_____________________________________________________________________________
Private Sub RechercherChambresButton_Click() Dim strVille As String Dim strCode As String Dim strReq As String Dim intNombreChambres As Integer Dim strNomResidence As String Dim intNumChambre As Integer Dim strlibelleType As String Dim dateDebut As Date Dim dateFin As Date ChambresDispoZL.RowSource = "" If IsNull(VilleResidenceZLD) = False And IsNull(dateDebutTextbox) = False And IsNull(DateFinTextBox) = False Then dateDebut = CDate(dateDebutTextbox.Value) dateFin = CDate(DateFinTextBox.Value) If dateDebut > dateFin Or dateDebut = dateFin Then MsgBox "Erreur dans la sélection des dates." Else Select Case GroupeTypeChambre.Value Case 1 strCode = "F1" Case 2 strCode = "F2" Case 3 strCode = "F3" End Select strVille = VilleResidenceZLD.Value strReq = "SELECT Residence.resCode,resNom,Chambre.chamNum,typeLibelle FROM Residence,Chambre,TypeChambre,Reservation WHERE Residence.resCode = Chambre.resCode AND Chambre.typeCode = TypeChambre.typeCode AND Reservation.resCode = Chambre.resCode AND Reservation.chamNum = Chambre.chamnum " strReq = strReq & "AND Chambre.typeCode = '" & strCode & "' AND resVille = '" & strVille & "' " strReq = strReq & "AND " & dateDebut & " NOT BETWEEN reservDateDebut AND reservDateFin " strReq = strReq & "AND " & dateFin & " NOT BETWEEN reservDateDebut AND reservDateFin " strReq = strReq & "ORDER BY resNom,Chambre.chamNum;" Set RSRechercheChambre = BDD.OpenRecordset(strReq) intNombreChambres = 0 While RSRechercheChambre.EOF = False strCodeResidence = RSRechercheChambre![resCode] strNomResidence = RSRechercheChambre![resNom] intNumChambre = RSRechercheChambre![chamNum] strlibelleType = RSRechercheChambre![typeLibelle] ChambresDispoZL.AddItem "'" & strCodeResidence & "';'" & strNomResidence & "';" & intNumChambre & ";'" & strlibelleType & "'" intNombreChambres = intNombreChambres + 1 RSRechercheChambre.MoveNext Wend MsgBox "Il y a " & intNombreChambres & " chambre(s) qui corresponde(nt) à vos critères de recherche." End If Else MsgBox "Certains champs ne sont pas remplis." End If
________________________________________________________________________________
J'espère que vous pourrez m'aider et je remercis déjà tout ceux qui ont pris le temps de lire ce sujet.
Je peux si certains le veulent vous l'envoyer pour que ce soit peut etre plus simple à comprendre.
A voir également:
- Vba Gestion réservation date début/fin
- Fin des zfe - Guide
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Logiciel gestion photo gratuit - Guide
- Logiciel gestion cabinet médical gratuit - Télécharger - Organisation
- Logiciel gestion cave à vin gratuit excel - Télécharger - Cuisine & Gastronomie
9 réponses
Hello
t'es-tu assuré que les dates que tu concatènes au texte de ta requête sont bien présentées dans le format attendu par ton moteur de données ?
car la première chose qui m'intrigue c'est qu'un moteur puisse accepter des dates sans délimiteurs : j'ai toujours vu des dates encadrées par des apostrophes, des guillemets ou des dièses mais jamais sans rien.
ensuite, il faut t'assurer que le format de date utilisé par ton langage colle bien avec le format de date attendu par ton moteur. Si ton moteur attend du yyyymmddhhmmss et que tu lui présente dd/mm/yyyy, ça ne collera évidemment pas.
et dans ton prochain appel à l'aide, n'hésite pas à citer l'éventuel message d'erreur que tu obtiens
t'es-tu assuré que les dates que tu concatènes au texte de ta requête sont bien présentées dans le format attendu par ton moteur de données ?
car la première chose qui m'intrigue c'est qu'un moteur puisse accepter des dates sans délimiteurs : j'ai toujours vu des dates encadrées par des apostrophes, des guillemets ou des dièses mais jamais sans rien.
ensuite, il faut t'assurer que le format de date utilisé par ton langage colle bien avec le format de date attendu par ton moteur. Si ton moteur attend du yyyymmddhhmmss et que tu lui présente dd/mm/yyyy, ça ne collera évidemment pas.
et dans ton prochain appel à l'aide, n'hésite pas à citer l'éventuel message d'erreur que tu obtiens
Mes dates sont enregistrées selon le format date/heure ==> JJ/MM/AAAA
Je n'ai pas de message d'erreur mais je n'obtiens pas ce que je veux dans la zone de liste.
Je veux avoir la liste des chambres disponibles qui ne sont donc pas réservées entre la période de début et celle de fin.
Je n'ai pas de message d'erreur mais je n'obtiens pas ce que je veux dans la zone de liste.
Je veux avoir la liste des chambres disponibles qui ne sont donc pas réservées entre la période de début et celle de fin.
comment es-tu sûr du format de cette date ?
quel est exactement le contenu de strReq juste avant l'instruction Set RSRechercheChambre = BDD.OpenRecordset(strReq) ?
quel est exactement le contenu de strReq juste avant l'instruction Set RSRechercheChambre = BDD.OpenRecordset(strReq) ?
Pour les dates, je l'ai ai toutes les deux converties en Date
dateDebut = CDate(dateDebutTextbox.Value)
dateFin = CDate(DateFinTextBox.Value)
Pour le contenu de strReq avant
Set RSRechercheChambre = BDD.OpenRecordset(strReq)
c'est juste la longue chaine concaténée.
dateDebut = CDate(dateDebutTextbox.Value)
dateFin = CDate(DateFinTextBox.Value)
Pour le contenu de strReq avant
Set RSRechercheChambre = BDD.OpenRecordset(strReq)
c'est juste la longue chaine concaténée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'aurais tendance à te conseiller un msgbox ou un truc trivial dans le genre juste pour vérifier avec tes yeux que strReq contient bien ce que tu crois.
encore eut-il fallut que je puisse utiliser Access :D
désolé.
que se passe-t-il si juste avant l'OpenRecordSet(), tu rajoutes la ligne
désolé.
que se passe-t-il si juste avant l'OpenRecordSet(), tu rajoutes la ligne
MsgBox strReq?
Voilà un exemple de ce que peut contenir strReq avant d'être exécutée.
http://img40.imageshack.us/img40/963/strreq.jpg
Si quelqu'un veux que je lui envoye mon fichier.mdb je peux.
Envoyez moi un e-mail à l'adresse: FM_DCC@hotmail.com
http://img40.imageshack.us/img40/963/strreq.jpg
Si quelqu'un veux que je lui envoye mon fichier.mdb je peux.
Envoyez moi un e-mail à l'adresse: FM_DCC@hotmail.com
Hello !
ton msgBox ne montre qu'une jointure entre 4 tables, mais il n'y est aucunement question des dates qui ont déclenché ton appel au secours : tu construisais une requête avec des constantes issues de ton formulaire, des plages de dates (NOT BETWEEN) et j'y avais noté l'absence d'apostrophes pour délimiter les dates.
finalement, c'est quoi l'erreur, c'est quoi qui cloche ?
ton msgBox ne montre qu'une jointure entre 4 tables, mais il n'y est aucunement question des dates qui ont déclenché ton appel au secours : tu construisais une requête avec des constantes issues de ton formulaire, des plages de dates (NOT BETWEEN) et j'y avais noté l'absence d'apostrophes pour délimiter les dates.
finalement, c'est quoi l'erreur, c'est quoi qui cloche ?