Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Numéro automatique personnel

9 réponses
Avatar
ToFind
Bonjour,
Dans un formulaire,je possède un champ "date survenance" (pour la date de
réalisation d'un fait). Je possède aussi un champ "numéro de dossier". Je
souhaiterais que le champ "numéro de dossier" soit complété automatiquement
au format AAAAxxxxx où AAAA doit correspondre à l'année de survenance et
xxxxx est un nombre incrémenté de 1 à chaque ajout de dossier de la même
année. Ex : 1er dossier avec survenance le 03/01/2007 donne un numéro de
dossier 200700001. Si après cela je rentre un nouveau dossier survenu le
16/12/2006, le champ "numéro de dossier" doit chercher le plus grand numéro
affecté à 2006 et ajouté 1. J'ai fait de nombreuses tentatives avec la doc du
site mais je n'y arrive pas. Merci pour votre aide.

9 réponses

Avatar
Richard_35
Bonjour ToFind,

Il faut donc, d'abord, créer une table T_AnneeSeq (par exemple) comprenant
les champs suivants :
- Annee : clé unique
- DernNum : dernier n° pour l'année

Ensuite, juste avant de créer un enregistrement dans la table contenant tes
dossiers, il faut écrire un petit bout de code (Help ! MVP...) qui fera :
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1)

Désolé, je ne connais pas VBA, mais je pense qu'avec l'aide ACCESS ou celle
d'un codeur, cela ne devrait pas être compliqué.

Dis-nous.
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour,
Dans un formulaire,je possède un champ "date survenance" (pour la date de
réalisation d'un fait). Je possède aussi un champ "numéro de dossier". Je
souhaiterais que le champ "numéro de dossier" soit complété
automatiquement
au format AAAAxxxxx où AAAA doit correspondre à l'année de survenance et
xxxxx est un nombre incrémenté de 1 à chaque ajout de dossier de la même
année. Ex : 1er dossier avec survenance le 03/01/2007 donne un numéro de
dossier 200700001. Si après cela je rentre un nouveau dossier survenu le
16/12/2006, le champ "numéro de dossier" doit chercher le plus grand
numéro
affecté à 2006 et ajouté 1. J'ai fait de nombreuses tentatives avec la doc
du
site mais je n'y arrive pas. Merci pour votre aide.


Avatar
ToFind
Bonjour Richard,

Merci de ta réponse.
Je pense que tu comprends bien la problématique. Il faut aussi penser à
démarrer le compteur à AAAA00001 lors de l'enregistrement du premier dossier
d'une année. Soit le premier dossier avec date de survenance en 2008 devra
être 200800001 bien que des dossiers existeront déjà pour 2007.
Il faut donc composer le code VBA correspondant et savoir sur quel événement
le déclencher. Et tout en sachant que si plusieurs utilisateurs entrent un
dossier au même moment, il ne pourra pas y avoir d'attribution identique de
la numérotation...
Merci aux spécialistes qui voudont bien se pencher sur la question.


Bonjour ToFind,

Il faut donc, d'abord, créer une table T_AnneeSeq (par exemple) comprenant
les champs suivants :
- Annee : clé unique
- DernNum : dernier n° pour l'année

Ensuite, juste avant de créer un enregistrement dans la table contenant tes
dossiers, il faut écrire un petit bout de code (Help ! MVP...) qui fera :
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1)

Désolé, je ne connais pas VBA, mais je pense qu'avec l'aide ACCESS ou celle
d'un codeur, cela ne devrait pas être compliqué.

