Générer automatiquement des codes magasin (MGL)
Principe⚓
Access - Programmation⚓
Écran : Description rapide du code⚓
- txt_code_format⚓
Cette chaîne via la zone de texte nommée
txt_code_format
sera analysée de façon à en extraire le nombre de caractères souhaités de chaque côté du séparateur (ici, le -).Vous trouverez ci-dessous le code de la procédure qui réalise cette extraction : elle est appelée dans la procédure bt_exe_defaut_Click() :
1Public Function MAJcodeDefaut(sCodeFormat As String, sNum As Long, sCodeDroite As String, sNom As String, Optional ByVal sCherche As String = "-")
23Dim cCherche As String
4Dim iPos As Integer
5Dim nb0 As Integer
67Dim sGauche As String
8Dim sDroite As String
910Dim sRes As String
111213iPos = InStr(sCodeFormat, sCherche)
14If iPos > 1 Then sGauche = Left(sCodeFormat, Len(iPos) - 1) Else sGauche = ""
15If iPos > 1 Then sDroite = Right(sCodeFormat, Len(sCodeFormat) - iPos) Else sDroite = ""
16nb0 = Len(sDroite)
1718sRes = sGauche & sCherche & Right("000" & sNum, nb0)
19sNom = sRes & sCherche & sCodeDroite
2021MAJcodeDefaut = sRes
22232425End Function
- txt_idCodeMGdefaut et txt_codeMGdefaut⚓
- txt_ndeb⚓
- Bouton Code⚓
Ce bouton
code
affiche simplement le code et le libellé de la première position magasin qui sera généréCode lié au bouton⚓
1Private Sub bt_exe_defaut_Click()
2Dim snomMGLDefaut As String
34snomMGLDefaut = ""
5Me.txt_codeMGdefaut.Value = Me.txt_idCodeMGdefaut.Column(1)
67Me.txt_codeMGLdefaut.Value = MAJcodeDefaut(Me.txt_code_format.Value, Me.txt_ndeb.Value, Me.txt_codeMGdefaut.Value, snomMGLDefaut, "-")
8Me.txt_nomMGLdefaut.Value = snomMGLDefaut
9 - txt_codeMGLdefaut et txt_nomMGLdefaut⚓
- txt_nb_A_Ajouter⚓
Cette donnée permettra de dimensionner la boucle qui va automatiser la création des enregistrements dans la base donnée.
- bt_ajoute⚓
Va exécuter le code générant la création des enregistrements.
Code lié au bouton⚓
1Private Sub bt_ajoute_Click()
23Dim strCrit As String
4Dim btrouve As Boolean
5Dim i As Integer
67Dim t As Recordset
89Set t = CurrentDb.OpenRecordset("tbMGL", DB_OPEN_DYNASET)
10For i = 1 To Me.txt_nb_A_Ajouter
11t.AddNew
12t!codeMGL = Me.txt_codeMGLdefaut
13t!nomMGL = Me.txt_nomMGLdefaut
14t!idMG = Me.txt_idCodeMGdefaut
15t.Update
16t.MoveLast
17Me.txt_ndeb = Me.txt_ndeb + 1
18Call bt_exe_defaut_Click
19Next i
2021t.Close
22Set t = Nothing
2324DoCmd.Requery
25' code permettant de chercher si un enregistrement avec un code existe déjà
26'strCrit = "[codeMGL] = '" & Me.txt_codeMGLdefaut & "'"
27'btrouve = ChercherEnregistrement(Me, strCrit)
2829End Sub