begin process at 2010 02 10 03:12:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Bases de données

 > 

P.... d'apostrophe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

P.... d'apostrophe

mercredi 26 juin 2002 à 08:25:20 | P.... d'apostrophe

Bagbones

Bonjour,

je tente désespérement de passer un argument contenant un apostrophe à une requête SQL, mais ca plante (opérateur absent), voila l'un des codes que j'ai essayé :

If (Princ.Combo17.Text <> "") Then
std = DoubleCote(Princ.Combo17.Text)
Set mag = New Recordset
mag.Open "select telemag from magasins where Region ='" & _
Princ.Combo16.Text & "' and Villemag ='" & Princ.Combo15.Text & _
"' and Adressemag =" & std, conmag, adOpenDynamic

telmag = mag!Telemag
mag.Close
End If


'Fonction reprise sur http://docvb.free.fr/

' A noter que depuis VB6 un simple Replace( stTXT, "'", "''") suffit.
Public Function DoubleCote(ByVal stTXT As String) As String
' Reçoit une chaîne et double les apostrophes qui se trouvent à l'intérieur...
Dim lgPos As Long
Dim stTMP As String
stTMP = stTXT
' On cherche la position dans la chaîne de la première apostrophe
lgPos = InStr(stTMP, "'")
' Tant qu'il y a des apostrophes dans la chaîne...
Do While lgPos > 0
' Chaîne = début de la chaîne (apostrophe comprise) + "'" + fin de la chaîne
stTMP = Left$(stTMP, lgPos) & "'" & Right$(stTMP, Len(stTMP) - lgPos)
' On cherche la position de l'apostrophe suivante
lgPos = InStr(lgPos + 2, stTMP, "'")
Loop
' Renvoie la chaîne modifiée
DoubleCote = Trim(stTMP)
End Function

voila, je sais qu'il faut remplaceer l'apostrophe par une double apostrophe, et c'est ce que fait trés bien cette fonction, mais ma requête plante quand même, alors QUID?

Merci,
Bagbones
mercredi 26 juin 2002 à 09:57:15 | Re : P.... d'apostrophe

nariel1

Membre Club
essaye plutot ca
Public Function CheckForQuote(str As String)
If str = "" Then
CheckForQuote = ""
Exit Function
End If
Dim lPos As Long
Dim slPos1 As Long
lPos = 1


Do While lPos <> 0
slPos1 = InStr(lPos, str, "'")


If slPos1 > 0 Then
str = Mid(str, 1, slPos1) & "'" & _
Mid(str, slPos1 + 1, Len(str) - slPos1)
lPos = InStr(slPos1 + 1, str, "'") + 1
Else
lPos = 0
End If
Loop
CheckForQuote = str
End Function
nariel1



-------------------------------
Réponse au message :
-------------------------------

Bonjour,

je tente désespérement de passer un argument contenant un apostrophe à une requête SQL, mais ca plante (opérateur absent), voila l'un des codes que j'ai essayé :

If (Princ.Combo17.Text <> "") Then
std = DoubleCote(Princ.Combo17.Text)
Set mag = New Recordset
mag.Open "select telemag from magasins where Region ='" & _
Princ.Combo16.Text & "' and Villemag ='" & Princ.Combo15.Text & _
"' and Adressemag =" & std, conmag, adOpenDynamic

telmag = mag!Telemag
mag.Close
End If


'Fonction reprise sur http://docvb.free.fr/

' A noter que depuis VB6 un simple Replace( stTXT, "'", "''") suffit.
Public Function DoubleCote(ByVal stTXT As String) As String
' Reçoit une chaîne et double les apostrophes qui se trouvent à l'intérieur...
Dim lgPos As Long
Dim stTMP As String
stTMP = stTXT
' On cherche la position dans la chaîne de la première apostrophe
lgPos = InStr(stTMP, "'")
' Tant qu'il y a des apostrophes dans la chaîne...
Do While lgPos > 0
' Chaîne = début de la chaîne (apostrophe comprise) + "'" + fin de la chaîne
stTMP = Left$(stTMP, lgPos) & "'" & Right$(stTMP, Len(stTMP) - lgPos)
' On cherche la position de l'apostrophe suivante
lgPos = InStr(lgPos + 2, stTMP, "'")
Loop
' Renvoie la chaîne modifiée
DoubleCote = Trim(stTMP)
End Function

voila, je sais qu'il faut remplaceer l'apostrophe par une double apostrophe, et c'est ce que fait trés bien cette fonction, mais ma requête plante quand même, alors QUID?