Dis-nous.
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour,
Dans un formulaire,je possède un champ "date survenance" (pour la date de
réalisation d'un fait). Je possède aussi un champ "numéro de dossier". Je
souhaiterais que le champ "numéro de dossier" soit complété
automatiquement
au format AAAAxxxxx où AAAA doit correspondre à l'année de survenance et
xxxxx est un nombre incrémenté de 1 à chaque ajout de dossier de la même
année. Ex : 1er dossier avec survenance le 03/01/2007 donne un numéro de
dossier 200700001. Si après cela je rentre un nouveau dossier survenu le
16/12/2006, le champ "numéro de dossier" doit chercher le plus grand
numéro
affecté à 2006 et ajouté 1. J'ai fait de nombreuses tentatives avec la doc
du
site mais je n'y arrive pas. Merci pour votre aide.







Avatar
Richard_35
Bonjour ToFind,

1°/ Exact aussi pour l'accès multi-utilisateur :
Il faut donc bloquer l'accès à la table le temps de la lecture ou de la
création de l'enregistrement.

2°/ Exact, pour une nouvelle année :
- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

3°/ Pour l'évènement déclencheur, il faut que ce soit à l'endroit d'écriture
dans ta table "dossiers". Je pense qu'il ne doit (devrait) exister qu'un
seul endroit où un enregistrement est créé.

Merci aux codeurs...
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour Richard,

Merci de ta réponse.
Je pense que tu comprends bien la problématique. Il faut aussi penser à
démarrer le compteur à AAAA00001 lors de l'enregistrement du premier
dossier
d'une année. Soit le premier dossier avec date de survenance en 2008 devra
être 200800001 bien que des dossiers existeront déjà pour 2007.
Il faut donc composer le code VBA correspondant et savoir sur quel
événement
le déclencher. Et tout en sachant que si plusieurs utilisateurs entrent un
dossier au même moment, il ne pourra pas y avoir d'attribution identique
de
la numérotation...
Merci aux spécialistes qui voudont bien se pencher sur la question.


Bonjour ToFind,

Il faut donc, d'abord, créer une table T_AnneeSeq (par exemple)
comprenant
les champs suivants :
- Annee : clé unique
- DernNum : dernier n° pour l'année

Ensuite, juste avant de créer un enregistrement dans la table contenant
tes
dossiers, il faut écrire un petit bout de code (Help ! MVP...) qui fera :
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1)

Désolé, je ne connais pas VBA, mais je pense qu'avec l'aide ACCESS ou
celle
d'un codeur, cela ne devrait pas être compliqué.

Dis-nous.
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour,
Dans un formulaire,je possède un champ "date survenance" (pour la date
de
réalisation d'un fait). Je possède aussi un champ "numéro de dossier".
Je
souhaiterais que le champ "numéro de dossier" soit complété
automatiquement
au format AAAAxxxxx où AAAA doit correspondre à l'année de survenance
et
xxxxx est un nombre incrémenté de 1 à chaque ajout de dossier de la
même
année. Ex : 1er dossier avec survenance le 03/01/2007 donne un numéro
de
dossier 200700001. Si après cela je rentre un nouveau dossier survenu
le
16/12/2006, le champ "numéro de dossier" doit chercher le plus grand
numéro
affecté à 2006 et ajouté 1. J'ai fait de nombreuses tentatives avec la
doc
du
site mais je n'y arrive pas. Merci pour votre aide.









Avatar
Richard_35
Bonjour ToFind,

Si tu n'as toujours pas résolu ton problème, je pense qu'il faut que tu
re-post une question en demandant la traduction en VBA de l'algorythme en
français :

- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

Bon courage,
Richard.


"Richard_35" a écrit dans le message de news:
%
Bonjour ToFind,

1°/ Exact aussi pour l'accès multi-utilisateur :
Il faut donc bloquer l'accès à la table le temps de la lecture ou de la
création de l'enregistrement.

2°/ Exact, pour une nouvelle année :
- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

3°/ Pour l'évènement déclencheur, il faut que ce soit à l'endroit
d'écriture dans ta table "dossiers". Je pense qu'il ne doit (devrait)
exister qu'un seul endroit où un enregistrement est créé.

Merci aux codeurs...
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour Richard,

Merci de ta réponse.
Je pense que tu comprends bien la problématique. Il faut aussi penser à
démarrer le compteur à AAAA00001 lors de l'enregistrement du premier
dossier
d'une année. Soit le premier dossier avec date de survenance en 2008
devra
être 200800001 bien que des dossiers existeront déjà pour 2007.
Il faut donc composer le code VBA correspondant et savoir sur quel
événement
le déclencher. Et tout en sachant que si plusieurs utilisateurs entrent
un
dossier au même moment, il ne pourra pas y avoir d'attribution identique
de
la numérotation...
Merci aux spécialistes qui voudont bien se pencher sur la question.


Bonjour ToFind,

Il faut donc, d'abord, créer une table T_AnneeSeq (par exemple)
comprenant
les champs suivants :
- Annee : clé unique
- DernNum : dernier n° pour l'année

Ensuite, juste avant de créer un enregistrement dans la table contenant
tes
dossiers, il faut écrire un petit bout de code (Help ! MVP...) qui fera
:
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1)

