[VB ACCESS] utilisation du like
voilà un petit soucis de syntaxe. Pouvez me dire comment j'utilise la fonction like SQL dans VB.
Ca doit etre un truc du genre :
ADODC1.RecordSource=("Select * From concert Where Date_concert like ' " & TextRechercheDate.Texte & " ' ? ")
Mais cette syntaxe ne marche pas !
Please help me ! C'est assez urgent !
Configuration: Windows XP Firefox 2.0.0.3
25 réponses
Un souci de syntaxe porte sur l'utilisation de la fonction SQL LIKE en VB pour filtrer des résultats avec ADODC1.RecordSource et une clause WHERE, notamment lorsque la comparaison porte sur une date ou du texte. Plusieurs réponses recommandent d'utiliser le joker % autour du texte recherché et d'entourer la valeur entre apostrophes, car l'astérisque '*' n'est pas valide comme wildcard dans SQL. Une solution pratique montre le code VBA : SELECT * FROM trucEtTrac WHERE dateVie LIKE '%" & Text1.Text & "%', puis l'ouverture du recordset et l'affichage des résultats. En cas de doute, l'absence de résultats ou des erreurs de guillemets peuvent être des causes, mais la solution repose sur l'utilisation des guillemets et du wildcard %.
-
car si votre date est de type texte voici un bout de code qui fonctionne chez moi sans problème. en VBA
ma table est
trucEtTrac (id entier,nom Text, prenom Text, dateVie Text)
Private Sub Command1_Click() Dim rst As New ADODB.Recordset rst.Open "SELECT * FROM trucEtTrac WHERE dateVie like '%" & Text1.Text & "%'", con, adOpenDynamic MsgBox rst(2) End Sub -
Bonsoir excusez moi
je sort peut etre de l'eau mais je voudrais juste savoir votre date est de quel type?
de type Date ou de type texte? -
j'ai le même problème... la requête sous access s'execute normalement et affiche le résultat... mais sous vb rien ne s'affiche... :(
-
J'ai du faire
"...like " & Chr(34) & "*" & mot & "*" & Chr(34)
Attention à la présence de " dans la chaine mot... -
Modérateurje ne vois pas ce qui cloche...
Tu peux lancer ta requête sous ACCESS pour voir si c'est pas ton code vb qui trafique quelque chose ?
-
sérieux je sais pas trop pourquoi ca ne marche pas. j'ai déja réalisé un mini moteur de recherche en vb.net mais j'utilisais une dataview et la propriété rowfilter et ca marchait très bien dans ma datagridview.
-
parceque dans la table c ville_concert, en affichage j'ai mis que ville pour que ce soit mieux ...
-
Ok. donc en fait il n'y a plus d'erreur mais ca ne fonctionne pas..
Pourquoi mets tu ville_concert et pas ville dans ta requete SQL ? -
Voilà les screen : http://www.univers-com.fr/CCM/Screen1.JPG
http://www.univers-com.fr/CCM/Screen2.JPG
Voilà le code :
Adodc1.RecordSource = "Select * From concert Where Ville_concert like '*" & Text1.Text & "*';"
Adodc1.Refresh -
En 14 il dit qu'il n'a plus d'erreur donc je vois pas ou est le probleme
-
L'erreure a été corrigée lorsque tu as rajouté les apostrophes ? vu qu'il n'y a plus d'erreur on peut pas trop d'aider, soit il n'y avait rien dans ta table qui correspondait à ta recherche soit il y a un probleme autre part.
-
ModérateurTu avais mis des simple-quote pour séparer la chaine de caractères, ils ont disparu...
... like '*" & Text1.Text & "*';"
--
A+ Blux"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
-
Plus d'erreur, mais aucun resultat :(
Ben corrige moi blux puisque tu es si fort ! -
ModérateurPersonne ne t'a dit de mettre un espace entre * et ce que tu cherches :-)
Regarde mes exemples...
-
Rajoute un ' avant la premiere étoile et aprrès la deuxieme ce qui donne :
like'* " & Text1.Text & " *' " -
"You have an error in your SQL syntaxe near '* m *' at line 1"
Private Sub Text1_Change()
Adodc1.RecordSource = "Select * From concert Where Date_concert like * " & Text1.Text & " * "
Adodc1.Refresh
End Sub -
ModérateurIl faut mettre un like *" & Text1.Text & "* ", mais ne pas oublier de rafraichir le code à chaque saisie de caractère...
-
au fur et à mesure que je tape, je dois avoir des résultats
Private Sub Text1_Change()
Adodc1.RecordSource = "Select * From concert Where Date_concert like * " & Text1.Text & " ? "
Adodc1.Refresh
End Sub
sqlbindparameter not used for all parameter
Tchuss -
Essaie ca, ca devrait marcher : "Select * From concert Where Date_concert like * " & TextRechercheDate.Texte & " ? ")
Après si tu expliquais ce que tu veux faire on pourrait peut etre plus t'aider. j'imagine que TextRecherchedate c'est une textbox. -
ModérateurLa syntaxe est la même que tu sois en vb ou vba, c'est du sql avec des caractères joker (? = n'importe quel caractère unitaire, * = chaine de n caractères quelconques), ex :
SELECT TOTO FROM TATA WHERE TITI LIKE "toto*";
SELECT TOTO FROM TATA WHERE TITI LIKE "*toto*";
SELECT TOTO FROM TATA WHERE TITI LIKE "*toto";
SELECT TOTO FROM TATA WHERE TITI LIKE "?toto";
- 1
- 2