Merci,
Bagbones

mercredi 26 juin 2002 à 09:59:11 | Re : P.... d'apostrophe

DeathAngel

Salut !

Bah si tu m'offres le café, je te le dit =D

bon, regarde :

"' and Adressemag =" & std, conmag, adOpenDynamic

si tu le remplace par :
"' and Adressemag ='" & std & "'", conmag, adOpenDynamic

ca va de suite mieux marcher

@peluche et bon dev'
DA



-------------------------------
Réponse au message :
-------------------------------

Bonjour,

je tente désespérement de passer un argument contenant un apostrophe à une requête SQL, mais ca plante (opérateur absent), voila l'un des codes que j'ai essayé :

If (Princ.Combo17.Text <> "") Then
std = DoubleCote(Princ.Combo17.Text)
Set mag = New Recordset
mag.Open "select telemag from magasins where Region ='" & _
Princ.Combo16.Text & "' and Villemag ='" & Princ.Combo15.Text & _
"' and Adressemag =" & std, conmag, adOpenDynamic

telmag = mag!Telemag
mag.Close
End If


'Fonction reprise sur http://docvb.free.fr/

' A noter que depuis VB6 un simple Replace( stTXT, "'", "''") suffit.
Public Function DoubleCote(ByVal stTXT As String) As String
' Reçoit une chaîne et double les apostrophes qui se trouvent à l'intérieur...
Dim lgPos As Long
Dim stTMP As String
stTMP = stTXT
' On cherche la position dans la chaîne de la première apostrophe
lgPos = InStr(stTMP, "'")
' Tant qu'il y a des apostrophes dans la chaîne...
Do While lgPos > 0
' Chaîne = début de la chaîne (apostrophe comprise) + "'" + fin de la chaîne
stTMP = Left$(stTMP, lgPos) & "'" & Right$(stTMP, Len(stTMP) - lgPos)
' On cherche la position de l'apostrophe suivante
lgPos = InStr(lgPos + 2, stTMP, "'")
Loop
' Renvoie la chaîne modifiée
DoubleCote = Trim(stTMP)
End Function

voila, je sais qu'il faut remplaceer l'apostrophe par une double apostrophe, et c'est ce que fait trés bien cette fonction, mais ma requête plante quand même, alors QUID?

Merci,
Bagbones

mercredi 26 juin 2002 à 11:52:27 | Re : P.... d'apostrophe

IAmJerome

N'est-ce pas juste que tu as oublié les ' de début et de fin sur "and Adressemag = " & std ?
Ce devrait être je pense Adressemag = '" & std & "' "



-------------------------------
Réponse au message :
-------------------------------

essaye plutot ca
Public Function CheckForQuote(str As String)
If str = "" Then
CheckForQuote = ""
Exit Function
End If
Dim lPos As Long
Dim slPos1 As Long
lPos = 1


Do While lPos <> 0
slPos1 = InStr(lPos, str, "'")


If slPos1 > 0 Then
str = Mid(str, 1, slPos1) & "'" & _
Mid(str, slPos1 + 1, Len(str) - slPos1)
lPos = InStr(slPos1 + 1, str, "'") + 1
Else
lPos = 0
End If
Loop
CheckForQuote = str
End Function
nariel1



-------------------------------
Réponse au message :
-------------------------------

Bonjour,

je tente désespérement de passer un argument contenant un apostrophe à une requête SQL, mais ca plante (opérateur absent), voila l'un des codes que j'ai essayé :

If (Princ.Combo17.Text <> "") Then
std = DoubleCote(Princ.Combo17.Text)
Set mag = New Recordset
mag.Open "select telemag from magasins where Region ='" & _
Princ.Combo16.Text & "' and Villemag ='" & Princ.Combo15.Text & _
"' and Adressemag =" & std, conmag, adOpenDynamic

telmag = mag!Telemag
mag.Close
End If


'Fonction reprise sur http://docvb.free.fr/

' A noter que depuis VB6 un simple Replace( stTXT, "'", "''") suffit.
Public Function DoubleCote(ByVal stTXT As String) As String
' Reçoit une chaîne et double les apostrophes qui se trouvent à l'intérieur...
Dim lgPos As Long
Dim stTMP As String
stTMP = stTXT
' On cherche la position dans la chaîne de la première apostrophe
lgPos = InStr(stTMP, "'")
' Tant qu'il y a des apostrophes dans la chaîne...
Do While lgPos > 0
' Chaîne = début de la chaîne (apostrophe comprise) + "'" + fin de la chaîne
stTMP = Left$(stTMP, lgPos) & "'" & Right$(stTMP, Len(stTMP) - lgPos)
' On cherche la position de l'apostrophe suivante
lgPos = InStr(lgPos + 2, stTMP, "'")
Loop
' Renvoie la chaîne modifiée
DoubleCote = Trim(stTMP)
End Function