Désolé, je ne connais pas VBA, mais je pense qu'avec l'aide ACCESS ou
celle
d'un codeur, cela ne devrait pas être compliqué.

Dis-nous.
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour,
Dans un formulaire,je possède un champ "date survenance" (pour la date
de
réalisation d'un fait). Je possède aussi un champ "numéro de dossier".
Je
souhaiterais que le champ "numéro de dossier" soit complété
automatiquement
au format AAAAxxxxx où AAAA doit correspondre à l'année de survenance
et
xxxxx est un nombre incrémenté de 1 à chaque ajout de dossier de la
même
année. Ex : 1er dossier avec survenance le 03/01/2007 donne un numéro
de
dossier 200700001. Si après cela je rentre un nouveau dossier survenu
le
16/12/2006, le champ "numéro de dossier" doit chercher le plus grand
numéro
affecté à 2006 et ajouté 1. J'ai fait de nombreuses tentatives avec la
doc
du
site mais je n'y arrive pas. Merci pour votre aide.













Avatar
ToFind
Bonjour Richard,
Effectivement, pas d'autre intervention que la tienne. J'imagine qu'aucun
spécialiste VBA ne peut s'y consacrer pour l'instant. Je vais encore essayer
par moi-même et je reviendrai un peu plus tard.
Merci de ton intervention.


Bonjour ToFind,

Si tu n'as toujours pas résolu ton problème, je pense qu'il faut que tu
re-post une question en demandant la traduction en VBA de l'algorythme en
français :

- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

Bon courage,
Richard.


"Richard_35" a écrit dans le message de news:
%
Bonjour ToFind,

1°/ Exact aussi pour l'accès multi-utilisateur :
Il faut donc bloquer l'accès à la table le temps de la lecture ou de la
création de l'enregistrement.

2°/ Exact, pour une nouvelle année :
- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

3°/ Pour l'évènement déclencheur, il faut que ce soit à l'endroit
d'écriture dans ta table "dossiers". Je pense qu'il ne doit (devrait)
exister qu'un seul endroit où un enregistrement est créé.

Merci aux codeurs...
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour Richard,

Merci de ta réponse.
Je pense que tu comprends bien la problématique. Il faut aussi penser à
démarrer le compteur à AAAA00001 lors de l'enregistrement du premier
dossier
d'une année. Soit le premier dossier avec date de survenance en 2008
devra
être 200800001 bien que des dossiers existeront déjà pour 2007.
Il faut donc composer le code VBA correspondant et savoir sur quel
événement
le déclencher. Et tout en sachant que si plusieurs utilisateurs entrent
un
dossier au même moment, il ne pourra pas y avoir d'attribution identique
de
la numérotation...
Merci aux spécialistes qui voudont bien se pencher sur la question.


Bonjour ToFind,

Il faut donc, d'abord, créer une table T_AnneeSeq (par exemple)
comprenant
les champs suivants :
- Annee : clé unique
- DernNum : dernier n° pour l'année

Ensuite, juste avant de créer un enregistrement dans la table contenant
tes
dossiers, il faut écrire un petit bout de code (Help ! MVP...) qui fera
:
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1)

Désolé, je ne connais pas VBA, mais je pense qu'avec l'aide ACCESS ou
celle
d'un codeur, cela ne devrait pas être compliqué.

