Arguments de type incorrect

ya Ngoungou Messages postés 2 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 13 septembre 2007 - 13 sept. 2007 à 17:26
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 14 sept. 2007 à 01:49
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!

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 sept. 2007 à 19:12
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)
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 sept. 2007 à 22:58
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?
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 sept. 2007 à 01:49
Si si, PCPT, le * est un % sous SQL
0
Rejoignez-nous