voila, je sais qu'il faut remplaceer l'apostrophe par une double apostrophe, et c'est ce que fait trés bien cette fonction, mais ma requête plante quand même, alors QUID?

Merci,
Bagbones


mercredi 26 juin 2002 à 14:09:51 | Re : P.... d'apostrophe

Bagbones


Désolé nariel1 , il me renvoit :

Erreur de syntaxe(operateur absent) dans l'expression 'Region ='nord' and Villemag='Rouen'and Adressemag =' 193 rue d''alempoint'.

et le débogage pointe sur le troisième ligne de ma requéte.

Mais Merci ,
Bagbones


-------------------------------
Réponse au message :
-------------------------------

N'est-ce pas juste que tu as oublié les ' de début et de fin sur "and Adressemag = " & std ?
Ce devrait être je pense Adressemag = '" & std & "' "



-------------------------------
Réponse au message :
-------------------------------

essaye plutot ca
Public Function CheckForQuote(str As String)
If str = "" Then
CheckForQuote = ""
Exit Function
End If
Dim lPos As Long
Dim slPos1 As Long
lPos = 1


Do While lPos <> 0
slPos1 = InStr(lPos, str, "'")


If slPos1 > 0 Then
str = Mid(str, 1, slPos1) & "'" & _
Mid(str, slPos1 + 1, Len(str) - slPos1)
lPos = InStr(slPos1 + 1, str, "'") + 1
Else
lPos = 0
End If
Loop
CheckForQuote = str
End Function
nariel1



-------------------------------
Réponse au message :
-------------------------------

Bonjour,

je tente désespérement de passer un argument contenant un apostrophe à une requête SQL, mais ca plante (opérateur absent), voila l'un des codes que j'ai essayé :

If (Princ.Combo17.Text <> "") Then
std = DoubleCote(Princ.Combo17.Text)
Set mag = New Recordset
mag.Open "select telemag from magasins where Region ='" & _
Princ.Combo16.Text & "' and Villemag ='" & Princ.Combo15.Text & _
"' and Adressemag =" & std, conmag, adOpenDynamic

telmag = mag!Telemag
mag.Close
End If


'Fonction reprise sur http://docvb.free.fr/

' A noter que depuis VB6 un simple Replace( stTXT, "'", "''") suffit.
Public Function DoubleCote(ByVal stTXT As String) As String
' Reçoit une chaîne et double les apostrophes qui se trouvent à l'intérieur...
Dim lgPos As Long
Dim stTMP As String
stTMP = stTXT
' On cherche la position dans la chaîne de la première apostrophe
lgPos = InStr(stTMP, "'")
' Tant qu'il y a des apostrophes dans la chaîne...
Do While lgPos > 0
' Chaîne = début de la chaîne (apostrophe comprise) + "'" + fin de la chaîne
stTMP = Left$(stTMP, lgPos) & "'" & Right$(stTMP, Len(stTMP) - lgPos)
' On cherche la position de l'apostrophe suivante
lgPos = InStr(lgPos + 2, stTMP, "'")
Loop
' Renvoie la chaîne modifiée
DoubleCote = Trim(stTMP)
End Function

voila, je sais qu'il faut remplaceer l'apostrophe par une double apostrophe, et c'est ce que fait trés bien cette fonction, mais ma requête plante quand même, alors QUID?

Merci,
Bagbones



vendredi 28 juin 2002 à 16:45:21 | Re : P.... d'apostrophe

pingwee

g eu le même blème et g remplacé les " par chr(34)

j'espère que ca t'aura aidé



-------------------------------
Réponse au message :
-------------------------------


Désolé nariel1 , il me renvoit :

Erreur de syntaxe(operateur absent) dans l'expression 'Region ='nord' and Villemag='Rouen'and Adressemag =' 193 rue d''alempoint'.

et le débogage pointe sur le troisième ligne de ma requéte.

Mais Merci ,
Bagbones


-------------------------------
Réponse au message :
-------------------------------

N'est-ce pas juste que tu as oublié les ' de début et de fin sur "and Adressemag = " & std ?
Ce devrait être je pense Adressemag = '" & std & "' "



-------------------------------
Réponse au message :
-------------------------------