Dis-nous.
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour,
Dans un formulaire,je possède un champ "date survenance" (pour la date
de
réalisation d'un fait). Je possède aussi un champ "numéro de dossier".
Je
souhaiterais que le champ "numéro de dossier" soit complété
automatiquement
au format AAAAxxxxx où AAAA doit correspondre à l'année de survenance
et
xxxxx est un nombre incrémenté de 1 à chaque ajout de dossier de la
même
année. Ex : 1er dossier avec survenance le 03/01/2007 donne un numéro
de
dossier 200700001. Si après cela je rentre un nouveau dossier survenu
le
16/12/2006, le champ "numéro de dossier" doit chercher le plus grand
numéro
affecté à 2006 et ajouté 1. J'ai fait de nombreuses tentatives avec la
doc
du
site mais je n'y arrive pas. Merci pour votre aide.


















Avatar
Thierry (ze Titi)
Hello ToFind !

Regarde du côté de la proposition de Raymond sur son site:
http://officesystem.access.free.fr/ex_numauto_personnel.htm

Tu y trouveras au pire une piste, au mieux la réponse parfaite à ton
problème.

En ce jour mémorable du mercredi 22/08/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour Richard,
Effectivement, pas d'autre intervention que la tienne. J'imagine qu'aucun
spécialiste VBA ne peut s'y consacrer pour l'instant. Je vais encore essayer
par moi-même et je reviendrai un peu plus tard.
Merci de ton intervention.


Bonjour ToFind,

Si tu n'as toujours pas résolu ton problème, je pense qu'il faut que tu
re-post une question en demandant la traduction en VBA de l'algorythme en
français :

- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

Bon courage,
Richard.


"Richard_35" a écrit dans le message de news:
%
Bonjour ToFind,

1°/ Exact aussi pour l'accès multi-utilisateur :
Il faut donc bloquer l'accès à la table le temps de la lecture ou de la
création de l'enregistrement.

2°/ Exact, pour une nouvelle année :
- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

3°/ Pour l'évènement déclencheur, il faut que ce soit à l'endroit
d'écriture dans ta table "dossiers". Je pense qu'il ne doit (devrait)
exister qu'un seul endroit où un enregistrement est créé.

Merci aux codeurs...
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour Richard,

Merci de ta réponse.
Je pense que tu comprends bien la problématique. Il faut aussi penser à
démarrer le compteur à AAAA00001 lors de l'enregistrement du premier
dossier
d'une année. Soit le premier dossier avec date de survenance en 2008
devra
être 200800001 bien que des dossiers existeront déjà pour 2007.
Il faut donc composer le code VBA correspondant et savoir sur quel
événement
le déclencher. Et tout en sachant que si plusieurs utilisateurs entrent
un
dossier au même moment, il ne pourra pas y avoir d'attribution identique
de
la numérotation...
Merci aux spécialistes qui voudont bien se pencher sur la question.


Bonjour ToFind,

Il faut donc, d'abord, créer une table T_AnneeSeq (par exemple)
comprenant
les champs suivants :
- Annee : clé unique
- DernNum : dernier n° pour l'année

Ensuite, juste avant de créer un enregistrement dans la table contenant
tes
dossiers, il faut écrire un petit bout de code (Help ! MVP...) qui fera

- Accès à la table T_AnneeSeq pour l'année de la "date survenance"

- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1)

Désolé, je ne connais pas VBA, mais je pense qu'avec l'aide ACCESS ou
celle
d'un codeur, cela ne devrait pas être compliqué.

