OVH Cloud OVH Cloud

Histoire d'incrémentation

5 réponses
Avatar
alte94
Bon, je ne comprends décidémment rien à la philosophie d'Access.

J'ai un truc archi simple à faire qui prendrait moins de 5 mn sous
FileMaker ou 4D. il faut :

A - J'ai une table [Param] ne contenant qu'un seul enregistrement avec
tous les paramètres pour la base (des nos d'ordre).
B - J'ai une table [Commandes] avec un lien sur [Param] avec un champ
[NoCde] de chaque côté.

1) Il faut que lorsque j'arrive dans le champ [NoCde] de [Commandes] je
teste pour savoir si c'est un nouvel enregistrement et si le champ ne
contient pas déjà une valeur.

2) Si les deux sont vrais, il faut que je récupère le No de commande
dans [Param] et que je mette cette valeur dans le champ NoCde de
[Commandes].

3) Si je valide l'enregistrement [Commandes], il faut que j'incrémente
la valeur de 1 et que je stocke cette valeur dans [Param][NoCde].

Merde, c'est quand même du niveau maternelle, ça ! Ben je sais pas faire
comprendre ça à ce soft étrange qui ne connaît ni la notion de sélection
, ni la notion d'enregistrement actif.

Merci,
Alain

5 réponses

Avatar
argyronet
Bonjour...
Ah le monde de mac est décidément à faire rêver, hein !!!
J'ai gouté à Filemaker, j'en suis revenu... bien qu'ils aient fait quelque
progrès depuis; Quant à 4D, bien, euh...
Bref, pour votre question, l'opération que vous voulez faire est simple;
Il suffit de vérifier à travers une requête idoine que l'existence des deux
valeurs se fait dans les deux tables.
Avec une procédure et DAO via la propriété NoMatch, HasRecords ou
RecordCount selon la façon dont vous exploitez le processus vous devriez
arriver à vos fins.
On sent tout de même que dans vos propos, vous avez une dent conte MS.
Au passage, vous seriez sous Oracle, vous auriez les mêmes soucis...

Argy
--
Mes tutoriels sur http://argyronet.developpez.com/

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient.
Si vous n´obtenez pas la réponse voulue, communiquez différemment



Bon, je ne comprends décidémment rien à la philosophie d'Access.

J'ai un truc archi simple à faire qui prendrait moins de 5 mn sous
FileMaker ou 4D. il faut :

A - J'ai une table [Param] ne contenant qu'un seul enregistrement avec
tous les paramètres pour la base (des nos d'ordre).
B - J'ai une table [Commandes] avec un lien sur [Param] avec un champ
[NoCde] de chaque côté.

1) Il faut que lorsque j'arrive dans le champ [NoCde] de [Commandes] je
teste pour savoir si c'est un nouvel enregistrement et si le champ ne
contient pas déjà une valeur.

2) Si les deux sont vrais, il faut que je récupère le No de commande
dans [Param] et que je mette cette valeur dans le champ NoCde de
[Commandes].

3) Si je valide l'enregistrement [Commandes], il faut que j'incrémente
la valeur de 1 et que je stocke cette valeur dans [Param][NoCde].

Merde, c'est quand même du niveau maternelle, ça ! Ben je sais pas faire
comprendre ça à ce soft étrange qui ne connaît ni la notion de sélection
, ni la notion d'enregistrement actif.

Merci,
Alain



Avatar
Dan
"alte94" a écrit dans le message de news:
uwUk%
Bon, je ne comprends décidémment rien à la philosophie d'Access.

J'ai un truc archi simple à faire qui prendrait moins de 5 mn sous
FileMaker ou 4D. il faut :

A - J'ai une table [Param] ne contenant qu'un seul enregistrement avec
tous les paramètres pour la base (des nos d'ordre).
B - J'ai une table [Commandes] avec un lien sur [Param] avec un champ
[NoCde] de chaque côté.

1) Il faut que lorsque j'arrive dans le champ [NoCde] de [Commandes] je
teste pour savoir si c'est un nouvel enregistrement et si le champ ne
contient pas déjà une valeur.

2) Si les deux sont vrais, il faut que je récupère le No de commande dans
[Param] et que je mette cette valeur dans le champ NoCde de [Commandes].

3) Si je valide l'enregistrement [Commandes], il faut que j'incrémente la
valeur de 1 et que je stocke cette valeur dans [Param][NoCde].

Merde, c'est quand même du niveau maternelle, ça ! Ben je sais pas faire
comprendre ça à ce soft étrange qui ne connaît ni la notion de sélection ,
ni la notion d'enregistrement actif.

Merci,
Alain


Salut Alain,

Plus simple :
- sur ajout d'une commande, définir la valeur du numéro à l'aide de :
=maxdom("[NoCde];[Commandes]")+1

Plus besoin de gérer des nocde en paramètres...

A+ Dan

Avatar
alte94
argyronet wrote:
Bonjour...
Ah le monde de mac est décidément à faire rêver, hein !!!
J'ai gouté à Filemaker, j'en suis revenu... bien qu'ils aient fait quelque
progrès depuis; Quant à 4D, bien, euh...


Merci pour la réponse.
Effectivement, j'ai passé 10 ans à bosser sur du Mac et j'ai même fait
du développement en professionnel sur 4D, FM étant à l'époque considéré
comme un "jouet", mais il faut au moins reconnaître qu'un débutant
pouvait gérer ses données sans penser au suicide.

Maintenant, ça fait 11 ans que je bosse sur du PC (donc pas plus anti-MS
qu'un autre), j'ai à nouveau besoin de faire de la gestion de données,
et là ... Access ..., c'est archi simple pour ce qui est de la création
de formulaires et SF, de requêtes, et d'états, mais même en connaissant
très bien Excel et en utilisant du VBA lorsque c'est nécessaire, ben je
ne comprends rien au fonctionnement de ce soft.

Désolé pour le HS, je voulais juste dire que je ne connais pas du tout
DAO :-) RecordCount, facile, mais le reste ...

Alain

Avatar
alte94
Dan wrote:

Salut Alain,

Plus simple :
- sur ajout d'une commande, définir la valeur du numéro à l'aide de :
=maxdom("[NoCde];[Commandes]")+1

Plus besoin de gérer des nocde en paramètres...

A+ Dan


Salut Dan,


Je ne l'avais pas précisé pour éviter de compliquer le pb mais en fait
je dois gérer 3 séries de nos de commande, et je fais appel à telle ou
telle série en fonction du contenu d'un champ [TypeCde] préalablement
renseigné.

Merci pour ton aide,
Alain

Avatar
Dan
Salut Dan,

Je ne l'avais pas précisé pour éviter de compliquer le pb mais en fait je
dois gérer 3 séries de nos de commande, et je fais appel à telle ou telle
série en fonction du contenu d'un champ [TypeCde] préalablement renseigné.

Merci pour ton aide,
Alain


Bah, il doit bien y avoir dans tes tables un champ qui permet de savoir sur
quelle série on travaille, non ?
Il suffit dans ce cas de faire un ...

=Rechdom("[ProchainNuméro];[Recherche Prochaine Commande]")+1

où Recherche Prochaine Commande est une requête filtrée sur la série, qui va
chercher le MaxDom de mon précédent post...

A+ Dan