Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2011, 09h08   #1
Nouveau Membre du Club
 
Inscription : octobre 2009
Messages : 127
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 127
Points : 33
Points : 33
Par défaut Requête sélection date

Bonjour,

J'aurais besoin d'un conseil pour créer une requête.

J'ai des contrat d'entretien comprenant de une à six visites annuelles.
Dans mes fiches clients j'ai créer des champs (Date V1, Date V2, etc) qui prévoient les dates auxquels ces entretien doivent avoir lieu :
Date V1 1/01/2012
Date V2 1/06/2012 etc...
Pour chaque champ j'ai une case à cocher (C-V1, C-V2, etc) et lorsque par exemple l'entretien n°1 à été réalisé, je coche la case C-V1 et la date est augmenté d'une année (1/01/2012 devient 1/01/2013).

J'aimerais créer une requête et ensuite un formulaire qui me listerait tous les entretien que je dois réaliser en janvier de l'année N, en février de l'année N etc... et si la case à cocher C-V1, C-V2 etc... est cochée que ces entretiens n'apparaissent plus.
En revanche s'ils n'ont pas été réalisés le mois prévus (janvier par exemple), qu'ils soient reportés sur la liste du mois suivant.

J'ai déjà créer des requêtes où je saisi le mois et l'année pour sélectionner ma demande, mais là j'ai de une à six dates donc je ne sais pas comment faire.

Si quelqu'un à une idée à me proposer je suis preneur...

Cordialement,
maringot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 11h39   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 184
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 184
Points : 2 814
Points : 2 814
Bonjour Maringot,

Il y a, de base, un problème de conception qui, à terme, te donnera bien d'autres soucis...

D'après ce que j'ai compris,
Citation:
Envoyé par Maringot
Dans mes fiches clients j'ai créer des champs (Date V1, Date V2, etc) qui prévoient les dates auxquels ces entretien doivent avoir lieu .../... Pour chaque champ j'ai une case à cocher (C-V1, C-V2, etc) .../...
==> Table actuelle :
Client(Id_Client, Nom, Date-V1, C-V1, Date-V2, C-V2, Date-V3, C-V3, Date-V4, C-V4, Date-V5, C-V5, Date-V6, C-V6, ...)

Il eu été plus judicieux de créer les tables suivantes :
Client(Id_Client, Nom, ...)
Visite(#Id_Client, Date_Visite, Visite_Effectuee, Observations (peut-être), ...)

Relation
Client 1---∞ Visite, via Id_Client.

Cela te permettrait d'obtenir toutes tes dates dans la même table et, en plus, de conserver un historique de tes visites (choses impossible, en l'état). Par conséquent, tes requêtes s'en trouveraient plus aisées à concevoir.

D'autre part, je pense que les dates de visites se situent au niveau du contrat d'entretien, et non au niveau du client, mais c'est une autre histoire...

Sinon, si tu ne peux/veux pas modifier la structure de ta base, ta problématique objet de ce fil sera résolue par des VraiFaux() imbriqués et/ou des requêtes intermédiaires.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 11h40   #3
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
Bonjour,

on doit pouvoir arriver à ses fins avec cette syntaxe un peu particulière pour chercher un mois précis parmi les 6 dates:
Code sql :
1
2
3
4
5
6
7
8
9
10
SELECT * FROM LaTable
 WHERE "12/2011" IN 
(
      format([DateV1], "mm/yyyy"),
      format([DateV2], "mm/yyyy"),
      format([DateV3], "mm/yyyy"), 
      format([DateV4], "mm/yyyy"), 
      format([DateV5], "mm/yyyy"),
      format([DateV6], "mm/yyyy")
) ;
à adapter, mais avec une table des visites :
Visite(idVisite, #idClient, DateVisite, StatutVisite={prévue, en cours, reportée, effectuée, …}),
la requête pour obtenir le même résultat devient élémentaire, performante sans pour autant demander des efforts démesurés au niveau du formulaire et ses cases à cocher (à mon avis):
Code sql :
SELECT idClient FROM Visite WHERE format([DateVisite], "mm/yyyy")="12/2011" AND StatutVisite="prévue";

à+
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/01/2012, 11h42   #4
Nouveau Membre du Club
 
Inscription : octobre 2009
Messages : 127
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 127
Points : 33
Points : 33
Bonjour,

Effectivement c'est plus simple et plus logique de créer une autre table et ç fonctionne mieux, maintenant je vais le peaufiner.

Merci de votre aide,
Maringot
maringot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h33.


 
 
 
 
Partenaires

Hébergement Web