Bonjour la communauté,
j'ai un code au sein de ma base qui me permets de me prévenir lorsque j'oubli de remplir un de mes champs lors de l'enregistrement d'un mouvement.
Ce code est incorporé dans mon formulaire :
Voici une ligne d'enregistrement pour voir un rendu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Option Compare Database Private Sub Form_AfterUpdate() If Not IsNull(Me.DateMvt) And IsNull(Me.LibelleMvt) Then MsgBox "Vous avez oublié de saisir un libellé !" Me.LibelleMvt.SetFocus Exit Sub End If If Not IsNull(Me.DateMvt) And IsNull(Me.MontantMvt) Then MsgBox "Vous avez oublié de saisir un montant !" Me.MontantMvt.SetFocus Exit Sub End If If Not IsNull(Me.DateMvt) And IsNull(Me.Paiement) Then MsgBox "Vous avez oublié de saisir un moyen de paiement !" Me.Paiement.SetFocus Exit Sub End If If Not IsNull(Me.DateMvt) And IsNull(Me.CodeJrnl) Then MsgBox "Vous avez oublié de saisir un code de journal!" Me.CodeJrnl.SetFocus Exit Sub End If If Not IsNull(Me.DateMvt) And IsNull(Me.CodeSsJrnl) Then MsgBox "Vous avez oublié de saisir un code de sous journal!" Me.CodeSsJrnl.SetFocus Exit Sub End If If (Me.Paiement) = "Chèque" And IsNull(Me.NumChq) Then MsgBox "Vous avez oublié de saisir le numéro de chéque correspondant!" Me.NumChq.SetFocus Exit Sub End If If (Me.Paiement) = "Chèque" Or (Me.Paiement) = "Espèces" Or (Me.Paiement) = "Espèces et chèque" Then Me.EnAttente = True End If If (Me.CodeJrnl) <> Left(Me.CodeSsJrnl, Len(Me.CodeJrnl)) Then MsgBox "Le code Journal ne correspond pas au code sous journal" End If End Sub
Pour information, le code de contrôle ci-dessus fonctionne à merveille, grâce à la communauté du forum.
Mais je me suis poser diverses réflexions sur ce formulaire afin de l'automatiser pour éviter tout risque d'erreur lors de la saisie d'un mouvement.
Donc, je me suis dit pourquoi faire un code de contrôle au lieu d'exécuter cette tâche automatiquement, au lieu de l'exécuter manuellement.
Car lorsque je change mon CodeSsJrnl de ma ligne de saisie je dois également changer le CodeJrnl.
Donc via une automatisation, j'aimerai que le CodeJrnl se remplit automatiquement via le CodeSsJrnl.
C'est-à-dire si le CodeSsJrnl est ADEPXX alors il indique ADEP en CodeJrnl, de même pour AREVXX, il indique directement AREV.
Un code journal se compose de trois ou quatre lettres, et un code sous-journal reprend les lettres du code journal suivi de deux chiffres.
Par exemple pour le code journal " ADEP " on a comme sous journal ADEP01; ADEP02, pour le code journal "LOG" on a comme sous journal LOG01, LOG02...
Donc pour essayer de réussir à intégrer cette automatisation je pars sur un code qui commence par la droite, à partir du troisième caractère il débute l'extraction des caractères afin d'éliminer les deux chiffres.
J'aurais fait ceci en code :
Mais peut-on mettre ceci dans la même procédure de contrôle aussi ? Car il faut peut-être déclarer les variables des champs, vu que l'on ne fait plus un contrôle mais une automatisation ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part (Me.CodeJrnl) = Right(Me.CodeSsJrnl, 3)
Je remercie la communauté pour son aide.
Bonne journée à vous,
Bien cordialement,
Benjamin.
Partager