Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Access 2007] Problème de requête

22 réponses
Avatar
Tourlou57
Bonjour à tous,


Me revoilà avec une question relative à ma base de données pour la gestion
d'un cabinet vétérinaire et comme j'ai toujours été super bien reçu, hop ...
je pose.

Détail de la base de données :

Table client :

N° réf client (numauto - clé primaire)
Nom
Adresse
CP
Ville
Tél maison
Tel bureau
Tél portable
Remarques (mémo)

TableAnimal

N° réf animal (numauto - clé primaire)
ID animal (numérique)
Nom de l'animal
Date de naissance
Espece
Race
Sexe
Type d'indentificateur
N° identificateur
Remarques (mémo)

TableVisite

N° réf visite (numauto - clé primaire)
ID Visite (numérique)
Date de la visite
Par le docteur (liste de choix)
Poids
Température
DATE VACCINS
Symptômes
Diagnostic
Traitement
Analyses demandées
Résultat des analyses
Remarques

Relation "un à plusieurs" entre TableClient et TableAnimal via N° réf client
et ID animal
Relation "un à plusieurs" entre TableAnimal et TableViste via N° ref animal
et ID Visite

J'avais déjà demandé un coup de main pour la création d'une requête
affichant les candidats aux vaccins un mois avant l'échéance et Gilles
m'avait conseillé cette procédure (qui fonctionnait super bien d'ailleurs)

SELECT TableClient.Nom, TableClient.Prénom, TableClient.Adresse,
TableClient.CP, TableClient.Ville, TableAnimal.[Nom de l'animal],
TableVisite.[Date vaccins], *
FROM (TableClient INNER JOIN TableAnimal ON TableClient.[N° réf
client]=TableAnimal.[ID animal]) INNER JOIN TableVisite ON TableAnimal.[N°
réf animal]=TableVisite.[ID visite]
WHERE (((TableVisite.[Date vaccins])<=DateAdd("m",-11,Date())))
ORDER BY TableClient.Nom;

Le problème est le suivant :

J'ai simulé, dans ma base de données, une vaccination du chat Félix (ça
c'est original !!! ;o) ) à un an moins un mois et ma requête me l'affiche
bien (là rien à dire).
J'ai alors entré une nouvelle visite avec la date du jour dans le champ
"date vaccination" de notre ami Félix et zut et super zut, la requête me
garde la date à un an moins un mois et m'affiche quand même le petit Félix
(le pauvre, il va faire une over dose de vaccin).

Autrement dit, comment faire pour que cette requête prenne en charge la
dernière date de vaccination ?

En tapant cette prose, je me rends compte aussi que la vétérinaire va
devoir, à chaque visite, retaper la date de vaccination. Existe-t-il une
solution pour que cette date s'affiche automatiquement dans le champ adéquat
et ce tant que le doc ne l'aura pas modifiée ?

Désolé pour mon inexpérience en Access, c'est la première fois que j'y mets
mon gros nez d'où les questions à répétition et certainement basiques pour
beaucoup.

De toute façon, un super grand merci pour le coup de main éventuel et une
bonne journée à tout le monde.

Philippe

2 réponses

1 2 3
Avatar
Gloops
Raymond [mvp] a écrit, le 26/05/2007 17:53 :
à première vue, il faut tranférer la date de vaccination sur l'an imal, mais
j'ai vu qu'il y avait un agenda des vaccins donc il faut voir s'il y a
interconnexion ( je regarderai).


Pardon pour mon impatience, je vois que j'ai posé une question alors qu e
tu y avais déjà répondu depuis une vingtaine de minutes.
Tu as raison de réfléchir, ce n'est pas le tout de frétiller comme un
jeune toutou :)

Avatar
Tourlou57
Le pire est que j'avais commencé par mettre ce champ "date vaccins" dans le
sous-formulaire "animal". En essayant cette base de données, je me suis rendu
compte du problème suivant:

Si la vétérinaire vaccine un animal, elle va entrer cette opération dans la
table "visite" de manière à garder ses dossiers en ordre et avoir une trace
de ce qu'elle a fait, elle devait encore modifier la table "animal" en y
changeant la date de vaccination. Pour moi c'était la porte ouverte aux
oublis et aux dossiers mal tenus.

C'est comme ça que j'ai changé mon fusil d'épaule et mis la date vaccins
dans "animal". Maintenant, je suis dans le jus ;o)))

Ceci étant dit, je suis pratiquement certain que la solution existe mais je
n'ai pas les connaissances suffisantes pour la trouver. Heureusement que vous
êtes là ;o)

Maintenant, tu as parfaitement raison, un peu de lecture ne fait et ne fera
jamais de tort, je m'y mets ;o)

Bonne soirée Gloops


OK, en l'occurrence ce n'est pas Access qu'il convient de dompter
d'abord, mais une méthode d'analyse.

Consacrer un moment à ceci pourrait aider :
http://fr.wikipedia.org/wiki/Merise_(informatique)

Merise fait aussi l'objet de plein d'autres sites, Google saura bien les
trouver, mais déjà, au premier coup d'œil, il me semble que là on a un
bon aperçu. (Après si on cherche autre chose il y a aussi quantité de
bouquins sur la question, pour ne pas parler de formations.)

Honnêtement je pense qu'il faut compter quelques jours pour commencer à
pouvoir en faire quelque chose, mais grâce à ça on est capable de
beaucoup mieux appréhender la structure de ses données, ça s'avère donc
rapidement payant, surtout si on veut se lancer soi-même dans le
développement.

________________________________________
Tourlou57 a écrit, le 26/05/2007 17:26 :
Bonjour Gloops

Tu as parfaitement raison, la date de vaccin est prévue pour chaque visite
et c'est peut-être là que se trouve mon erreur. Pas facile de dompter l'ami
Access quand on a pas l'habitude et quand il faut faire quelque chose d'aussi
simple que possible pour l'utilisateur. Je vais attendre la réaction de notre
ami Raymond et voir ce qu'il propose quitte à modifier une fois encore le
système (ce ne sera jamais que la 30ème fois :o))))))) ). Faire et défaire
c'est toujours travailler ;o)

Merci à toi aussi pour le coup de main, ce forum est décidemment bien sympa.

Amicalement

Philippe







1 2 3