Dis-nous.
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour,
Dans un formulaire,je possède un champ "date survenance" (pour la date
de
réalisation d'un fait). Je possède aussi un champ "numéro de dossier".
Je
souhaiterais que le champ "numéro de dossier" soit complété
automatiquement
au format AAAAxxxxx où AAAA doit correspondre à l'année de survenance
et
xxxxx est un nombre incrémenté de 1 à chaque ajout de dossier de la
même
année. Ex : 1er dossier avec survenance le 03/01/2007 donne un numéro
de
dossier 200700001. Si après cela je rentre un nouveau dossier survenu
le
16/12/2006, le champ "numéro de dossier" doit chercher le plus grand
numéro
affecté à 2006 et ajouté 1. J'ai fait de nombreuses tentatives avec la
doc
du
site mais je n'y arrive pas. Merci pour votre aide.















--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info






Avatar
ToFind
Bonjour Thierry,
Merci de ta proposition.
Je me suis inspiré du code de Raymond pour faire des tentatives, mais je
dois reconnaître que je ne comprends pas tout dans ce code. De plus, cette
fonction ne permet pas de repartir sur une année antérieure. Ex: si en 2007,
j'introduis un dossier dont l'événement est survenu en 2006, la numérotation
ne commencera pas par 2006, mais bien par 2007.


Hello ToFind !

Regarde du côté de la proposition de Raymond sur son site:
http://officesystem.access.free.fr/ex_numauto_personnel.htm

Tu y trouveras au pire une piste, au mieux la réponse parfaite à ton
problème.

En ce jour mémorable du mercredi 22/08/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour Richard,
Effectivement, pas d'autre intervention que la tienne. J'imagine qu'aucun
spécialiste VBA ne peut s'y consacrer pour l'instant. Je vais encore essayer
par moi-même et je reviendrai un peu plus tard.
Merci de ton intervention.


Bonjour ToFind,

Si tu n'as toujours pas résolu ton problème, je pense qu'il faut que tu
re-post une question en demandant la traduction en VBA de l'algorythme en
français :

- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

Bon courage,
Richard.


"Richard_35" a écrit dans le message de news:
%
Bonjour ToFind,

1°/ Exact aussi pour l'accès multi-utilisateur :
Il faut donc bloquer l'accès à la table le temps de la lecture ou de la
création de l'enregistrement.

2°/ Exact, pour une nouvelle année :
- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

3°/ Pour l'évènement déclencheur, il faut que ce soit à l'endroit
d'écriture dans ta table "dossiers". Je pense qu'il ne doit (devrait)
exister qu'un seul endroit où un enregistrement est créé.

Merci aux codeurs...
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour Richard,

Merci de ta réponse.
Je pense que tu comprends bien la problématique. Il faut aussi penser à
démarrer le compteur à AAAA00001 lors de l'enregistrement du premier
dossier
d'une année. Soit le premier dossier avec date de survenance en 2008
devra
être 200800001 bien que des dossiers existeront déjà pour 2007.
Il faut donc composer le code VBA correspondant et savoir sur quel
événement
le déclencher. Et tout en sachant que si plusieurs utilisateurs entrent
un
dossier au même moment, il ne pourra pas y avoir d'attribution identique
de
la numérotation...
Merci aux spécialistes qui voudont bien se pencher sur la question.


Bonjour ToFind,

Il faut donc, d'abord, créer une table T_AnneeSeq (par exemple)
comprenant
les champs suivants :
- Annee : clé unique
- DernNum : dernier n° pour l'année

Ensuite, juste avant de créer un enregistrement dans la table contenant
tes
dossiers, il faut écrire un petit bout de code (Help ! MVP...) qui fera

- Accès à la table T_AnneeSeq pour l'année de la "date survenance"

- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1)

Désolé, je ne connais pas VBA, mais je pense qu'avec l'aide ACCESS ou
celle
d'un codeur, cela ne devrait pas être compliqué.

Dis-nous.
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour,
Dans un formulaire,je possède un champ "date survenance" (pour la date
de
réalisation d'un fait). Je possède aussi un champ "numéro de dossier".
Je
souhaiterais que le champ "numéro de dossier" soit complété
automatiquement
au format AAAAxxxxx où AAAA doit correspondre à l'année de survenance
et
xxxxx est un nombre incrémenté de 1 à chaque ajout de dossier de la
même
année. Ex : 1er dossier avec survenance le 03/01/2007 donne un numéro
de
dossier 200700001. Si après cela je rentre un nouveau dossier survenu
le
16/12/2006, le champ "numéro de dossier" doit chercher le plus grand
numéro
affecté à 2006 et ajouté 1. J'ai fait de nombreuses tentatives avec la
doc
du
site mais je n'y arrive pas. Merci pour votre aide.















--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info











Avatar
Thierry (ze Titi)
Ex: si en 2007, j'introduis un dossier dont l'événement est survenu en 2006,
la numérotation ne commencera pas par 2006, mais bien par 2007.


Ce genre de chose peut se contourner...

Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro", Optional GivenYear _
As Long = Year(Date())) As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(GivenYear) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(GivenYear & "00001")
End If
Case Mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function


Message du mercredi 22/08/2007

Bonjour Thierry,
Merci de ta proposition.
Je me suis inspiré du code de Raymond pour faire des tentatives, mais je
dois reconnaître que je ne comprends pas tout dans ce code. De plus, cette
fonction ne permet pas de repartir sur une année antérieure. Ex: si en 2007,
j'introduis un dossier dont l'événement est survenu en 2006, la numérotation
ne commencera pas par 2006, mais bien par 2007.


Hello ToFind !

Regarde du côté de la proposition de Raymond sur son site:
http://officesystem.access.free.fr/ex_numauto_personnel.htm

Tu y trouveras au pire une piste, au mieux la réponse parfaite à ton
problème.

En ce jour mémorable du mercredi 22/08/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour Richard,
Effectivement, pas d'autre intervention que la tienne. J'imagine qu'aucun
spécialiste VBA ne peut s'y consacrer pour l'instant. Je vais encore
essayer par moi-même et je reviendrai un peu plus tard.
Merci de ton intervention.


Bonjour ToFind,

