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

Access Discussion :

comment vérifier la disponibilité entre 2 dates ?


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut comment vérifier la disponibilité entre 2 dates ?
    Bien le bonjour à toutes et tous,

    Après avoir parcouru en long et en large ce très riche forum, je ne suis pas parvenu à trouver une solution au problème que je rencontre.
    Aussi me permets-je de créer cette nouvelle discussion afin de solliciter une âme charitable qui disposerait d'un peu de temps pour se pencher sur mon cas...

    Voici le cas sus-mentionné :
    Je me suis lancé dans la réalisation d'une base de données permettant de gérer les réservations de chambres d'hôtes.

    Voici la structure :
    Une T_Chambres composée d'un champ ID_CHAMBRE et d'un champ NOMCHAMBRE
    Une T_Reservations composée d'un champ ID_RES, d'un champ DateIn, d'un champ DateOut et d'un champ CS_CHAMBRE
    La relation T_Chambres (1) vers T_Reservation (plusieurs)

    Pour l'instant je procède à quelques tests, et je bute sur celui-ci :

    Je souhaite afficher les chambres disponibles à une période définie (ex: la chambre 1 est réservée du 1 au 5, puis du 10 au 15)
    -> elle est donc libre du 5 au 10 et j'aimerais l'afficher dans un formulaire par exemple.

    J'ai créé :
    une requête affichant les chambres et leurs réservations : R_Chambres
    un formulaire basé sur cette requête : F_Chambres_Dispo
    un formulaire indépendant contenant 2 zones de texte (DateRes_IN et DateRes_OUT) et un bouton sur lequel est placé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Bt_Verif_Res_Click()
     
     If Me.DateRes_IN >= " R_Chambres.DateOut" And Me.DateRes_OUT <= " R_Chambres.DateIn" Then
        DoCmd.OpenForm "F_Chambres_Dispo", acNormal
      Exit Sub
     Else
        Reponse = MsgBox("Aucune chambre disponible à cette date !", vbOKOnly, "ATTENTION !")
     End If
    End Sub
    Quelles que soient les dates entrées, la réponse est toujours la MsgBox

    Le problème viendrait-il du fait que DateIN et DateOut sont sur la même ligne de l'enregistrement et que donc la période se calcule
    entre le 1 et le 5 au lieu du 5 et du 10 ?
    Si oui, que faire alors pour afficher la chambre libre à la période entre le 5 et le 10 ?

    J'espère avoir été suffisement clair et complet dans mon explication :/

    En vous remerciant à l'avance

    Jeanlou

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Solution alternative
    Après plusieurs recherches et essais, je suis parvenu à trouver cette alternative :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Private Sub BTDispo_Click()
        Dim nb_Rec As Long
     
        If Nz(Me.DateResArr, 0) = 0 Then
            Reponse = MsgBox("Veuillez entrer une date d'arrivée, svp !", vbCritical, "Champ vide")
            Me.DateResArr.SetFocus
            Exit Sub
        End If
     
        If Nz(Me.DateResFin, 0) = 0 Then
            Reponse = MsgBox("Veuillez entrer une date de départ, svp !", vbCritical, "Champ vide")
            Me.DateResFin.SetFocus
            Exit Sub
        End If
     
        If Nz(Me.lstChambres, 0) = 0 Then
            Reponse = MsgBox("Veuillez sélectionner une chambre, svp !", vbCritical, "Champ vide")
            Me.lstChambres.SetFocus
            Exit Sub
        End If
     
            nb_Rec = DCount("DateIn", "R_Res", "")
        If Nz(nb_Rec, 0) > 0 Then
            Me.Dispo = "Réservée"
            Exit Sub
        Else
            Me.Dispo = "Libre"
        End If
            Me.BTReservation.Enabled = True
    End Sub
    ...ce qui ne me satisfait pas complètement car je dois sélectionner chambre par chambre pour vérifier si elle est dispo ou pas... mais c'est un début
    Je reste donc ouvert à toute meilleure proposition de la part de l'âme charitable qui souhaitera s'exprimer sur le sujet

    Merci d'avance...

    PS : je suis autodidacte en la matière et désireux de progresser !... mais un p'tit coup de main, ça fait parfois du bien !

Discussions similaires

  1. Réponses: 7
    Dernier message: 03/08/2010, 10h25
  2. [SPS07] Comment faire un filtre entre deux dates ?
    Par Tybo34 dans le forum Développement Sharepoint
    Réponses: 11
    Dernier message: 23/07/2010, 09h42
  3. [JavaScript] [FAQ][Correction / MAJ] Comment vérifier la syntaxe d'une date ?
    Par Auteur dans le forum Contribuez
    Réponses: 0
    Dernier message: 09/12/2008, 23h52
  4. [Dates] comment vérifier la validité d'une date en php
    Par cortex024 dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2007, 09h46
  5. Comment obtenir la différence entre deux dates ?
    Par jbat dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2005, 09h34

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