OVH Cloud OVH Cloud

Numérotation continue de plusieurs types documents...

19 réponses
Avatar
Sogolon
Bonjour, salut à tous et à toutes.
Merci de votre aide qui me permet d'avancer dans mon Application.
Une nouvelle question:
Mon appli doit gérer plusieurs types de documents(L, BC,F,FC et EM) et ceci
dans deux sens: Arrivé et Départ.
J'aimerai que dans une Table T_Correspondances le champ Réf soit numéroté
automatiquement comme suit:
1-Document Arrivé:
L 1/05-06/ puis L 2/05-06/ ainsi de suite (05-06 c'est le mois et
l'année en cours). Pour les lettres en courrier arrivé
BC 1/05-06/ puis BC 2/05-06/ ainsi de suite pour les bons de commandes
Idem pour les autres types de documents.

2-Document Départ:
L 1/05-06/ puis L 2/05-06/ ainsi de suite (05-06 c'est le mois et
l'année en cours). Pour les lettres en courrier arrivé
BC 1/05-06/ puis BC 2/05-06/ ainsi de suite pour les bons de commandes
Idem pour les autres types de documents.

Salut à tous et à toutes.
Passez une très bonne journée.
A+...

10 réponses

1 2
Avatar
Gilles MOUGNOZ
Bonjour, salut à tous et à toutes.
Merci de votre aide qui me permet d'avancer dans mon Application.
Une nouvelle question:
Mon appli doit gérer plusieurs types de documents(L, BC,F,FC et EM) et
ceci
dans deux sens: Arrivé et Départ.
J'aimerai que dans une Table T_Correspondances le champ Réf soit numéroté
automatiquement comme suit:
...
Salut à tous et à toutes.
Passez une très bonne journée.
A+...


Bonjour, Sogolon

Télécharge la base suivante:
http://officesystem.access.free.fr/telecharger/numerofacture.zip
Cela te donnera un exemple pour générer un numéro automatique personnalisé.

Bonne continuation

Avatar
Sogolon
Merci Gilles, de votre promptitude et de votre dynamisme sur ce forum.
De même que Raymond et 3 Stone et à Lir aussi.
J'ai regardé le "numerofacture" que vous avez bien voulu indiqué, merci.
Cependant, moi je ne gère pas que deux types de documents( comme dans ton
exemple "AV" et "FA". Si des modifications de ces codes peuvent m'aider, je
vous prie de me donner une ou des pistes. Merci.

Voilà pour ma numérotation: J'ai dans T_Correspondaces, en plus du champ
'Réf' qu'il faut numéroter, un champ 'Sens' qui indique s'il s'agit d'un
courrier arrivé ou départ et un autre champ 'TypeCourrier' qui indique le
type de document.
Pour ainsi dire que ma numérotation de mon champ 'Réf' doit tenir compte et
du sens et du type de courrier.
Merci beaucoup.
Salut à toutes et à tous.
A+...


Bonjour, salut à tous et à toutes.
Merci de votre aide qui me permet d'avancer dans mon Application.
Une nouvelle question:
Mon appli doit gérer plusieurs types de documents(L, BC,F,FC et EM) et
ceci
dans deux sens: Arrivé et Départ.
J'aimerai que dans une Table T_Correspondances le champ Réf soit numéroté
automatiquement comme suit:
...
Salut à tous et à toutes.
Passez une très bonne journée.
A+...


Bonjour, Sogolon

Télécharge la base suivante:
http://officesystem.access.free.fr/telecharger/numerofacture.zip
Cela te donnera un exemple pour générer un numéro automatique personnalisé.

Bonne continuation






Avatar
Gilles MOUGNOZ
Merci Gilles, de votre promptitude et de votre dynamisme sur ce forum.
De même que Raymond et 3 Stone et à Lir aussi.
J'ai regardé le "numerofacture" que vous avez bien voulu indiqué, merci.
Cependant, moi je ne gère pas que deux types de documents( comme dans ton
exemple "AV" et "FA". Si des modifications de ces codes peuvent m'aider,
je
vous prie de me donner une ou des pistes. Merci.
Voilà pour ma numérotation: J'ai dans T_Correspondaces, en plus du champ
'Réf' qu'il faut numéroter, un champ 'Sens' qui indique s'il s'agit d'un
courrier arrivé ou départ et un autre champ 'TypeCourrier' qui indique le
type de document.
Pour ainsi dire que ma numérotation de mon champ 'Réf' doit tenir compte
et
du sens et du type de courrier.
Merci beaucoup.
Salut à toutes et à tous.
A+...


Re,

Regarde la fonction "Création_Numéro" dans le code du formulaire et essaie
d'adapter à ton cas.
Je n'ai malheureusement pas le temps de t'aider plus...

Bonne continuation

Avatar
Sogolon
Merci encore.
faute de mieux je vais essayer. Mais le fait est que je ne pas encore très à
l'aise avec VBA.
Merci de être donné la peine.
Salut à toutes et à tous.
A+...



Regarde la fonction "Création_Numéro" dans le code du formulaire et essaie
d'adapter à ton cas.
Je n'ai malheureusement pas le temps de t'aider plus...

Bonne continuation





Avatar
LiR
Bon....

On dit aide-toi, le ciel t'aidera. Il va falloir que tu nous en dises un peu
plus sur cette table car la manière de mettre en place la numérotation dépend
de différentes informations.

Dans ta table T_Correspondaces, tu as 3 champs essentiels :

- Sens
- TypeCourrier (champ texte)
- Réf (champ texte)

Le champ Réf comporte un code faisant référence à :

- TypeCourrier
- Date du courrier

Et contenant un numéro de chrono unique pour chaque type, chaque sens et
chaque date.

Réf prend alors la valeur : >TypeCourrier><N°chrono><Date>

Premières observations :

1. Avec ton système de numérotation, tu peux avoir 2 Réf identique puisque
le Sens n'apparaît pas dans le code de réf.

Premières questions :
1. Quel est le type de données de Sens (texte? numérique? booléen?)
2. La date est-elle stockée dans la table?
3. Le N° chrono est-il stocké dans la table?
4. Le N° de chrono à générer doit-il repartir à 1 tous les mois? tous les ans?
5. A quel(s) moment(s) et comment les champs (ou infos) sont-ils renseignés:
- TypeCourrier
- Date
- Sens


Merci encore.
faute de mieux je vais essayer. Mais le fait est que je ne pas encore très à
l'aise avec VBA.
Merci de être donné la peine.
Salut à toutes et à tous.
A+...



Regarde la fonction "Création_Numéro" dans le code du formulaire et essaie
d'adapter à ton cas.
Je n'ai malheureusement pas le temps de t'aider plus...

Bonne continuation







Avatar
Sogolon
Salut
1. Quel est le type de données de Sens (texte? numérique? booléen?)
Le Champs Sens est du type Texte

Il peut prendre 3 valeurs:
-Arrivé
-Départ
-Interne
Et il est renseigné par liste déroulante sur mon formulaire.
Idem pour le typeCourrier (à partir de la table TypesCourriers)
Pour la date il s'agit du mois et de l'année en cours format: mm-yyyy.
2. La date est-elle stockée dans la table?
La réponse est oui.

3. Le N° chrono est-il stocké dans la table?
La réponse est oui.

4. Le N° de chrono à générer doit-il repartir à 1 tous les mois? tous les ans?
réponse: Tous les Ans

5. A quel(s) moment(s) et comment les champs (ou infos) sont-ils renseignés?
A partir d'un formulaire et pendant la création du courrier.


Brièvement:
1-On ouvre le Formulaire Gestion du courrier
2-On choisi le sens(Arrivé, Départ ou interne)
3-Ensuite le type de courrier: Lettre, Fax, Devis, BonComm
4-Ensuite générer le Numéro unique de la correspondance.
Salut et merci encore, beaucoup.

A+...

Avatar
LiR
Tu n'as pas répondu à la question 1 !!!
La réponse doit être un type de données : Texte ou numérique a priori

Quand tu dis :
-Arrivé
-Départ
-Interne
Je ne sais pas si c'est du texte qui est placé dans le champ ou un code
correspondant aux valeurs indiquées.

En génaral, on a une table TypesCourrier avec au moins 2 champs :
- ID (champ numérique)
- typecourr_label (champ texte)

Par exemple :

ID typecourr_label
------------------------
1 Arrivé
2 Départ
3 Interne

Puis on met dans le champ TypeCourrier de la table T_Correspondance la
valeur ID associée (et non le label).

Quoi qu'il en soit, avec le reste des informations que tu as fournies, on
peut dire que le nouveau N° de chrono à générer peut être obtenu comme suit :

rechercher dans la table T_correspondance le N°Chrono MAXIMUM (appelons-le
N_MAX) parmi les enregistrement pour lesquels :
- Le type de courrier est le même que celui du nouveau courrier en cours
- Le sens est le même que celui du nouveau courrier en cours
- L'année est la même que celle du nouveau courrier en cours

Si N_MAX vaut Null, c'est qu'il n'y a actuellement aucun courrier répondant
à ce critère, donc le nouveau chrono est 1.

Si N_MAX vaut N, alors le nouveau chrono est N+1.

La fonction DMax permet de rechercher catte valeur.

Je te laisse chercher un peu afin que tu découvres par toi-même cette
fonction...
Tu me diras si tu as des problèmes à la mettre en oeuvre.


Salut
1. Quel est le type de données de Sens (texte? numérique? booléen?)
Le Champs Sens est du type Texte

Il peut prendre 3 valeurs:
-Arrivé
-Départ
-Interne
Et il est renseigné par liste déroulante sur mon formulaire.
Idem pour le typeCourrier (à partir de la table TypesCourriers)
Pour la date il s'agit du mois et de l'année en cours format: mm-yyyy.
2. La date est-elle stockée dans la table?
La réponse est oui.

3. Le N° chrono est-il stocké dans la table?
La réponse est oui.

4. Le N° de chrono à générer doit-il repartir à 1 tous les mois? tous les ans?
réponse: Tous les Ans

5. A quel(s) moment(s) et comment les champs (ou infos) sont-ils renseignés?
A partir d'un formulaire et pendant la création du courrier.


Brièvement:
1-On ouvre le Formulaire Gestion du courrier
2-On choisi le sens(Arrivé, Départ ou interne)
3-Ensuite le type de courrier: Lettre, Fax, Devis, BonComm
4-Ensuite générer le Numéro unique de la correspondance.
Salut et merci encore, beaucoup.

A+...



Avatar
Sogolon
Salut et éxcusez-moi.
Le type de données est: Numérique
Et cette Bd va être exploitée en réseau
Merci.


Tu n'as pas répondu à la question 1 !!!
La réponse doit être un type de données : Texte ou numérique a priori

Quand tu dis :
-Arrivé
-Départ
-Interne
Je ne sais pas si c'est du texte qui est placé dans le champ ou un code
correspondant aux valeurs indiquées.

En génaral, on a une table TypesCourrier avec au moins 2 champs :
- ID (champ numérique)
- typecourr_label (champ texte)

Par exemple :

ID typecourr_label
------------------------
1 Arrivé
2 Départ
3 Interne

Puis on met dans le champ TypeCourrier de la table T_Correspondance la
valeur ID associée (et non le label).

Quoi qu'il en soit, avec le reste des informations que tu as fournies, on
peut dire que le nouveau N° de chrono à générer peut être obtenu comme suit :

rechercher dans la table T_correspondance le N°Chrono MAXIMUM (appelons-le
N_MAX) parmi les enregistrement pour lesquels :
- Le type de courrier est le même que celui du nouveau courrier en cours
- Le sens est le même que celui du nouveau courrier en cours
- L'année est la même que celle du nouveau courrier en cours

Si N_MAX vaut Null, c'est qu'il n'y a actuellement aucun courrier répondant
à ce critère, donc le nouveau chrono est 1.

Si N_MAX vaut N, alors le nouveau chrono est N+1.

La fonction DMax permet de rechercher catte valeur.

Je te laisse chercher un peu afin que tu découvres par toi-même cette
fonction...
Tu me diras si tu as des problèmes à la mettre en oeuvre.


Salut
1. Quel est le type de données de Sens (texte? numérique? booléen?)
Le Champs Sens est du type Texte

Il peut prendre 3 valeurs:
-Arrivé
-Départ
-Interne
Et il est renseigné par liste déroulante sur mon formulaire.
Idem pour le typeCourrier (à partir de la table TypesCourriers)
Pour la date il s'agit du mois et de l'année en cours format: mm-yyyy.
2. La date est-elle stockée dans la table?
La réponse est oui.

3. Le N° chrono est-il stocké dans la table?
La réponse est oui.

4. Le N° de chrono à générer doit-il repartir à 1 tous les mois? tous les ans?
réponse: Tous les Ans

5. A quel(s) moment(s) et comment les champs (ou infos) sont-ils renseignés?
A partir d'un formulaire et pendant la création du courrier.


Brièvement:
1-On ouvre le Formulaire Gestion du courrier
2-On choisi le sens(Arrivé, Départ ou interne)
3-Ensuite le type de courrier: Lettre, Fax, Devis, BonComm
4-Ensuite générer le Numéro unique de la correspondance.
Salut et merci encore, beaucoup.

A+...





Avatar
LiR
OK, donc Sens et TypeCourrier sont des champs numériques.
Je crois que nous avons maintenant toutes les informations nécesssaires.

De ton côté, tu as trouvé comment utiliser la fonction DMax?


Salut et éxcusez-moi.
Le type de données est: Numérique
Et cette Bd va être exploitée en réseau
Merci.


Tu n'as pas répondu à la question 1 !!!
La réponse doit être un type de données : Texte ou numérique a priori

Quand tu dis :
-Arrivé
-Départ
-Interne
Je ne sais pas si c'est du texte qui est placé dans le champ ou un code
correspondant aux valeurs indiquées.

En génaral, on a une table TypesCourrier avec au moins 2 champs :
- ID (champ numérique)
- typecourr_label (champ texte)

Par exemple :

ID typecourr_label
------------------------
1 Arrivé
2 Départ
3 Interne

Puis on met dans le champ TypeCourrier de la table T_Correspondance la
valeur ID associée (et non le label).

Quoi qu'il en soit, avec le reste des informations que tu as fournies, on
peut dire que le nouveau N° de chrono à générer peut être obtenu comme suit :

rechercher dans la table T_correspondance le N°Chrono MAXIMUM (appelons-le
N_MAX) parmi les enregistrement pour lesquels :
- Le type de courrier est le même que celui du nouveau courrier en cours
- Le sens est le même que celui du nouveau courrier en cours
- L'année est la même que celle du nouveau courrier en cours

Si N_MAX vaut Null, c'est qu'il n'y a actuellement aucun courrier répondant
à ce critère, donc le nouveau chrono est 1.

Si N_MAX vaut N, alors le nouveau chrono est N+1.

La fonction DMax permet de rechercher catte valeur.

Je te laisse chercher un peu afin que tu découvres par toi-même cette
fonction...
Tu me diras si tu as des problèmes à la mettre en oeuvre.


Salut
1. Quel est le type de données de Sens (texte? numérique? booléen?)
Le Champs Sens est du type Texte

Il peut prendre 3 valeurs:
-Arrivé
-Départ
-Interne
Et il est renseigné par liste déroulante sur mon formulaire.
Idem pour le typeCourrier (à partir de la table TypesCourriers)
Pour la date il s'agit du mois et de l'année en cours format: mm-yyyy.
2. La date est-elle stockée dans la table?
La réponse est oui.

3. Le N° chrono est-il stocké dans la table?
La réponse est oui.

4. Le N° de chrono à générer doit-il repartir à 1 tous les mois? tous les ans?
réponse: Tous les Ans

5. A quel(s) moment(s) et comment les champs (ou infos) sont-ils renseignés?
A partir d'un formulaire et pendant la création du courrier.


Brièvement:
1-On ouvre le Formulaire Gestion du courrier
2-On choisi le sens(Arrivé, Départ ou interne)
3-Ensuite le type de courrier: Lettre, Fax, Devis, BonComm
4-Ensuite générer le Numéro unique de la correspondance.
Salut et merci encore, beaucoup.

A+...







Avatar
Sogolon
Bonjour à toutes et à tous.
Salut "LiR".
Oui, j'ai mis vos conseils en application, je me documente et lis beaucoup.
Sur la base templete de MS, je prends des formulaires , je vois les codes et
j'essaie de comprendre leurs objectifs.
A ce propos je me suis exercée avec DMAX comme suis:
----------------------------------------------
Private Sub Form_BeforeInsert(Cancel As Integer)
Me!Numero = DMax("[Numero]", "TCorrespondances") + 1
If IsNull(Me!Numero) Or Me!Numero< Year(Now) * 10000 Then
Me!Numero= 1 + Year(Now) * 10000
End If
End Sub
------------------------------------------------
Avec cette procédure je génére une suite de: 20060001;20060002;2006000...
Mais là il y'a pas plusieurs cas de figures à gérer, pas beaucoup de If ni
Case...
A propos je voulais modifier le code ci-dessus pour avoir" 2006-000n" et
conserver le fait que le Chrono reparte à 1 l'année suivante.

Merci "LiR" et merci à toute la communauté.

A+...

@@@

OK, donc Sens et TypeCourrier sont des champs numériques.
Je crois que nous avons maintenant toutes les informations nécesssaires.

De ton côté, tu as trouvé comment utiliser la fonction DMax?


1 2