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:
_____________________________________________________________________________
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.
Configuration: Windows Vista Internet Explorer 7.0