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

Un numéro automatique de facture dans un état

18 réponses
Avatar
Gundt
bonjour à tous,

Config : access 97 et appli : facturation

Je cherche à mettre un numéro automatique unique (pour imprimer sur les
factures).
Je m'explique :
j'ai fait les formulaires, les états d'une application de gestion de
commandes et de livraison qui tourne depuis 10 ans.
Maintenant, on me demande que l'application gère en plus la facturation.
Il faut donc créer et imprimer les factures.
J'arrive à créer un état factures qui récapitule l'ensemble des Bl pour
un mois donné et pour une personne ou un établissement donné. Mais je
n'arrive pas à créer un numéro de facture (unique)qui doit être créé au
moment de l'impression. J'ai parcouru l'onglet macros mais je ne trouve
rien qui me permette de trouver une solution. La solution est sûrement
dans la section modules mais je ne sais pas comment faire.

Je pensais créer une table temporaire FACTURES TEMP pour ne créer qu'une
seule fois la facture mais pour le numéro, je ne vois vraiment pas
comment faire pour le numéro automatique de facture.

Auriez-vous une idée ou un script ?

Existe-il une archive des mails de ce forum ? Peut-être que j'y
trouverai le problème déjà évoqué par quelqu'un ?

Merci d'avance.

Gundt

10 réponses

1 2
Avatar
ze Titi
Bonjour Gundt

Pas tout compris mais regarde ici, tu auras peut-être un élément de
réponse:
http://officesystem.access.free.fr/ex_numauto_personnel.htm


Dans ton message du vendredi 02/03/2007 jour
bonjour à tous,

Config : access 97 et appli : facturation

Je cherche à mettre un numéro automatique unique (pour imprimer sur les
factures).
Je m'explique :
j'ai fait les formulaires, les états d'une application de gestion de
commandes et de livraison qui tourne depuis 10 ans.
Maintenant, on me demande que l'application gère en plus la facturation. Il
faut donc créer et imprimer les factures.
J'arrive à créer un état factures qui récapitule l'ensemble des Bl pour un
mois donné et pour une personne ou un établissement donné. Mais je n'arrive
pas à créer un numéro de facture (unique)qui doit être créé au moment de
l'impression. J'ai parcouru l'onglet macros mais je ne trouve rien qui me
permette de trouver une solution. La solution est sûrement dans la section
modules mais je ne sais pas comment faire.

Je pensais créer une table temporaire FACTURES TEMP pour ne créer qu'une
seule fois la facture mais pour le numéro, je ne vois vraiment pas comment
faire pour le numéro automatique de facture.

Auriez-vous une idée ou un script ?

Existe-il une archive des mails de ce forum ? Peut-être que j'y trouverai le
problème déjà évoqué par quelqu'un ?

Merci d'avance.

Gundt


--
Cordialement,
Ze Titi

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

Avatar
Gundt
Bonjour Gundt

Pas tout compris mais regarde ici, tu auras peut-être un élément de
réponse:
http://officesystem.access.free.fr/ex_numauto_personnel.htm


Ok. Merci. J'essaie cela ce soir ou demain. Je me doutais bien que
quelqu'un devait avoir eu ce problème avant.

Je vous tiendrai au courant.

Un grand merci.

Gundt

Avatar
Jessy Sempere
Bonjour

Ou alors, une autre piste :
http://access.fr.free.fr/articles.php?lng=fr&pg1
--
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------



bonjour à tous,

Config : access 97 et appli : facturation

Je cherche à mettre un numéro automatique unique (pour imprimer sur les
factures).
Je m'explique :
j'ai fait les formulaires, les états d'une application de gestion de
commandes et de livraison qui tourne depuis 10 ans.
Maintenant, on me demande que l'application gère en plus la facturation.
Il faut donc créer et imprimer les factures.
J'arrive à créer un état factures qui récapitule l'ensemble des Bl pour
un mois donné et pour une personne ou un établissement donné. Mais je
n'arrive pas à créer un numéro de facture (unique)qui doit être créé au
moment de l'impression. J'ai parcouru l'onglet macros mais je ne trouve
rien qui me permette de trouver une solution. La solution est sûrement
dans la section modules mais je ne sais pas comment faire.

