Vb6 et acces : chaine caractère
eagleleader
-
mounaattia Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
mounaattia Messages postés 41 Date d'inscription Statut Membre Dernière intervention -
Voici mon code :
rs.Open "select info_titre from T_infos where titre = '" & Form1.Text1.Caption & "'", db, adOpenStatic, adLockOptimistic
Le problème c'est que lorsqu'il y a un " ' " (apostrophe dans la chaine de caractères, il me met une erreur et ce qui est logique vu que la syntaxe lui dit ' ... '
Mais alors comment résoudre mon problème ??? Sachant que je ne peux modifier ce qui se trouve dans mes bases
rs.Open "select info_titre from T_infos where titre = '" & Form1.Text1.Caption & "'", db, adOpenStatic, adLockOptimistic
Le problème c'est que lorsqu'il y a un " ' " (apostrophe dans la chaine de caractères, il me met une erreur et ce qui est logique vu que la syntaxe lui dit ' ... '
Mais alors comment résoudre mon problème ??? Sachant que je ne peux modifier ce qui se trouve dans mes bases
A voir également:
- Vb6 et acces : chaine caractère
- Vb6 - Télécharger - Divers Utilitaires
- Acces rapide - Guide
- Accès refusé - Guide
- Trousseau d'accès iphone - Guide
- Accès presse papier - Guide
5 réponses
Moi pour contourner ce problème j'ai crée la focntion suivante:
"
Function PrepareString(Instring)
If Not IsNull(Instring) Then
PrepareString = "'" & Replace(Instring, "'", "' + CHAR(39) + '") & "'"
Else
PrepareString = "Null"
End If
End Function
"
et donc ton code devient :
rs.Open "select info_titre from T_infos where titre = ' " & PrepareString(Form1.Text1.Caption) & " ' ", db, adOpenStatic, adLockOptimistic
Voilà, j'espère que ca t'aide
dEUS
What Jesus can't fix tonight,
The Whisky certainly might.
"
Function PrepareString(Instring)
If Not IsNull(Instring) Then
PrepareString = "'" & Replace(Instring, "'", "' + CHAR(39) + '") & "'"
Else
PrepareString = "Null"
End If
End Function
"
et donc ton code devient :
rs.Open "select info_titre from T_infos where titre = ' " & PrepareString(Form1.Text1.Caption) & " ' ", db, adOpenStatic, adLockOptimistic
Voilà, j'espère que ca t'aide
dEUS
What Jesus can't fix tonight,
The Whisky certainly might.
comment récuperé les information qui se trouve dans une requette sql ave vb6
sql="select nom,code from emp where num=2"
comment utiliser les information trouvé dans nom et code dans la suite de mon prg
merci d'avance
sql="select nom,code from emp where num=2"
comment utiliser les information trouvé dans nom et code dans la suite de mon prg
merci d'avance
Et bien tu dois établir une connexion à la base de données, ensuite c'est simple tu crées ta requete sql :
dim db as Connection
dim rs as Recordset
' connexion à la base de donnees
Set db = New ADODB.Connection
db.CursorLocation = adUseClient
db.Open "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\emp.mdb;" (si elle se trouve dans le meme répertoire que l'application sinon tu dois donner le chemin complet
' création de l'objet recordset
Set RS = New ADODB.Recordset
ensuite tu crées ta requete sql :
RS.Open "select nom,code from emp where num=2", db, adOpenStatic, adLockOptimistic
RS.MoveLast
' affichage des résultats
Text1.Text = RS.Fields("nom")
Text2.Text = RS.Fields("code")
Text1 et 2 sont 2 textbox sur une feuille et elles afficheront les réponses sinon tu peux utiliser n'importe quel objet qui permet d'afficher les résultats.
dim db as Connection
dim rs as Recordset
' connexion à la base de donnees
Set db = New ADODB.Connection
db.CursorLocation = adUseClient
db.Open "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "\emp.mdb;" (si elle se trouve dans le meme répertoire que l'application sinon tu dois donner le chemin complet
' création de l'objet recordset
Set RS = New ADODB.Recordset
ensuite tu crées ta requete sql :
RS.Open "select nom,code from emp where num=2", db, adOpenStatic, adLockOptimistic
RS.MoveLast
' affichage des résultats
Text1.Text = RS.Fields("nom")
Text2.Text = RS.Fields("code")
Text1 et 2 sont 2 textbox sur une feuille et elles afficheront les réponses sinon tu peux utiliser n'importe quel objet qui permet d'afficher les résultats.
Salut,
Eh bien concernant ton pb avec l'apostrophe, Access ne le reconnaît ke par deux apostrophes ''. Donc ce ke tu auras a faire, c'est ceci :
'Fonction ki transforme la quote en double quotes
Function DoubleQuote(str as String) as String
DoubleQuote = Replace(str,"'","''")
End Function
Cette fonction te sera utile lorske tu voudras par exemple enregistrer ou mettre à jour des données :
Insert into ETUDIANT(NumEtud, NomEtud, DateNaiss) VALUES(" & txtNum.text & ",'" & DoubleQuote(txtNom.text) & "',#" & txtDate.text & "#);
Maintenant si tu voudrais par exemple afficher ces memes données dans un autre formulaire tu feras donc :
'Fonction ki transforme les double-quotes en quote
Function Quote(str as String) as String
Quote = Replace(str,"''","'")
End Function
Ensuite par exemple :
Select NumEtud from ETUDIANT Where NomEtud = '" & Quote(txtNom.text) & "';
En ce qui concerne ton 2e pb, vérifie ke le critère de recherche de ta requête a le meme type ke celui du champ dans la base de données.
Eh bien concernant ton pb avec l'apostrophe, Access ne le reconnaît ke par deux apostrophes ''. Donc ce ke tu auras a faire, c'est ceci :
'Fonction ki transforme la quote en double quotes
Function DoubleQuote(str as String) as String
DoubleQuote = Replace(str,"'","''")
End Function
Cette fonction te sera utile lorske tu voudras par exemple enregistrer ou mettre à jour des données :
Insert into ETUDIANT(NumEtud, NomEtud, DateNaiss) VALUES(" & txtNum.text & ",'" & DoubleQuote(txtNom.text) & "',#" & txtDate.text & "#);
Maintenant si tu voudrais par exemple afficher ces memes données dans un autre formulaire tu feras donc :
'Fonction ki transforme les double-quotes en quote
Function Quote(str as String) as String
Quote = Replace(str,"''","'")
End Function
Ensuite par exemple :
Select NumEtud from ETUDIANT Where NomEtud = '" & Quote(txtNom.text) & "';
En ce qui concerne ton 2e pb, vérifie ke le critère de recherche de ta requête a le meme type ke celui du champ dans la base de données.
Salut.
J'ai été confronté à ce problème.
Plusieurs solutions :
=> Changer l'apostrophe par le caractère apostrophe tournée dans l'autre sens.
=> Supprimer les apostrophe et les remplacer par un espace dans ta base.
Cela a faire dans la chaine qui te pose problème. Tu le fais où tu veux, mais avant d'exécuter la requête.
@+
Roulito
J'ai été confronté à ce problème.
Plusieurs solutions :
=> Changer l'apostrophe par le caractère apostrophe tournée dans l'autre sens.
=> Supprimer les apostrophe et les remplacer par un espace dans ta base.
Cela a faire dans la chaine qui te pose problème. Tu le fais où tu veux, mais avant d'exécuter la requête.
@+
Roulito
Le problème étant que je ne peux pas modifier mes bases car elles sont très grosses et non touchables !!! Mais merci quand même.
J'espère qu'il existe une fonction qui permet d'éviter ce problème ou que quelqu'un connaît la solution.
J'espère qu'il existe une fonction qui permet d'éviter ce problème ou que quelqu'un connaît la solution.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question