essaye plutot ca
Public Function CheckForQuote(str As String)
If str = "" Then
CheckForQuote = ""
Exit Function
End If
Dim lPos As Long
Dim slPos1 As Long
lPos = 1


Do While lPos <> 0
slPos1 = InStr(lPos, str, "'")


If slPos1 > 0 Then
str = Mid(str, 1, slPos1) & "'" & _
Mid(str, slPos1 + 1, Len(str) - slPos1)
lPos = InStr(slPos1 + 1, str, "'") + 1
Else
lPos = 0
End If
Loop
CheckForQuote = str
End Function
nariel1



-------------------------------
Réponse au message :
-------------------------------

Bonjour,

je tente désespérement de passer un argument contenant un apostrophe à une requête SQL, mais ca plante (opérateur absent), voila l'un des codes que j'ai essayé :

If (Princ.Combo17.Text <> "") Then
std = DoubleCote(Princ.Combo17.Text)
Set mag = New Recordset
mag.Open "select telemag from magasins where Region ='" & _
Princ.Combo16.Text & "' and Villemag ='" & Princ.Combo15.Text & _
"' and Adressemag =" & std, conmag, adOpenDynamic

telmag = mag!Telemag
mag.Close
End If


'Fonction reprise sur http://docvb.free.fr/

' A noter que depuis VB6 un simple Replace( stTXT, "'", "''") suffit.
Public Function DoubleCote(ByVal stTXT As String) As String
' Reçoit une chaîne et double les apostrophes qui se trouvent à l'intérieur...
Dim lgPos As Long
Dim stTMP As String
stTMP = stTXT
' On cherche la position dans la chaîne de la première apostrophe
lgPos = InStr(stTMP, "'")
' Tant qu'il y a des apostrophes dans la chaîne...
Do While lgPos > 0
' Chaîne = début de la chaîne (apostrophe comprise) + "'" + fin de la chaîne
stTMP = Left$(stTMP, lgPos) & "'" & Right$(stTMP, Len(stTMP) - lgPos)
' On cherche la position de l'apostrophe suivante
lgPos = InStr(lgPos + 2, stTMP, "'")
Loop
' Renvoie la chaîne modifiée
DoubleCote = Trim(stTMP)
End Function

voila, je sais qu'il faut remplaceer l'apostrophe par une double apostrophe, et c'est ce que fait trés bien cette fonction, mais ma requête plante quand même, alors QUID?

Merci,
Bagbones






Cette discussion est classée dans : chaîne, apostrophe, sttmp, princ, lgpos


Répondre à ce message

Sujets en rapport avec ce message

l'apostrophe dans les requettes SQL [ par oleola ] Dans une requette SQL, j'ai une variable string. Si cette variable a pourvaleur une chaine de caractères avec à l'intérieur une apostrophe, la requett Pbl avec remplacement de chaîne [ par TP ] Je posséde un fichier Texte où je souhaite remplacer une chaîne par une autre. Le seul pbl c que cette chaîne est présente plusieurs fois ds ce fichie Problemes d'Apostrophe dans base de données [ par domenico ] Bonjour,Voici mon probleme, lorsque j'entre une saisie comportant un apostrophe dans le champ d'une base de donnee sur un programme vb6, l'enregistrem gestionde caractere [ par olivier ] comment gerer l'apostrophe car j'appelle une procedure stockées et je met les carcatere en apostrophe (simple cote) mais des que j'ai une apostrophe j Apostrophe & FindFirst [ par Beren ] Bonjour,Je me trouve face à un problème que beaucoup de gens doivent connaître : une apostrophe dans une chaîne de caractère et l'utilisation d'une mé Apostrophe [ par CHRI ] Salut,Quand j'utilise la méthode Findfirst (sous Access97) sur une chaine de caracteres contenant une ou plusieurs apostrophes, j'ai systématiquement recherche d'une chaîne de caractère [ par Cécé ] Salut à tous,Ceci est un appel urgent.Je veux faire la recherche d'une string tout en laissant possible les erreurs.EXEMPLEje cherche Cé et la réponse Urgent, gros pb de chaîne de caractère [ par Cécé ] Salut à tous, je craque alors merci à tous ceux qui m'aideront.J'expique mon problème.J'ai un module de recherche basé sur une chaîne alphanumérik et Problème sur insert dans base car string entre apostrophe et nom " !!!!! [ par Nitocris ] Bonjour, J'essaye de renseigner des tables d'une base de donnée ("Sage") via des drivers ODBC et un programme en VBAA partir d'une feuille Excel r


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales