Arguments de type incorrect

Signaler
Messages postés
2
Date d'inscription
vendredi 8 juin 2007
Statut
Membre
Dernière intervention
13 septembre 2007
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour à tous,
Pouvez-vous m'aider à trouver l'erreurs qui se trouve dans le code ci-dessous?
Je n'arrive pas à faire des recherches  avec des noms s'écrivant avec apostrophe sur le formulaire de mon application. Il apparait : " Les arguments sont de type incorrect, en dehors des limites autorisées ou en conflit les uns avec les autres". Voici le code:
Private Sub cmdRech_Click()<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

    Dim Condition As String

   

    

    If txtService.Text <> "" Then

        If Condition = "" Then

            Condition = "Service like '%" & CStr(Trim(txtService.Text)) & "%'"

        Else

            Condition = Condition & " And Service like '%" & Trim(txtService.Text) & "%'"

        End If

   End If

   

   

   

    If Condition <> "" Then

        DataEnvir.rsDemandeurs.Filter = Condition

       

    Else

        MsgBox "Aucun critère de recherche précisé", vbOKOnly + vbInformation, "ATTENTION"

    

    End If

   

End Sub

Merci d'avance!
A voir également:

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Salut
En effet, les apostrophes dans les textes se confondent avec les apostrophes utilisées dans la syntaxe SQL.
Problème aussi je crois avec les les guillemets " ou les \ ou /
La solution consiste à doubler leur nombre :
   Dim sTemp As String
   sTemp = Trim(txtService.Text)
   sTemp = Replace(sTemp, "'", "''")
   ...
   Condition = "Service like '%" & sTemp & "%'"

PS1 : Ton CStr ne sert à rien puisque Trim est déjà une fonction dédiée aux chaines
PS2 : Tu aurais trouver cette réponse en cherchant "sql apostrophe" parmi les questions du forum

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
PS3 : "%" n'est pas très logique dans ta recherche... "*"  ??
PS4 : pourquoi retester condition, tu fais un if avant, le msgbox va dans le else non?
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Si si, PCPT, le * est un % sous SQL