Bonjour tout le monde,
Voici mon problème sur clique du bouton btn_ajout_marque une fenêtre InputBox apparaît et demande de rentrer la marque à ajouter quand on saisi le nom et qu'on valide ca marche. j'utilise ce code pour cette action
et GetProperName fait appelle à ce module qui permet de mettre toute les 1er lettre du mot en majuscule.
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 Private Sub btn_ajout_marque_Click() Dim oRst As DAO.Recordset nouvelEnregistrement = GetProperName(InputBox("Entrez ci-dessous l'élément à rajouter dans la liste :")) If nouvelEnregistrement = "" Or IsNull(nouvelEnregistrement) Then Exit Sub Else Set oRst = CurrentDb.OpenRecordset("select nom_marque from tbl_marque", dbOpenDynaset) While Not oRst.EOF If nouvelEnregistrement = oRst.Fields("nom_marque").Value Then MsgBox ("L'élément saisi existe déjà dans la liste.") Exit Sub End If oRst.MoveNext Wend With DoCmd .SetWarnings False .RunSQL "INSERT INTO tbl_marque(nom_marque) VALUES ('" & nouvelEnregistrement & "');" .SetWarnings True End With MsgBox ("L'élément " & nouvelEnregistrement & " a été ajouté à la liste.") End If End Sub
Par contre quand on fait annuler avec une saisi ou non j'ai une fenêtre d'erreur qui apparaît qui est:
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 Option Compare Database Option Explicit Public Function GetProperName(ByVal TextToConvert As String) As String Dim i As Integer Dim separateur separateur = Array(" ", ";", ":", "-", "~", "@", "_", "&", "*", "#", "'", Chr(160)) TextToConvert = LCase(TextToConvert) 'mettre la première lettre en majuscule TextToConvert = UCase(Mid(TextToConvert, 1, 1)) + Right(TextToConvert, Len(TextToConvert) - 1) 'mettre en majuscule après chaque séparateur For i = 1 To Len(TextToConvert) - 1 If UBound(Filter(separateur, Mid(TextToConvert, i, 1))) >= 0 Then TextToConvert = Left(TextToConvert, i) + UCase(Mid(TextToConvert, i + 1, 1)) + Right(TextToConvert, Len(TextToConvert) - i - 1) End If Next i GetProperName = TextToConvert End Function
Erreur d'exécution "5":
Argument ou appelle de procédure incorrect.
quand je clique sur débogage il pointe sur la ligne que j'ai mis en gros.
Pourquoi ai-je cette erreur? Alors que ce module fonctionne très bien sur d'autre formulaire.
Je vous remercie par avance de votre![]()
Partager