Bravo Sylvain,
Voici donc une nouvelle soft (les data restent telles quelles).
1° J’ai modifié le nom des champs de "tFabricants" pour les « normaliser ».
Pour modifier chez toi, tu cliques sur le bouton « Modif structure tFabricants ».
Cela a pour effet d’exécuter la Sub « modif_tFabricants » que voici
2° J’ai ajouté une fonction « ValidNumTouret ».
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 Public Sub modif_tFabricants() On Error GoTo GestionErreur 'Définition des variables Dim db As DAO.Database Set db = OpenDatabase(CheminData) 'Fabricant => CodeFabricant db.Execute ("ALTER TABLE tfabricants ADD COLUMN CodeFabricant Text(2)") db.Execute ("UPDATE tfabricants SET CodeFabricant = Fabricant;") db.Execute ("ALTER TABLE tfabricants DROP COLUMN Fabricant") 'Champ1 => NomFabricant db.Execute ("ALTER TABLE tfabricants ADD COLUMN NomFabricant Text(40)") db.Execute ("UPDATE tfabricants SET NomFabricant = champ1;") db.Execute ("ALTER TABLE tfabricants DROP COLUMN champ1") MsgBox "La structure de tFabricants a été modifiée", vbInformation Exit Sub GestionErreur: Select Case Err.Number Case 3380 ' répétition erronée de l'exécution MsgBox "La modification a déjà été faite" Exit Sub Case Else MsgBox "Erreur" & Err.Number & " " & Err.Description & " dans modif_tFabricants.", vbCritical End Select End Sub
Elle se déclenche après la mise à jour du contrôle « zdlNumTouretSpec ».
On vérifie la structure :
- deux premières positions : les lettres du code fabricant ;
- la dernière position : une lettre de A à I ;
- de la troisième à l’avant-dernière position : des chiffres.
3° le TIC est maintenant toujours obligatoire quel que soit le libellé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Public Function ValidNumTouret(Num As String) As Boolean ValidNumTouret = True If Num Like "couronne*" Then Exit Function 'Vérifier que les positions 1 et 2 sont un code fabricant If DCount("*", "tfabricants", "CodeFabricant =""" & Left(Num, 2) & """") = 0 Then ValidNumTouret = False 'Vérifier que la dernière position est une lettre de A à I If Right(Num, 1) < "A" Or Right(Num, 1) > "I" Then ValidNumTouret = False 'Vérifier que l'intérieur est numérique If Not IsNumeric(Mid(Num, 3, Len(Num) - 3)) Then ValidNumTouret = False End Function
Quelle prochaine étape veux-tu traiter maintenant ?
Partager