apostrophe dans recherche vba

apostrophe dans recherche vba - VB/VBA/VBS - Programmation

Marsh Posté le 25-04-2006 à 14:19:03    

salut je dois faire une recherche en vba, mais certaines données de ma recherche comporte une apostrophe
Le code fonctionne mais dès que je souhaite écrire "site d'amiens" ou "site d'arras", mon programme bug à cause de cette apostrophe
voici mon code, si qq peut me venir en aide, je lui en suis très reconnaissante ! :jap:  
Private Sub Commande5_Click()
 
Dim db As Database
Dim rs As Recordset
Dim chainesql, chaine, recherche As String
 
'ouverture de la base de données
Set db = CurrentDb
'Ouverture d'une boîte message dans laquelle l'utilisateur va saisir le nom de l'étape qu'il recherche
recherche = InputBox("Saisissez le nom de l'étape ou du passage que vous recherchez : " )
chainesql = "SELECT NumEtape, NomEtape FROM Table1 WHERE Table1.NomEtape Like '*" & recherche & "*'"
'ouverture du recordset
Set rs = db.OpenRecordset(chainesql)
chaine = ""
 
'si l'utilisateur n'a saisi aucune valeur
If recherche = "" Then
    MsgBox ("vous n'avez saisi aucune valeur" )
Else
    'si l'utilisateur a saisi une mauvaise valeur / la valeur n'a pas été trouvée
    If rs.EOF = True Then
        MsgBox ("Nous n'avons trouvé aucune étape correspondant à " & recherche)
    Else
    'la valeur a été trouvée
        rs.MoveFirst
    Do While rs.EOF = False
            chaine = chaine & rs!NumEtape & " " & rs!NomEtape & vbCrLf
        rs.MoveNext
    Loop
'affichage des valeurs dans une boîte message
    MsgBox (chaine)
End If
End If
End Sub

Reply

Marsh Posté le 25-04-2006 à 14:19:03   

Reply

Marsh Posté le 25-04-2006 à 14:41:04    

La solution est simple,il suffit de doubler l'apostrophe. Le gestionnaire SQL comprendra qu'il s'agit du caractère apostrophe et ne ferra plus d'erreur.
Au lieu de passer comme parametre a ta requete : "Site d'Arras" il faut lui passer "Site d''Arras" et ca fonctionera.
 
tu peux utiliser la fonction Replace() pour ca!

Code :
  1. Replace(Chaine,"'","''" )


 
Bon Courage
 
Marco


Message édité par 4lkaline le 25-04-2006 à 14:41:25
Reply

Marsh Posté le 25-04-2006 à 16:04:15    

ah yes! merci bcp bcp! ça fonctionne!

Reply

Marsh Posté le 25-04-2006 à 17:26:17    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed