OVH Cloud OVH Cloud

Numéro de commande créé à partir "Année"+"Numéro auto"

5 réponses
Avatar
Maison de l'eau
Bonjour,

Je travaille sur ACCESS 2002.

Je suis en train de créer une table 'Commande'
Les deux premiers champs sont :
RefCommande Numéro auto
DateCommande Date (par ex. 13-mar-04)

Je souhaiterai avoir un troisième champ découlant des deux premiers :
N°Commande "Année"+"numéro auto de l'année" (par ex. 040026)
Format : "00"+"0000"

Il faudrait que le nombre après les deux premiers chiffre (année) redémarre
à 0 au début de chaque année et qu'il n'y ait pas de trous.

Est-possible ?

Si oui, merci de me détailler la procédure, étant plus que novice.

Merci

5 réponses

Avatar
Phil
Bonjour,
J'ai developpe une appli qui donne la possibilité aux utilisateurs d'adapter
leur numerotation de commande (entre autre).
Tu as uniquement besoin de 2 champs pour cela :
- la date de creation de la commande ex. : 27/08/2004 (date non modifiable)
- un champ de numerotation (entier - indexe duplicable)
Quand tu crées une nouvelle commande, il doit prendre la date du jour et la
verifier avec la date de l'enregistrement precedent :
- si les annees correspondent, tu prends la champ de numerotation precedent
et tu fait + 1
- sinon, ton champ numeratation devient 1
Sur ton formulaire, tu ajoutes un champ independant qui reprend le format
que tu desires et qui EST le no de commande a utiliser.
Salut,


Bonjour,

Je travaille sur ACCESS 2002.

Je suis en train de créer une table 'Commande'
Les deux premiers champs sont :
RefCommande Numéro auto
DateCommande Date (par ex. 13-mar-04)

Je souhaiterai avoir un troisième champ découlant des deux premiers :
N°Commande "Année"+"numéro auto de l'année" (par ex. 040026)
Format : "00"+"0000"

Il faudrait que le nombre après les deux premiers chiffre (année) redémarre
à 0 au début de chaque année et qu'il n'y ait pas de trous.

Est-possible ?

Si oui, merci de me détailler la procédure, étant plus que novice.

Merci





Avatar
Yann
Bonjour,
Tu ne peux pas le définir directement dans ta table.
De plus, si tu met un champ avec N°Auto, tu auras du mal
à le remettre à 0...
Je te conseil de faire un petit bout de code VBA qui va
aller chercher puis créer ton N°Auto (donc pas auto dans
ta table, et pas unique non plus) en utilisant la requête
suivante :
SELECT MAX(RefCommande) + 1 FROM Commande WHERE LEFT
(N_Commande,2)=Year(Date());

Bye
Yann

-----Message d'origine-----
Bonjour,

Je travaille sur ACCESS 2002.

Je suis en train de créer une table 'Commande'
Les deux premiers champs sont :
RefCommande Numéro auto
DateCommande Date (par ex. 13-mar-04)

Je souhaiterai avoir un troisième champ découlant des
deux premiers :

N°Commande "Année"+"numéro auto de l'année" (par
ex. 040026)

Format : "00"+"0000"

Il faudrait que le nombre après les deux premiers
chiffre (année) redémarre

à 0 au début de chaque année et qu'il n'y ait pas de
trous.


Est-possible ?

Si oui, merci de me détailler la procédure, étant plus
que novice.


Merci


.



Avatar
Raymond [mvp]
Bonjour.

Tu trouveras des exemples sur :
http://access.vba.free.fr/numauto_prsonnel.htm

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Maison de l'eau" a écrit dans le
message de news:cgmsiu$qnc$
Bonjour,

Je travaille sur ACCESS 2002.

Je suis en train de créer une table 'Commande'
Les deux premiers champs sont :
RefCommande Numéro auto
DateCommande Date (par ex. 13-mar-04)

Je souhaiterai avoir un troisième champ découlant des deux premiers :
N°Commande "Année"+"numéro auto de l'année" (par ex. 040026)
Format : "00"+"0000"

Il faudrait que le nombre après les deux premiers chiffre (année)
redémarre

à 0 au début de chaque année et qu'il n'y ait pas de trous.

Est-possible ?

Si oui, merci de me détailler la procédure, étant plus que novice.

Merci




Avatar
Maison de l'eau
Re-bonjour,

Merci pour cette première réponse, mais lorsque j'écris la requette, j'ai le
message :

"Sous requête erronée ,placer la sous requête entre parenthèse"

Après plusieurs essais infructueux j'en appelle denouveau à l'aide.

Merci


"Yann" a écrit dans le message de
news:08a301c48c29$8e5290e0$
Bonjour,
Tu ne peux pas le définir directement dans ta table.
De plus, si tu met un champ avec N°Auto, tu auras du mal
à le remettre à 0...
Je te conseil de faire un petit bout de code VBA qui va
aller chercher puis créer ton N°Auto (donc pas auto dans
ta table, et pas unique non plus) en utilisant la requête
suivante :
SELECT MAX(RefCommande) + 1 FROM Commande WHERE LEFT
(N_Commande,2)=Year(Date());

Bye
Yann

-----Message d'origine-----
Bonjour,

Je travaille sur ACCESS 2002.

Je suis en train de créer une table 'Commande'
Les deux premiers champs sont :
RefCommande Numéro auto
DateCommande Date (par ex. 13-mar-04)

Je souhaiterai avoir un troisième champ découlant des
deux premiers :

N°Commande "Année"+"numéro auto de l'année" (par
ex. 040026)

Format : "00"+"0000"

Il faudrait que le nombre après les deux premiers
chiffre (année) redémarre

à 0 au début de chaque année et qu'il n'y ait pas de
trous.


Est-possible ?

Si oui, merci de me détailler la procédure, étant plus
que novice.


Merci


.



Avatar
philo

hello,
Personnellement, je travaille avec une table "tblData" qui contient une
série de renseignements tels que dernier num de facture, année courante,
...
Lors d'une nouvelle facture, je prends la valeur dans la table.
Lorsque la facture est validée, j'incrémente le dernier num de ma table
tblData (vieil héritage du temps où je travaillais sous dos)

Philo

Bonjour,

Je travaille sur ACCESS 2002.

Je suis en train de créer une table 'Commande'
Les deux premiers champs sont :
RefCommande Numéro auto
DateCommande Date (par ex. 13-mar-04)

Je souhaiterai avoir un troisième champ découlant des deux premiers :
N°Commande "Année"+"numéro auto de l'année" (par ex. 040026)
Format : "00"+"0000"

Il faudrait que le nombre après les deux premiers chiffre (année) redémarre
à 0 au début de chaque année et qu'il n'y ait pas de trous.

Est-possible ?

Si oui, merci de me détailler la procédure, étant plus que novice.

Merci