Si tu n'as toujours pas résolu ton problème, je pense qu'il faut que
tu re-post une question en demandant la traduction en VBA de l'algorythme
en français :

- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

Bon courage,
Richard.


"Richard_35" a écrit dans le message de news:
%
Bonjour ToFind,

1°/ Exact aussi pour l'accès multi-utilisateur :
Il faut donc bloquer l'accès à la table le temps de la lecture ou de
la création de l'enregistrement.

2°/ Exact, pour une nouvelle année :
- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

3°/ Pour l'évènement déclencheur, il faut que ce soit à l'endroit
d'écriture dans ta table "dossiers". Je pense qu'il ne doit (devrait)
exister qu'un seul endroit où un enregistrement est créé.

Merci aux codeurs...
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour Richard,

Merci de ta réponse.
Je pense que tu comprends bien la problématique. Il faut aussi penser à
démarrer le compteur à AAAA00001 lors de l'enregistrement du premier
dossier
d'une année. Soit le premier dossier avec date de survenance en 2008
devra
être 200800001 bien que des dossiers existeront déjà pour 2007.
Il faut donc composer le code VBA correspondant et savoir sur quel
événement
le déclencher. Et tout en sachant que si plusieurs utilisateurs entrent
un
dossier au même moment, il ne pourra pas y avoir d'attribution identique
de
la numérotation...
Merci aux spécialistes qui voudont bien se pencher sur la question.


Bonjour ToFind,

Il faut donc, d'abord, créer une table T_AnneeSeq (par exemple)
comprenant
les champs suivants :
- Annee : clé unique
- DernNum : dernier n° pour l'année

Ensuite, juste avant de créer un enregistrement dans la table contenant
tes
dossiers, il faut écrire un petit bout de code (Help ! MVP...) qui fera

- Accès à la table T_AnneeSeq pour l'année de la "date survenance"

- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1)

Désolé, je ne connais pas VBA, mais je pense qu'avec l'aide ACCESS ou
celle
d'un codeur, cela ne devrait pas être compliqué.

Dis-nous.
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour,
Dans un formulaire,je possède un champ "date survenance" (pour la date
de
réalisation d'un fait). Je possède aussi un champ "numéro de dossier".
Je
souhaiterais que le champ "numéro de dossier" soit complété
automatiquement
au format AAAAxxxxx où AAAA doit correspondre à l'année de survenance
et
xxxxx est un nombre incrémenté de 1 à chaque ajout de dossier de la
même
année. Ex : 1er dossier avec survenance le 03/01/2007 donne un numéro
de
dossier 200700001. Si après cela je rentre un nouveau dossier survenu
le
16/12/2006, le champ "numéro de dossier" doit chercher le plus grand
numéro
affecté à 2006 et ajouté 1. J'ai fait de nombreuses tentatives avec la
doc
du
site mais je n'y arrive pas. Merci pour votre aide.















--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info






--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info








Avatar
ToFind
Merci pour l'aide. Je réponds tardivement car j'ai pris qques congés.
Je suis finalement parvenu à faire obéir la machine...
Bonne journée.


Ex: si en 2007, j'introduis un dossier dont l'événement est survenu en 2006,
la numérotation ne commencera pas par 2006, mais bien par 2007.


Ce genre de chose peut se contourner...

Function AutoNum(AutoNumType As AutoType, TableName As String, _
Optional FieldName As String = "Numéro", Optional GivenYear _
As Long = Year(Date())) As Long
Select Case AutoNumType
Case NumSimple
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
Case Année
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 4) = CLng(GivenYear) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(GivenYear & "00001")
End If
Case Mois
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Left(lgTmp, 6) = CLng(Format(Date, "yyyymm")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(Date, "yyyymm") & "0001")
End If
Case Semaine
lgTmp = Nz(DMax(FieldName, TableName), 0)
If Mid(lgTmp, 5, 2) = CLng(Format(Date, "ww")) Then
AutoNum = lgTmp + 1
Else
AutoNum = CLng(Format(Date, "yyyyww") & "0001")
End If
Case Else
AutoNum = Nz(DMax(FieldName, TableName), 0) + 1
End Select
End Function


Message du mercredi 22/08/2007

Bonjour Thierry,
Merci de ta proposition.
Je me suis inspiré du code de Raymond pour faire des tentatives, mais je
dois reconnaître que je ne comprends pas tout dans ce code. De plus, cette
fonction ne permet pas de repartir sur une année antérieure. Ex: si en 2007,
j'introduis un dossier dont l'événement est survenu en 2006, la numérotation
ne commencera pas par 2006, mais bien par 2007.


Hello ToFind !

Regarde du côté de la proposition de Raymond sur son site:
http://officesystem.access.free.fr/ex_numauto_personnel.htm

Tu y trouveras au pire une piste, au mieux la réponse parfaite à ton
problème.

En ce jour mémorable du mercredi 22/08/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour Richard,
Effectivement, pas d'autre intervention que la tienne. J'imagine qu'aucun
spécialiste VBA ne peut s'y consacrer pour l'instant. Je vais encore
essayer par moi-même et je reviendrai un peu plus tard.
Merci de ton intervention.


Bonjour ToFind,

Si tu n'as toujours pas résolu ton problème, je pense qu'il faut que
tu re-post une question en demandant la traduction en VBA de l'algorythme
en français :

- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

Bon courage,
Richard.


"Richard_35" a écrit dans le message de news:
%
Bonjour ToFind,

1°/ Exact aussi pour l'accès multi-utilisateur :
Il faut donc bloquer l'accès à la table le temps de la lecture ou de
la création de l'enregistrement.

2°/ Exact, pour une nouvelle année :
- Blocage de la table T_AnneeSeq
- Accès à la table T_AnneeSeq pour l'année de la "date survenance"
- Existe :
- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- N'existe pas :
- DernNum = 1
- Création dans la table T_AnneeSeq
- Déblocage de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1 ou = 1)

3°/ Pour l'évènement déclencheur, il faut que ce soit à l'endroit
d'écriture dans ta table "dossiers". Je pense qu'il ne doit (devrait)
exister qu'un seul endroit où un enregistrement est créé.

Merci aux codeurs...
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour Richard,

Merci de ta réponse.
Je pense que tu comprends bien la problématique. Il faut aussi penser à
démarrer le compteur à AAAA00001 lors de l'enregistrement du premier
dossier
d'une année. Soit le premier dossier avec date de survenance en 2008
devra
être 200800001 bien que des dossiers existeront déjà pour 2007.
Il faut donc composer le code VBA correspondant et savoir sur quel
événement
le déclencher. Et tout en sachant que si plusieurs utilisateurs entrent
un
dossier au même moment, il ne pourra pas y avoir d'attribution identique
de
la numérotation...
Merci aux spécialistes qui voudont bien se pencher sur la question.


Bonjour ToFind,

Il faut donc, d'abord, créer une table T_AnneeSeq (par exemple)
comprenant
les champs suivants :
- Annee : clé unique
- DernNum : dernier n° pour l'année

Ensuite, juste avant de créer un enregistrement dans la table contenant
tes
dossiers, il faut écrire un petit bout de code (Help ! MVP...) qui fera

- Accès à la table T_AnneeSeq pour l'année de la "date survenance"

- DernNum = DernNum + 1
- Mise à jour de la table T_AnneeSeq
- NumDossier = Année de la "date survenance" & DernNum (qui a été
incrémenté de 1)

Désolé, je ne connais pas VBA, mais je pense qu'avec l'aide ACCESS ou
celle
d'un codeur, cela ne devrait pas être compliqué.

Dis-nous.
Bon courage,
Richard.

"ToFind" a écrit dans le
message de news:
Bonjour,
Dans un formulaire,je possède un champ "date survenance" (pour la date
de
réalisation d'un fait). Je possède aussi un champ "numéro de dossier".
Je
souhaiterais que le champ "numéro de dossier" soit complété
automatiquement
au format AAAAxxxxx où AAAA doit correspondre à l'année de survenance
et
xxxxx est un nombre incrémenté de 1 à chaque ajout de dossier de la
même
année. Ex : 1er dossier avec survenance le 03/01/2007 donne un numéro
de
dossier 200700001. Si après cela je rentre un nouveau dossier survenu
le
16/12/2006, le champ "numéro de dossier" doit chercher le plus grand
numéro
affecté à 2006 et ajouté 1. J'ai fait de nombreuses tentatives avec la
doc
du
site mais je n'y arrive pas. Merci pour votre aide.















--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info






--
Cordialement,
Thierry

Tout pour réussir avec Access :
http://www.mpfa.info" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info