code numéro auto sur sélection d'un champ de formulaire
1 réponse
Gundt
Bonjour à tous,
Dans mon appli, j'ai réussi grâce à vous à produire une facturation
automatique de tous les BL pour un mois donné et une année donnée : ==>
calcul automatique d'un numéro de facture, copie des éléments vers les
tables Factures et lignes Factures, puis édition de la facture, etc ...
Une deuxième fonctionnalité m'est demandée : pouvoir créer une facture
au cas par cas en fonction du client, c'est-à-dire créer une seule
facture pour un client (en utilisant le même principe qu'avant) avant la
fin de mois.
J'ai donc repris le module facture automatique et et j'ai créé une
nouvelle procédure tirée de l'ancienne qui marchait.
Choix du client par un déroulant Codeclient dans le
Forms![Choix_cli_fact_perso]
Mais mon code est adapté pour la sélection du mois et de l'année (voir
posts sur numéros automatique d'un état).
Je n'ai pas d'erreur mais la facture n'est pas créée et je ne sais pas
l'adapter à la sélection du client par
Forms![Choix_cli_fact_perso].[CodeClient].
J'ai changé sql1 mais je ne sais pas changer après.
Nota : Le CodeClient est une valeur numérique même si c'est les noms des
clients qui apparaissent dans la liste déroulante.
Voici le code :
Function Numfactureindivi()
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
Dim mm As Byte
Dim yyyy As Long
Dim sql1 As String
' -------------------------------------------------------
Set r = db.OpenRecordset(sql1, DB_OPEN_DYNASET)
Set s = db.OpenRecordset("Factures", DB_OPEN_DYNASET)
' formulaire pour choix de client pour 1 facture
Set f = Forms![Choix_cli_fact_perso]
'
-------------------------------------------------------------------------------
'' On ajoute la lettre A au numéro de facture pour indiquer que les
factures appartiennent à l'Atelier
'suivnum1 = "A"
'
-------------------------------------------------------------------------------
' numérotation avec A
If Not s.EOF Then s.MoveLast
suivnum1 = "A"
numero = 1
If s.BOF Then
nouvnum = fNouveauNum(suivnum1)
Else
s.MoveLast
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 = fNouveauNum(suivnum1)
End If
End If
f!test = nouvnum
If Not r.BOF Then r.MoveFirst
codecli1 = r!CodeClient
On Error Resume Next
Do While Not r.EOF
If Format(r!DateSortie_temp, "yyyymm") = Format(f!Année, "0000") &
Format(f!Mois, "00") Then
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gundt
Bonjour à tous,
[...] Bon, je n'ai pas eu de réponse. Je m'apprêtais à formuler ma question
autrement et le fait d'y réfléchir comment poser le problème autrement m'a donné la solution. En fait, j'ai repris le code précédent (numéro automatique de facture d'après le mois et l'année saisi par l'utilisateur). J'ai donc ajouté 2 contrôles dans mon formulaire : cela a l'air de marcher. J'ai juste un problème d'actualisation de liste déroulante.
Je vais poster sur un autre post pour ce problème de liste déroulante. Je pense que ce sera mieux pour le forum.
A tout de suite.
Gundt
Bonjour à tous,
[...]
Bon, je n'ai pas eu de réponse. Je m'apprêtais à formuler ma question
autrement et le fait d'y réfléchir comment poser le problème autrement
m'a donné la solution. En fait, j'ai repris le code précédent (numéro
automatique de facture d'après le mois et l'année saisi par l'utilisateur).
J'ai donc ajouté 2 contrôles dans mon formulaire : cela a l'air de
marcher. J'ai juste un problème d'actualisation de liste déroulante.
Je vais poster sur un autre post pour ce problème de liste déroulante.
Je pense que ce sera mieux pour le forum.
[...] Bon, je n'ai pas eu de réponse. Je m'apprêtais à formuler ma question
autrement et le fait d'y réfléchir comment poser le problème autrement m'a donné la solution. En fait, j'ai repris le code précédent (numéro automatique de facture d'après le mois et l'année saisi par l'utilisateur). J'ai donc ajouté 2 contrôles dans mon formulaire : cela a l'air de marcher. J'ai juste un problème d'actualisation de liste déroulante.
Je vais poster sur un autre post pour ce problème de liste déroulante. Je pense que ce sera mieux pour le forum.