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

10 réponses

1 2 3
Avatar
Raymond [mvp]
Bonjour.

dans ta requête tu indiques TableVisite.[Date vaccins] et tu parles de
"date vaccination" , est-ce le même champ ?
si oui, il semblerait que la date de vaccination n'est pas prise en compte
comme si le contrôle de ton formulaire [Date vaccins] n'avait pas de
controle-source et qu'il était indépendant. à vérifier.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Tourlou57" a écrit dans le message de
news:
| 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])<ÚteAdd("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
|
|
|
Avatar
Tourlou57
Bonjour Raymond et merci de te pencher sur mon cas.

Le champ en question porte bien le nom de DATE VACCINS, manque de précision
de ma part sur ce coup là, désolé ;o) (miilard, qu'est-ce que j'ai déjà ramé
sur c'te base de données, pfffffffff).

Bonne journée

Philippe


Bonjour.

dans ta requête tu indiques TableVisite.[Date vaccins] et tu parles de
"date vaccination" , est-ce le même champ ?
si oui, il semblerait que la date de vaccination n'est pas prise en compte
comme si le contrôle de ton formulaire [Date vaccins] n'avait pas de
controle-source et qu'il était indépendant. à vérifier.


Avatar
Raymond [mvp]
as-tu vérifié si ce champ placé sur ton formulaire fait bien référence au
champ de ta table dans la propriété Source dans l'onglet Données des
propriétés ? si oui, la valeur placée dans la table doit apparaître sur le
formulaire et toute modification apparaîtra obligatoirement.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Tourlou57" a écrit dans le message de
news:
| Bonjour Raymond et merci de te pencher sur mon cas.
|
| Le champ en question porte bien le nom de DATE VACCINS, manque de
précision
| de ma part sur ce coup là, désolé ;o) (miilard, qu'est-ce que j'ai déjà
ramé
| sur c'te base de données, pfffffffff).
|
| Bonne journée
|
| Philippe
|
|
| > Bonjour.
| >
| > dans ta requête tu indiques TableVisite.[Date vaccins] et tu parles de
| > "date vaccination" , est-ce le même champ ?
| > si oui, il semblerait que la date de vaccination n'est pas prise en
compte
| > comme si le contrôle de ton formulaire [Date vaccins] n'avait pas de
| > controle-source et qu'il était indépendant. à vérifier.
|
Avatar
Tourlou57
Tout va bien de ce côté Raymond. En fait la base de données fonctionne très
bien sauf en ce qui concerne cette requête qui s'obstine à ne pas me donner
ce que je lui demande.

Cette requête devrait m'afficher les animaux qui sont arrivés à l'échéance
de leurs vaccins et ce un mois avant cette échéance. De cette manière, le
véto peut envoyer les invitations sans devoir parcourir l'intégralité de la
base de données.

Cela fonctionne très bien mais la requête ne tient compte que de l'avant
dernier enregistrement du champ "Date vaccins".

Pour exemple:

J'ai fait le test avec la date au 25/03/2006, la requête me l'affiche (c'est
parfait). Je simule une visite supplémentaire pour le même animal et une
vaccination au 25/05/2007 et la requête m'affiche quand même le rappel pour
le 25/03/2006 (là y a un problème). La requête ne devrait plus tenir compte
de la date au 25/03/2006 et je patine ...



as-tu vérifié si ce champ placé sur ton formulaire fait bien référence au
champ de ta table dans la propriété Source dans l'onglet Données des
propriétés ? si oui, la valeur placée dans la table doit apparaître sur le
formulaire et toute modification apparaîtra obligatoirement.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


Avatar
Raymond [mvp]
ça y est j'ai compris, tu modifies le champ et tu lances la requête alors
que l'enregistrement n'est pas encore enregistré dans la table, donc c'est
la date antérieure qui est prise en compte.
avant de lancer ta requête, exécute un rafraichissement par:
Me.Dirty = False
ou Me.Requery

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Tourlou57" a écrit dans le message de
news:
| Tout va bien de ce côté Raymond. En fait la base de données fonctionne
très
| bien sauf en ce qui concerne cette requête qui s'obstine à ne pas me
donner
| ce que je lui demande.
|
| Cette requête devrait m'afficher les animaux qui sont arrivés à l'échéance
| de leurs vaccins et ce un mois avant cette échéance. De cette manière, le
| véto peut envoyer les invitations sans devoir parcourir l'intégralité de
la
| base de données.
|
| Cela fonctionne très bien mais la requête ne tient compte que de l'avant
| dernier enregistrement du champ "Date vaccins".
|
| Pour exemple:
|
| J'ai fait le test avec la date au 25/03/2006, la requête me l'affiche
(c'est
| parfait). Je simule une visite supplémentaire pour le même animal et une
| vaccination au 25/05/2007 et la requête m'affiche quand même le rappel
pour
| le 25/03/2006 (là y a un problème). La requête ne devrait plus tenir
compte
| de la date au 25/03/2006 et je patine ...
Avatar
Tourlou57
Désolé Raymond, ça ne fonctionne pas. Je dois avoir fait une erreur quelque
part, le tout est de savoir où ...

Cette bon sang de requête me garde toujours l'avant dernière date entrée :o(

Haaaa l'odeur de la moutarde qui monte au nez, huummm :o)))))


ça y est j'ai compris, tu modifies le champ et tu lances la requête alors
que l'enregistrement n'est pas encore enregistré dans la table, donc c'est
la date antérieure qui est prise en compte.
avant de lancer ta requête, exécute un rafraichissement par:
Me.Dirty = False
ou Me.Requery

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


Avatar
Raymond [mvp]
je ne comprends plus.
ta date de vaccination est bien sur ton formulaire ? la source du controle
de formulaire est bien le champ de la table TableVisite ?
quand tu fermes ton formulaire et que tu le réouvres, que retrouves-tu ?
l'ancienne ou la nouvelle date ? si c'est l'ancienne c'est que ta table
n'est pas mise à jour par le formulaire.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Tourlou57" a écrit dans le message de
news:
| Désolé Raymond, ça ne fonctionne pas. Je dois avoir fait une erreur
quelque
| part, le tout est de savoir où ...
|
| Cette bon sang de requête me garde toujours l'avant dernière date entrée
:o(
|
| Haaaa l'odeur de la moutarde qui monte au nez, huummm :o)))))
|
|
| > ça y est j'ai compris, tu modifies le champ et tu lances la requête
alors
| > que l'enregistrement n'est pas encore enregistré dans la table, donc
c'est
| > la date antérieure qui est prise en compte.
| > avant de lancer ta requête, exécute un rafraichissement par:
| > Me.Dirty = False
| > ou Me.Requery
| >
| > --
| > @+
| > Raymond Access MVP http://OfficeSystem.Access.free.fr/
| > Pour débuter sur le forum: http://www.mpfa.info/
| > Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
| >
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273
|
Avatar
Tourlou57
La base de donnée se compose comme ceci :

Formulaire client associé à la Tableclient
Dans ce formulaire une boite à onglet avec les sous formulaires "Données
animal" (onglet 1) et "Données visites" (onglet 2). En effet, chaque client
peut avoir plusieurs animaux et chaque animal peut tomber malade plusieurs
fois.

La base de données fonctionne très bien, j'ai même un historique des visites
qui est créé via un clic sur bouton et ce pour l'animal à l'écran. Tout ça
pour dire que tout fonctionne bien sauf cette requête que j'ai appelée
"Agenda vaccins" qui refuse de prendre en compte la dernière date de
vaccination. Je suis comme toi, je n'y comprends rien (déjà que je débute,
faut pas demander ;o))))


je ne comprends plus.
ta date de vaccination est bien sur ton formulaire ? la source du controle
de formulaire est bien le champ de la table TableVisite ?
quand tu fermes ton formulaire et que tu le réouvres, que retrouves-tu ?
l'ancienne ou la nouvelle date ? si c'est l'ancienne c'est que ta table
n'est pas mise à jour par le formulaire.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


Avatar
Raymond [mvp]
Tu peux m'envoyer ta base par mail en fichier zip, si possible ? je jetterai
un oeil. prend l'adresse dans ma signature et enlève les xyz de sécurité.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Tourlou57" a écrit dans le message de
news:
| La base de donnée se compose comme ceci :
|
| Formulaire client associé à la Tableclient
| Dans ce formulaire une boite à onglet avec les sous formulaires "Données
| animal" (onglet 1) et "Données visites" (onglet 2). En effet, chaque
client
| peut avoir plusieurs animaux et chaque animal peut tomber malade plusieurs
| fois.
|
| La base de données fonctionne très bien, j'ai même un historique des
visites
| qui est créé via un clic sur bouton et ce pour l'animal à l'écran. Tout ça
| pour dire que tout fonctionne bien sauf cette requête que j'ai appelée
| "Agenda vaccins" qui refuse de prendre en compte la dernière date de
| vaccination. Je suis comme toi, je n'y comprends rien (déjà que je débute,
| faut pas demander ;o))))
|
Avatar
Tourlou57
Merci Raymond, c'est parti à l'instant.


Tu peux m'envoyer ta base par mail en fichier zip, si possible ? je jetterai
un oeil. prend l'adresse dans ma signature et enlève les xyz de sécurité.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Tourlou57" a écrit dans le message de
news:
| La base de donnée se compose comme ceci :
|
| Formulaire client associé à la Tableclient
| Dans ce formulaire une boite à onglet avec les sous formulaires "Données
| animal" (onglet 1) et "Données visites" (onglet 2). En effet, chaque
client
| peut avoir plusieurs animaux et chaque animal peut tomber malade plusieurs
| fois.
|
| La base de données fonctionne très bien, j'ai même un historique des
visites
| qui est créé via un clic sur bouton et ce pour l'animal à l'écran. Tout ça
| pour dire que tout fonctionne bien sauf cette requête que j'ai appelée
| "Agenda vaccins" qui refuse de prendre en compte la dernière date de
| vaccination. Je suis comme toi, je n'y comprends rien (déjà que je débute,
| faut pas demander ;o))))
|





1 2 3