OVH Cloud OVH Cloud

problème de crochet

7 réponses
Avatar
Andrea Parker
Bonjour

dans une appli qui fonctionne avec access 2002 j'ai un champ calculé
dans un formulaire comme cela
=Max([T_Facture]![Num_Facture])+1

donc lorsque j'ouvre mon formulaire en mode nouveau le calcul se fait
correctement par rapport à la table et lorsque je clique sur un bouton
le numéro calculé est copié dans le Num_facture

j'ai voulu reproduire dans une autre base le même genre d'incrémentation
(je ne veux pas de numéro auto, car je compte faire une concaténation)
soit un champs nommé MaxOrdre qui contient la formule
=Max([Clients]![NumOrdre])+1

et access transforme en

=Max(Clients!NumOrdre+1)
et bien sûr cela ne fonctionne pas, comme s'il ne trouvait pas la table

ma table est nommée Clients
et mon champ dans cette table est bien nommé NumOrdre

avez vous une explication ?

Merci d'avance

7 réponses

Avatar
Eric
Andrea Parker écrivait news:40A9DA45.9010100
@laposte.net:

Bonjour

dans une appli qui fonctionne avec access 2002 j'ai un champ calculé
dans un formulaire comme cela
=Max([T_Facture]![Num_Facture])+1

donc lorsque j'ouvre mon formulaire en mode nouveau le calcul se fait
correctement par rapport à la table et lorsque je clique sur un bouton
le numéro calculé est copié dans le Num_facture

j'ai voulu reproduire dans une autre base le même genre d'incrémentation
(je ne veux pas de numéro auto, car je compte faire une concaténation)
soit un champs nommé MaxOrdre qui contient la formule
=Max([Clients]![NumOrdre])+1

et access transforme en

=Max(Clients!NumOrdre+1)
et bien sûr cela ne fonctionne pas, comme s'il ne trouvait pas la table

ma table est nommée Clients
et mon champ dans cette table est bien nommé NumOrdre

avez vous une explication ?

Merci d'avance




Bonjour Andrea

Ton formulaire ne s'appelerait-il pas aussi Clients ?

tu pourrais mettre comme source de ton controle MaxOrdre :
=DMax(("NumOrdre","Clients") +1
là tu prendrais le + grand NumOrdre de ta table Clients +1

Eric

Avatar
Andrea Parker
mon formulaire s'appelle nouveau client

ta formule ne passe pas il ne reconnait pas Dmax





Bonjour Andrea

Ton formulaire ne s'appelerait-il pas aussi Clients ?

tu pourrais mettre comme source de ton controle MaxOrdre :
=DMax(("NumOrdre","Clients") +1
là tu prendrais le + grand NumOrdre de ta table Clients +1

Eric


Avatar
Eric
Andrea Parker écrivait news:40A9ED15.505
@laposte.net:

mon formulaire s'appelle nouveau client

ta formule ne passe pas il ne reconnait pas Dmax





Bonjour Andrea

Ton formulaire ne s'appelerait-il pas aussi Clients ?

tu pourrais mettre comme source de ton controle MaxOrdre :
=DMax(("NumOrdre","Clients") +1
là tu prendrais le + grand NumOrdre de ta table Clients +1

Eric





Essaies alors
=MaxDom("[NumOrdre];""Clients") +1 equivalent en Français car je ne sais
pas où tu mets cette formule. Si c'est dans la source du contrôle, il faut
la mettre ainsi.
La version précédente etait la version US, pour le code

Eric


Avatar
Eric
Faute de frappe, lire :
=MaxDom("[NumOrdre]";"Clients") +1

Eric

Essaies alors
=MaxDom("[NumOrdre];""Clients") +1 equivalent en Français car je ne
sais
pas où tu mets cette formule. Si c'est dans la source du contrôle, il
faut la mettre ainsi.
La version précédente etait la version US, pour le code

Eric




Avatar
Andrea Parker
Oui d'ac j'avais déjà corrigé la faute de frappe
en fait j'ai trouvé
la formule se met dans le controle source d'un formalaire

j'ai mis :
=Max(Clients!NumOrdre)+1
et maintenant cela fonctionne
mystère et boule de gomme !

bref j'ai donc un bouton qui permet d'ajouter un client
le numéro s'incrémente grace aussi à une macro qui prend
le max+ 1 et le copie dans numordre
et la fonction actualise pour mettre la table à jour c'est ok

par contre lorsque je reclique sur mon bouton nouveau, il affiche
en un premier temps, la fiche n° 1 et je suis obligée de recliquer
sur mon bouton ajouter pour avoir mon formulaire vierge

bizarre non ?
Avatar
3stone
Salut,

"Andrea Parker"
Oui d'ac j'avais déjà corrigé la faute de frappe
en fait j'ai trouvé
la formule se met dans le controle source d'un formalaire

j'ai mis :
=Max(Clients!NumOrdre)+1


Cela ne veut rien dire...


et maintenant cela fonctionne
mystère et boule de gomme !



Comme contrôle source d'un formulaire, il faut une table
ou mieux, une requête !!!

Par contre, pour numéroté un client, tu peux utiliser
comme valeur par défaut dans la zone de texte [NuméroClient]
du formulaire:

=DMax("[ChampNuméroDuClient]";"[TableClients]")+1



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------

Avatar
Andrea Parker
merci
en effet c'est encore mieux
====================


Par contre, pour numéroté un client, tu peux utiliser
comme valeur par défaut dans la zone de texte [NuméroClient]
du formulaire:

=DMax("[ChampNuméroDuClient]";"[TableClients]")+1