Je pensais créer une table temporaire FACTURES TEMP pour ne créer qu'une
seule fois la facture mais pour le numéro, je ne vois vraiment pas
comment faire pour le numéro automatique de facture.

Auriez-vous une idée ou un script ?

Existe-il une archive des mails de ce forum ? Peut-être que j'y
trouverai le problème déjà évoqué par quelqu'un ?

Merci d'avance.

Gundt



Avatar
ze Titi
Hello Jessy !

Il va vraiment falloir que je m'attarde sur ton site, j'y suis inscrit
mais je n'ai encore jamais eu le temps de réellement visiter. Mea
culpa. Promis, je te citerai dans mes prochains posts !

En ce jour mémorable du vendredi 02/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour

Ou alors, une autre piste :
http://access.fr.free.fr/articles.php?lng=fr&pg1
--
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------



bonjour à tous,

Config : access 97 et appli : facturation

Je cherche à mettre un numéro automatique unique (pour imprimer sur les
factures).
Je m'explique :
j'ai fait les formulaires, les états d'une application de gestion de
commandes et de livraison qui tourne depuis 10 ans.
Maintenant, on me demande que l'application gère en plus la facturation.
Il faut donc créer et imprimer les factures.
J'arrive à créer un état factures qui récapitule l'ensemble des Bl pour
un mois donné et pour une personne ou un établissement donné. Mais je
n'arrive pas à créer un numéro de facture (unique)qui doit être créé au
moment de l'impression. J'ai parcouru l'onglet macros mais je ne trouve
rien qui me permette de trouver une solution. La solution est sûrement
dans la section modules mais je ne sais pas comment faire.

Je pensais créer une table temporaire FACTURES TEMP pour ne créer qu'une
seule fois la facture mais pour le numéro, je ne vois vraiment pas
comment faire pour le numéro automatique de facture.

Auriez-vous une idée ou un script ?

Existe-il une archive des mails de ce forum ? Peut-être que j'y
trouverai le problème déjà évoqué par quelqu'un ?

Merci d'avance.

Gundt




--
Cordialement,
Ze Titi

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


Avatar
Jessy Sempere
Salut ze_titi

Je te rassure, mon site est loin de tout contenir, même si j'aimerais bien
avoir le temps d'en rajouter régulièrement... ;-)

Pour être honnête, Raymond a fait un travail de titan pendant une longue
période pour nous offrir son superbe site avec toutes ces astuces et
heureusement.

Perso, depuis que je suis passé sous Guppy en php j'arriva à le mettre à
jour et le compléter plus souvent et c'est tant mieux.

@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------



Hello Jessy !

Il va vraiment falloir que je m'attarde sur ton site, j'y suis inscrit
mais je n'ai encore jamais eu le temps de réellement visiter. Mea
culpa. Promis, je te citerai dans mes prochains posts !

En ce jour mémorable du vendredi 02/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour

Ou alors, une autre piste :
http://access.fr.free.fr/articles.php?lng=fr&pg1
--
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------



bonjour à tous,

Config : access 97 et appli : facturation

Je cherche à mettre un numéro automatique unique (pour imprimer sur les
factures).
Je m'explique :
j'ai fait les formulaires, les états d'une application de gestion de
commandes et de livraison qui tourne depuis 10 ans.
Maintenant, on me demande que l'application gère en plus la facturation.
Il faut donc créer et imprimer les factures.
J'arrive à créer un état factures qui récapitule l'ensemble des Bl pour
un mois donné et pour une personne ou un établissement donné. Mais je
n'arrive pas à créer un numéro de facture (unique)qui doit être créé au
moment de l'impression. J'ai parcouru l'onglet macros mais je ne trouve
rien qui me permette de trouver une solution. La solution est sûrement
dans la section modules mais je ne sais pas comment faire.

Je pensais créer une table temporaire FACTURES TEMP pour ne créer qu'une
seule fois la facture mais pour le numéro, je ne vois vraiment pas
comment faire pour le numéro automatique de facture.

