[access]Comparer une date entre 2 dates
Fermé
Bonjour a tous,
Comment comparer une [date d’entrée] encodée dans un sous formulaire(location) pour un chalet donné a une fourchette [date d’entrée] [date sortie] qui se trouve dans une table archive pour un même chalet.
Exemple : une réservation est faite et archivée dans la table archive (date d’entrée 07/02/06 et date de sortie 21/02/06 pour le chalet n°1)
A l’ouverture de mon formulaire location il est vide car les données ont été ajoutées a la table archive
Si je veux encoder une date d’entrée 14/02/06 et une date de sortie 28/02/06 pour le chalet n°1,c'est possible
Donc le chalet sera loué 2 fois en même temps pour la période du 14 au 21
Je voudrais bien interdire cette possibilité d’encodage
Quelqu’un a une idée ?
Merci de vos réponses
Comment comparer une [date d’entrée] encodée dans un sous formulaire(location) pour un chalet donné a une fourchette [date d’entrée] [date sortie] qui se trouve dans une table archive pour un même chalet.
Exemple : une réservation est faite et archivée dans la table archive (date d’entrée 07/02/06 et date de sortie 21/02/06 pour le chalet n°1)
A l’ouverture de mon formulaire location il est vide car les données ont été ajoutées a la table archive
Si je veux encoder une date d’entrée 14/02/06 et une date de sortie 28/02/06 pour le chalet n°1,c'est possible
Donc le chalet sera loué 2 fois en même temps pour la période du 14 au 21
Je voudrais bien interdire cette possibilité d’encodage
Quelqu’un a une idée ?
Merci de vos réponses
A voir également:
- [access]Comparer une date entre 2 dates
- Nombre de jours entre deux dates excel - Guide
- Excel si date comprise entre ✓ - Forum Excel
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. ✓ - Forum Graphisme
- Airpods 3 date de sortie - Guide
12 réponses
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
6 mars 2006 à 15:26
6 mars 2006 à 15:26
Salut,
Comme je te l'ai déjà dit, c'est ta structure qui te pose problème. Tu te compliques la vie inutilement...
Si tout (tes chalets réservés et non réservés) est dans la même table, il est très facile d'écrire une requête et de n'afficher que les dates libres. Avec ta structure, c'est beaucoup plus compliqué.
Tu peux utiliser la fonction DCount comme te l'a proposé HDU dans ton post précédent, si j'ai bon souvenir, pour tester si ta table archive est bien vide pour la date et le chalet considérés et renvoyer un MsgBox pour signaler qu'il est occupé mais ça risque de devenir lassant puisque tu ne peux pas afficher les dates libres...
Ou alors, tu prends le problème à l'envers et tu fondes ton sosu-formulaire sur la table archives pour afficher les dates occupées. Par exclusion, les autre seront libres...
Bon courage.
Comme je te l'ai déjà dit, c'est ta structure qui te pose problème. Tu te compliques la vie inutilement...
Si tout (tes chalets réservés et non réservés) est dans la même table, il est très facile d'écrire une requête et de n'afficher que les dates libres. Avec ta structure, c'est beaucoup plus compliqué.
Tu peux utiliser la fonction DCount comme te l'a proposé HDU dans ton post précédent, si j'ai bon souvenir, pour tester si ta table archive est bien vide pour la date et le chalet considérés et renvoyer un MsgBox pour signaler qu'il est occupé mais ça risque de devenir lassant puisque tu ne peux pas afficher les dates libres...
Ou alors, tu prends le problème à l'envers et tu fondes ton sosu-formulaire sur la table archives pour afficher les dates occupées. Par exclusion, les autre seront libres...
Bon courage.
Bonjour
Le problème que j’avais dans le post précédent est résolu
Il me reste le cas particulier que j’ai expliqué plus haut.
Si je fonde le sous formulaire sur la table archive(donc les dates occupées),cela n’empêchera pas l’encodage (si la personne n’a pas bien regardé) d’une date d’entrée avant celle occupée et après la date de sortie de l’autre réservation ,ces 2 dates seront « libre » mais pas pour toute la période une partie du milieu sera occupé 2*
Les dates libres sont celle qui ne sont pas dans la table archive,j’aurais bien voulu comparer la date d’entée au date d’entrée et date de sortie
Et la date de sortie au date d’entrée et date de sortie
Pour un même chalet
Je ne sais pas si j’ai bien explique le probleme ?
Merci de vos réponse
Le problème que j’avais dans le post précédent est résolu
Il me reste le cas particulier que j’ai expliqué plus haut.
Si je fonde le sous formulaire sur la table archive(donc les dates occupées),cela n’empêchera pas l’encodage (si la personne n’a pas bien regardé) d’une date d’entrée avant celle occupée et après la date de sortie de l’autre réservation ,ces 2 dates seront « libre » mais pas pour toute la période une partie du milieu sera occupé 2*
Les dates libres sont celle qui ne sont pas dans la table archive,j’aurais bien voulu comparer la date d’entée au date d’entrée et date de sortie
Et la date de sortie au date d’entrée et date de sortie
Pour un même chalet
Je ne sais pas si j’ai bien explique le probleme ?
Merci de vos réponse
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
7 mars 2006 à 11:06
7 mars 2006 à 11:06
DAD= date admisssion demandée
DA = date admission encodée
DSD = date sortie demandée
DS = date sortie
If DCOUNT(DAD < DA AND DSD > DS Or
DAD < DA AND DSD < DS Or
DAD > DA AND DSD<DS Or
DAD > DA AND DSD > DS AND DAD < DS Or
DAD < DA AND DSD < DS AND DSD > DA) > 0 Then
MsgBox("ces dates ne sont pas libres!")
(je pense que je n'ai rien oublié... Il faut bien sûr adapter les noms des champs et des tables)
DA = date admission encodée
DSD = date sortie demandée
DS = date sortie
If DCOUNT(DAD < DA AND DSD > DS Or
DAD < DA AND DSD < DS Or
DAD > DA AND DSD<DS Or
DAD > DA AND DSD > DS AND DAD < DS Or
DAD < DA AND DSD < DS AND DSD > DA) > 0 Then
MsgBox("ces dates ne sont pas libres!")
(je pense que je n'ai rien oublié... Il faut bien sûr adapter les noms des champs et des tables)
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
7 mars 2006 à 16:51
7 mars 2006 à 16:51
Euh, désolé, j'ai fait ça en vitesse et je me suis méchamment planté avec DCount: ma syntaxe est inexacte et surtout on ne peut appliquer de critères que sur un seul champ...
Tu pourrais filtrer la table archives avec les critères ci-dessus et, si le filtre en renvoie pas d'enregistrement considérer qu'il n'y a pas de réservation pour les dates recherchées.
Tu pourrais filtrer la table archives avec les critères ci-dessus et, si le filtre en renvoie pas d'enregistrement considérer qu'il n'y a pas de réservation pour les dates recherchées.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Dans les critères je dois aussi faire intervenir le nomchalet car pour une date(entée et sortie) je peux réserver plusieurs chalets différents.
Une idée ?
Merci
Dans les critères je dois aussi faire intervenir le nomchalet car pour une date(entée et sortie) je peux réserver plusieurs chalets différents.
Une idée ?
Merci
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
8 mars 2006 à 19:01
8 mars 2006 à 19:01
Bin, il suffit d'ajouter le critère mais pour chaque condition...
Si tu veux, envoie moi ta base (sans les données) pour que je teste...
guy.carpentier@versatel.be
Si tu veux, envoie moi ta base (sans les données) pour que je teste...
guy.carpentier@versatel.be
rodrigue62
Messages postés
190
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
10 janvier 2011
30
10 avril 2006 à 09:29
10 avril 2006 à 09:29
moi j'ai un problême un peu similaire puisqu'il consiste a trouver dans une liste de dates, une date comprise entre deux autres. La ou ca se complique, c'est que la limite superieure (date maxi) est connue, mais la date min doit etre la derniere entrée (avant la date maxi bien sur)
Je sais pas si mes explications sont suffisamment clair, ou meme si c'est possible, mais si vous avez la moindre petite idée, meme sans etre sur merci de me le faire savoir.
Je sais pas si mes explications sont suffisamment clair, ou meme si c'est possible, mais si vous avez la moindre petite idée, meme sans etre sur merci de me le faire savoir.
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
12 avril 2006 à 17:45
12 avril 2006 à 17:45
Qu'est-ce que tu veux dire par "la dernière entrée"?
Si tu tries ta table par date, il s'agirait du dernier enregistrement, non?... mais alors, il n'y aurait par définition pas d'autre enregistrement entre ce dernier et une date quelconque, plus tardive...
Je pense que je ne capte pas bien...
Si tu tries ta table par date, il s'agirait du dernier enregistrement, non?... mais alors, il n'y aurait par définition pas d'autre enregistrement entre ce dernier et une date quelconque, plus tardive...
Je pense que je ne capte pas bien...
rodrigue62
Messages postés
190
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
10 janvier 2011
30
12 avril 2006 à 19:39
12 avril 2006 à 19:39
ben en fait c'est parceque j'ai une table avec des coûts qui change de temps en temps a des dates non regulieres en fonction des circonstances. ensuite je dois realiser un bilan prenant en compte ses dates, ce bilan est realisé pour un mois donné, qui peut remonter a plusieurs mois avant la date actuel, et il faut donc que je prenne en compte le coût a la derniere date avant celle dont je desire faire le bilan
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
13 avril 2006 à 22:49
13 avril 2006 à 22:49
Comment est structurée la table qui contient la donnée "coût"?
Si le prix change, j'imagine que chaque enregistrement comporte un lien avec l'article concerné, une date de début et une date de fin.
Si oui, il n'est pas difficile de retrouver la valeur avec une formule du type Where DateAchat < DateFin and DateAchat > DateDébut.
Personnellement, j'ai envisagé le problème autrement: je dois facturer des prestations dont les prix augmentent (en général et heureusement pour moi qui suis le prestataire...)
Je me contente lorsqu'il y a une modification de prix de mettre à jour ma table listant les prestations possibles et leur prix et j'ai créé une autre table reprenant la référence au bénéficiaire, la date de la prestation et son coût (ainsi que des champs destinés à vérifier si j'ai bien été payé ou la date de la facturation...) De cette manière, je ne surcharge pas la table listant les prestations: puisque je ne me réfère à cette dernière que lorsque j'encode la prestation, je n'ai pas besoin de connaître "l'historique" des prix.
Si le prix change, j'imagine que chaque enregistrement comporte un lien avec l'article concerné, une date de début et une date de fin.
Si oui, il n'est pas difficile de retrouver la valeur avec une formule du type Where DateAchat < DateFin and DateAchat > DateDébut.
Personnellement, j'ai envisagé le problème autrement: je dois facturer des prestations dont les prix augmentent (en général et heureusement pour moi qui suis le prestataire...)
Je me contente lorsqu'il y a une modification de prix de mettre à jour ma table listant les prestations possibles et leur prix et j'ai créé une autre table reprenant la référence au bénéficiaire, la date de la prestation et son coût (ainsi que des champs destinés à vérifier si j'ai bien été payé ou la date de la facturation...) De cette manière, je ne surcharge pas la table listant les prestations: puisque je ne me réfère à cette dernière que lorsque j'encode la prestation, je n'ai pas besoin de connaître "l'historique" des prix.
rodrigue62
Messages postés
190
Date d'inscription
vendredi 18 février 2005
Statut
Membre
Dernière intervention
10 janvier 2011
30
14 avril 2006 à 08:58
14 avril 2006 à 08:58
Moi justement j'ai besoin de connaitre l'historique des coûts puisque l'on peut etre amené a me faire sortir le bilan d'une date antérieure, et afin d'etre le plus proche possible de la réalité il faut que je prenne en compte le coût de cette date et non celui en application actuellement.
Je vais peut etre retravailler mon mcd en mettant une table listant tous les mois concernés par un coût donné, ca sera plus simple que de partir dans des requetes compliquées.
merci quand meme a tous le monde pour l'aide que vous avez essayé de m'amner.
Je vais peut etre retravailler mon mcd en mettant une table listant tous les mois concernés par un coût donné, ca sera plus simple que de partir dans des requetes compliquées.
merci quand meme a tous le monde pour l'aide que vous avez essayé de m'amner.
Bonjour à tous;
j'ai une base de donnée qui traite pointage des ouvriers par chantiers et par quinzaine, le prob que j'ai c que des fois un meme ouvrier change de fonction, " par exemple la 1ere quinzaine il travaille comme gardien, la 2ème comme ouvrier, donc au niveau de la base elle garde juste la dernière fonction comme ca je perd son historique " alor y'a t'il un moyen pr que chaque quinzaine s'enregistre avec ses propres données, merci de votre collaboration.
j'ai une base de donnée qui traite pointage des ouvriers par chantiers et par quinzaine, le prob que j'ai c que des fois un meme ouvrier change de fonction, " par exemple la 1ere quinzaine il travaille comme gardien, la 2ème comme ouvrier, donc au niveau de la base elle garde juste la dernière fonction comme ca je perd son historique " alor y'a t'il un moyen pr que chaque quinzaine s'enregistre avec ses propres données, merci de votre collaboration.