Se connecter / S'enregistrer
Votre question

problème requête SQL VBA [resolu]

Tags :
  • Sql
  • Programmation
Dernière réponse : dans Programmation
25 Mai 2007 12:48:24

Salut à tous, j'ai un petit concernant l'exécution de ma requête SQL qui interroge ma base ACCESS

Parmis les modèles de véhicule que je recherche j'ai la KIA CEE'D mais comme vous pouvez le constater dans CEE'D il y a un ' donc dans ma requête.... il n'arrive pas à trouver ce modèle

l'erreur qu'il m'indique est : Erreur de syntaxe (opérateur absent) dans l'expression '(((MARQUE.Marque)='KIA') AND ((MODELE.Modele)='CEED'D') AND ((GENRE.Genre)='VP'));'

le ' pose problème. Alors comment éviter qu'il ne prenne ce ' comme une balise.

Voici le code

  1. For J = 35000 To 36000
  2. 'On Error Resume Next
  3. 'Requête SQL2
  4. val = Sheets("IMMATs Modèle VP").Range("C" & J).Text
  5. val2 = Sheets("IMMATs Modèle VP").Range("D" & J).Text
  6. val3 = Sheets("IMMATs Modèle VP").Range("E" & J).Text
  7. strSql = "SELECT DISTINCT Modele.Id_Modele FROM Genre INNER JOIN (MARQUE INNER JOIN Modele ON MARQUE.Id_Marque = Modele.Id_Marque) ON Genre.Id_Genre = Modele.Id_Genre WHERE (((MARQUE.Marque)=" & "'" & val & "'" & ") AND ((Modele.Modele)=" & "'" & val2 & "'" & ") AND ((Genre.Genre)=" & "'" & val3 & "'" & "));"
  8.  
  9. 'Ouverture du jeu d'enregistrements.
  10. Set rst = New ADODB.Recordset
  11.  
  12. 'Paramètres de Résultat de la Requête
  13. With rst
  14. .Open Source:=strSql, _
  15. ActiveConnection:=cn, _
  16. CursorType:=adOpenForwardOnly, _
  17. LockType:=adLockReadOnly
  18. End With


Merci d'avance pout votre aide

Autres pages sur : probleme requete sql vba resolu

25 Mai 2007 13:26:30

dim toto as string
toto="to'to"
toto=Replace(toto," ' "," \ ' ")

(j'ai rajouté des espaces dans les 2 derniers parametres de Replace (pour la lisibilité))
25 Mai 2007 13:34:32

Niquel merci beaucoup elendilm. je connaissais pas cette fonction replace mais pk as tu mis un \?

moi j'ai mis :
val2 = Replace(val2, " ' ", " ' ' ")

Merci encore
25 Mai 2007 21:30:43

pour despecialiser le caractere.

J'ai beaucoup d'expérience en C* (c/c++ ...) et le caractere de despecialisation est le "\" ...

en VBA, je suis 1 peu plus limité. Requete, organisation de tableaux, de stats ... il semble donc qu'il faille mettre 2 ' pour les requetes SQL... comme ça, je le saurai!
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS