Access Champ calculé Date maximum

Résolu/Fermé
lulu37 Messages postés 76 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 8 avril 2016 - 8 déc. 2010 à 20:16
blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 - 12 déc. 2010 à 21:18
Bonjour,

J'ai créé une petite base de données pour suivre des rendez vous clients.
Je souhaiterais faire apparaître la date du dernier RDV pour chaque client sur un formulaire mais je n'y arrive pas.

Je m'explique :

J'ai 2 tables
- 1 pour la liste des clients
- 1 pour les entretiens (Comptes-rendus d'entretien) dont champ "date RDV"
ces 2 tables sont reliées par la refClient

Mon formulaire affiche le listing des clients
J'ai mis dans mon champ "Dernier RDV" du formulaire :
=MaxDom("[DateRDV]";"[Comptes-rendus d'entretien]")

Mais, le résultat retourné est une date unique : la date max pour tous les clients confondus

Avez vous la solution SVP ?

Merci d'avance

Lulu

Access 2003

2 réponses

blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 3 317
9 déc. 2010 à 15:12
Salut,

ce qui arrive est tout à fait normal.

Il faut rajouter un paramètre à maxdom, dans lequel tu lui indiques la refclient pour laquelle du veux le maxi...
1
lulu37 Messages postés 76 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 8 avril 2016 13
9 déc. 2010 à 17:25
Salut blux,
Je suis débutante sous access, du coup je ne comprend pas encore très bien la synthaxe
Comment je peux adapter ma formule ?

=MaxDom("[DateRDV]";"[Comptes-rendus d'entretien]";"[RefClient]"= ??? )
Merci d'avance
0
blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 3 317
9 déc. 2010 à 17:32
En principe, ça devrait être : "[RefClient] = " & nom_du_champ_du_formulaire)
0
lulu37 Messages postés 76 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 8 avril 2016 13
10 déc. 2010 à 13:52
Re,

=MaxDom("[DateRDV]";"[CR]";"[RefClient]=" & [RefClient])

Ca y est ça marche !
Merci beaucoup
0
blux Messages postés 26531 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 16 décembre 2024 3 317
12 déc. 2010 à 21:18
Depuis le temps que je milite pour les fonctions de domaine, je suis ravi de voir que ça peut servir, même à 'une débutante sous access', preuve que ce n'est pas si compliqué...
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
9 déc. 2010 à 09:52
Bonjour lulu37,

Avec cette syntaxe vous obtiendrez, après adaptation, je pense, satisfaction.
A noter qu'en remplaçant last par first vous obtiendrez le contraire .....

SELECT <Table.champ>, Last(<TABLE>.[<champ_date>]) AS DernierDe<champ_date>]
FROM VALEURS
GROUP BY <Table.champ>
ORDER BY <Table.champ>, Last(<TABLE>.[<champ_date>]);

Cordialement
0
lulu37 Messages postés 76 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 8 avril 2016 13
9 déc. 2010 à 17:37
Bonjour Jean Jacques,

Comme je l'ai annoncé à Blux, je suis débutante et ai du mal avec toutes ces syntaxes.
J'ai indiqué ceci dans la source de mon contrôle mais ça m'indique une valeur d'erreur #NOM?

SELECT CR.RefClient, Last(CR.[DateRDV]) AS DernierDe [DateRDV] FROM VALEURS GROUP BY CR.RefClient ORDER BY CR.RefClient, Last(CR.[DateRDV]) ;

je ne fais donc référence qu'à ma table CR (=comptes rendus d'entretien) dans laquelle se trouvent les dates des RDV champ DateRDV et la RefClient pour laquelle je souhaite chaque valeur max....??

Où est l'erreur ?

Si vous pouvez m'expliquer un peu le principe de la syntaxe ça pourrait m'être très utile pour la suite également

Merci d'avance

Lulu
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
9 déc. 2010 à 18:09
Bonsoir lulu37,

C'est Blux qui tient le bon bout, si j'ose dire. Ce qu'il propose est adapté à votre problématique.

Car dans le cas présent, ma solution n'est pas adaptée.
Cordialement
0