Auriez-vous une idée ou un script ?

Existe-il une archive des mails de ce forum ? Peut-être que j'y
trouverai le problème déjà évoqué par quelqu'un ?

Merci d'avance.

Gundt




--
Cordialement,
Ze Titi

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







Avatar
ze Titi
Il n'empêche, rien que pour le redimensionement de formulaire hier, ton
site fournit une solution et je ne le savais pas... Conclusion, Titi,
mets-toi à jour ! ;-)

Et bravo pour le travail accompli !

Dans ton message
Salut ze_titi

Je te rassure, mon site est loin de tout contenir, même si j'aimerais bien
avoir le temps d'en rajouter régulièrement... ;-)

Pour être honnête, Raymond a fait un travail de titan pendant une longue
période pour nous offrir son superbe site avec toutes ces astuces et
heureusement.

Perso, depuis que je suis passé sous Guppy en php j'arriva à le mettre à
jour et le compléter plus souvent et c'est tant mieux.

@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------



Hello Jessy !

Il va vraiment falloir que je m'attarde sur ton site, j'y suis inscrit
mais je n'ai encore jamais eu le temps de réellement visiter. Mea
culpa. Promis, je te citerai dans mes prochains posts !

En ce jour mémorable du vendredi 02/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour

Ou alors, une autre piste :
http://access.fr.free.fr/articles.php?lng=fr&pg1
--
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l''''efficacité de tous :
http://www.mpfa.info/
------------------------------------



bonjour à tous,

Config : access 97 et appli : facturation

Je cherche à mettre un numéro automatique unique (pour imprimer sur les
factures).
Je m'explique :
j'ai fait les formulaires, les états d'une application de gestion de
commandes et de livraison qui tourne depuis 10 ans.
Maintenant, on me demande que l'application gère en plus la facturation.
Il faut donc créer et imprimer les factures.
J'arrive à créer un état factures qui récapitule l'ensemble des Bl pour
un mois donné et pour une personne ou un établissement donné. Mais je
n'arrive pas à créer un numéro de facture (unique)qui doit être créé au
moment de l'impression. J'ai parcouru l'onglet macros mais je ne trouve
rien qui me permette de trouver une solution. La solution est sûrement
dans la section modules mais je ne sais pas comment faire.

Je pensais créer une table temporaire FACTURES TEMP pour ne créer qu'une
seule fois la facture mais pour le numéro, je ne vois vraiment pas
comment faire pour le numéro automatique de facture.

Auriez-vous une idée ou un script ?

Existe-il une archive des mails de ce forum ? Peut-être que j'y
trouverai le problème déjà évoqué par quelqu'un ?

Merci d'avance.

Gundt




--
Cordialement,
Ze Titi

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






--
Cordialement,
Ze Titi

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




Avatar
Gundt
Hello Jessy !

Il va vraiment falloir que je m'attarde sur ton site, j'y suis inscrit
mais je n'ai encore jamais eu le temps de réellement visiter. Mea
culpa. Promis, je te citerai dans mes prochains posts !

En ce jour mémorable du vendredi 02/03/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour

Ou alors, une autre piste :
http://access.fr.free.fr/articles.php?lng=fr&pg1
--
@+
Jessy Sempere




Oui, j'essaierai tout cela mais la condition : il faut qu'un numéro
automatique soit créé uniquement lors d'édition des états factures. Il
n'y a pas de saisie dans un formulaire : la seule chose saisie est la
date définie pour la facture : ce sera soit :
- le numéro de semaine avec l'année
- soit le mois avec l'année.

En tout cas, merci pour ces 2 liens que je regarderai en détail : il y a
l'air d'avoir plein de bonnes choses là-dedans.

Je vous tiendrai au courant.

Gundt



Avatar
Gundt
Bonjour Gundt

Pas tout compris mais regarde ici, tu auras peut-être un élément de
réponse:
http://officesystem.access.free.fr/ex_numauto_personnel.htm


J'ai installé un script (voir plus bas) dans les modules pour avoir un
numéro automatique de facture.
Il ne fonctionne que si la table FACTURES contient au moins 1
enregistrement.
Si je mets un enregistrement bidon, il me calcule bien les numéros de
facture et me les ajoute bien dans la table FACTURES.

Le problème, c'est que quand je vais l'installer et le mettre ne route,
il n' y aura pas encore de factures dans la table. Je ne peux quand même
pas insérer un enregistrement faux dans la table !!

L'utilisateur saisit le mois et l'année dans le forms Choix_fact_perso

Quand je lance l'édition des factures, le programme doit éditer toutes
les factures pour les clients qui ont acheté durant le mois et l'année
sélectionnée et je veux qu'un numéro de facture soit attribué
automatiquement.
J'espère que vous comprendrez ce que je veux dire : cela n'est pas
évident à expliquer en quelques lignes.
Et de plus, je ne maîtrise que partiellement les modules.

Si vous pouviez me dire où est l'erreur dans le module,
Merci d'avance de votre aide.

Gundt


Ci-dessous les infos complémentaires :
Table FACTURES :
champs :
Numfacture : champ texte
Codetab : num
Codeservice : num
Mois : Texte
Année : Texte
Emission : Date
CodeClient : num

Autres tables :
BL TEMP et LIGNES BL TEMP, CLIENTS, SERVICES,


BL1 chrono est une requête.
En sql, cela donne ceci :
SELECT DISTINCTROW [BL TEMP].*, CLIENTS.Codetab, CLIENTS.[Code service],
SERVICES.[Nom du service], SERVICES.Factureindividuelle, CLIENTS.Nom,
CLIENTS.Monsieur, CLIENTS.Prénom, CLIENTS.Adresse, CLIENTS.Ville,
CLIENTS.[Code Postal]
FROM (SERVICES INNER JOIN CLIENTS ON SERVICES.Codeservice =
CLIENTS.[Code service]) INNER JOIN [BL TEMP] ON CLIENTS.Codeclient = [BL
TEMP].CodeClient
ORDER BY [BL TEMP].CodeClient, [BL TEMP].date;

Voici le code dans la section modules :

Function Numfacture()
Dim db As Database
Dim r As Recordset, s As Recordset, f As Form
Dim suivnum1 As String, suivnum2 As String, suivnum As String, nouvnum
As String
Dim numero As Long
Dim codecli1 As Long

Set db = DBEngine(0)(0)
Set r = db.OpenRecordset("BL1 chrono", DB_OPEN_DYNASET)
Set s = db.OpenRecordset("Factures", DB_OPEN_DYNASET)
Set f = Forms![Choix_fact_perso]

If Not s.EOF Then s.MoveLast
' On ajoute la lettre A au numéro de facture pour indiquer que les
factures appartiennent à l'Atelier
suivnum1 = "A"

suivnum = s!Numfacture

If Mid(suivnum, 2, 4) = f!Année And Mid(suivnum, 6, 2) = f!Mois Then
nouvnum = suivnum1 & Mid(suivnum, 2, 6) & Format(Val(Mid(suivnum,
8, 3)) + 1, "000")
numero = Val(Mid(nouvnum, 8, 3))
Else
nouvnum = suivnum1 & Format(f!Année, "0000") & Format(f!Mois, "00")
& "001"
numero = 1
End If
f!test = nouvnum

If Not r.BOF Then r.MoveFirst
codecli1 = r!CodeClient

On Error Resume Next

Do While Not r.EOF

s.AddNew
s!Numfacture = nouvnum
s!CodeClient = r!CodeClient
s!Codetab = r!Codetab
s!Codeservice = r![Code service]
s!Mois = Format(f!Mois, "00")
s!Année = Format(f!Année, "0000")
s.Update
numero = numero + 1
nouvnum = suivnum1 & Format(f!Année, "0000") & Format(f!Mois,
"00") & Format(numero, "000")
codecli1 = r!CodeClient
r.MoveNext
Loop

End Function

Avatar
Gundt
Bonjour à tous,

Je continue mes recherches dans l'erreur du code.

Quand je désactive la concaténation A avec le numéro automatique (quand
j'enlève le A en début de numéro), j'obtiens le message
"Erreur d'exécution '3021' : pas d'enregistrement courant."
J'ai la fenêtre de déboguage qui s'arrête sur la ligne suivante :

suivnum = s!Numfacture

J'ai laissé ci-dessous le début du code et pour la totalité du code,
voir post précédent).

Je précise que la procédure Numfacture est appelée par le formulaire de
saisie Choix_fact_perso par le bouton Aperçu avant impression et
ensuite, quand la procédure Numfacture est terminée, on ouvre l'état des
factures en mode Aperçu avant impression.

mais je ne sais pas comment éviter l'erreur :
Je pense qu'il faudrait :
- test de la table si elle est vide,
- si oui, on fait quelque chose mais je ne sais pas ce qu'il faudrait y
faire .

pour ceux qui m'ont conseillé d'utiliser le code sur la page
http://officesystem.access.free.fr/ex_numauto_personnel.htm

Je n'ai pas réussi à l'intégrer dans mon code : j'aurais voulu choisir
le mode 3 au mois (numérotation au mois comme 200703001) et c'est pour
access 97.

Voici le code dans la section modules :

Function Numfacture()
Dim db As Database
Dim r As Recordset, s As Recordset, f As Form
Dim suivnum1 As String, suivnum2 As String, suivnum As String, nouvnum
As String
Dim numero As Long
Dim codecli1 As Long

Set db = DBEngine(0)(0)
Set r = db.OpenRecordset("BL1 chrono", DB_OPEN_DYNASET)
Set s = db.OpenRecordset("Factures", DB_OPEN_DYNASET)
Set f = Forms![Choix_fact_perso]

If Not s.EOF Then s.MoveLast
' On ajoute la lettre A au numéro de facture pour indiquer que les
factures appartiennent à l'Atelier
suivnum1 = "A"

suivnum = s!Numfacture


merci de vos lumières.

Gundt

Avatar
Eric
Bonjour,

En fait, tu as 2 cas :
- soit le recordset est vide
- soit il n' y a pas de encore de numéro encore attribué pour cette
période (AnneeMois).

Tu pourrais essayer à la place de (à adapter bien sur car écrit dans le
bloc-notes):
If Not s.EOF Then s.MoveLast
' On ajoute la lettre A au numéro de facture pour indiquer que les
factures appartiennent à l'Atelier
suivnum1 = "A"
suivnum = s!Numfacture
If Mid(suivnum, 2, 4) = f!Année And Mid(suivnum, 6, 2) = f!Mois Then
nouvnum = suivnum1 & Mid(suivnum, 2, 6) & Format(Val(Mid(suivnum,
8, 3)) + 1, "000")
numero = Val(Mid(nouvnum, 8, 3))
Else
nouvnum = suivnum1 & Format(f!Année, "0000") & Format(f!Mois, "00")
& "001"
numero = 1
End If
f!test = nouvnum

ceci :
suivnum1 = "A"
numero=1
In s.BOF then
suivnum=fNouveauNumero(suivnum1)
else
suivnum=s!numfacture
If Mid(suivnum, 2, 4) = f!Année And Mid(suivnum, 6, 2) = f!Mois Then
nouvnum = suivnum1 & Mid(suivnum, 2, 6) &
Format(Val(Mid(suivnum, 8, 3)) + 1, "000")
numero = Val(Mid(nouvnum, 8, 3))
Else
suivnum=fNouveauNumero(suivnum1)
End If
f!test = nouvnum
...

avec la fonction suivante à copier dans le même module :
Function fNouveauNumero(UneChaine as string) as string
fNouveauNumero = UneChaine _
& Format(f!Année, "0000") _
& Format(f!Mois, "00") & "001"
End Function

Bonjour à tous,

Je continue mes recherches dans l'erreur du code.

Quand je désactive la concaténation A avec le numéro automatique (quand
j'enlève le A en début de numéro), j'obtiens le message
"Erreur d'exécution '3021' : pas d'enregistrement courant."
J'ai la fenêtre de déboguage qui s'arrête sur la ligne suivante :

suivnum = s!Numfacture
...

Gundt


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

1 2