VB.Net Requete SQL Recherche un chiffre dans ma BD Access

cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 17 nov. 2009 à 19:42
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 18 nov. 2009 à 04:23
Bonjour
J'utilise Access avec VB.Net 2005
J'utilise un textbox pour faire une recherche de ma BD et les résultats s'affichent dans un DataGridView.
Je n'ai aucun problème pour utiliser cette façon de faire quand c'est du texte mais avec un nombre, ça se complique.

Voici ma requête.
 ElseIf cbxRecherche.Text = "Prix" Then
RequeteSQL = "select Paiements.* from Paiements where Prix like %" & txtRecherche.Text & "% "


Ma colonne de ma BD Access est de type monétaire avec 2 chiffres après le décimal.

Si j'inscrit 4 dans mon Textbox je devrais voir tous les résultats qui ont le chiffre 4 dans mon DataGrid mais ca bug lorsque j'arrive sur mon DataAdpater.

Qu'est ce que je ne fais pas de correct ???

Merci de votre aide

14 réponses

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
17 nov. 2009 à 20:28
Salut déjà les % sont bien utiliser pour le like mais le like ne s'utilise que sur du texte


Chris...
- La vérité n'est pas ailleurs, elle est sous le nez de chacun, quelques mouvements neuronale permettent de l'entrevoir -
MCPD (webform-winform) / MCSA / MCDST / MCT
0
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
17 nov. 2009 à 20:44
ok merci donc il m'est impossible de chercher tout les cellules qui contiennent le chiffre 4. C'est bien ca ?

Existe-t-il un truc qui remplce les % et le like ?

merci de ton aide
0
cs_dimond Messages postés 21 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 17 novembre 2009
17 nov. 2009 à 21:18
Le like marche bien pour les chiffre rien a voir avec le problème. le problème je pense ce trouve dans ta requette, tu concaténe prix avec txtRecherche.Text.
Paiements.* from Paiements where Prix like '%" & txtRecherche.Text & "%'"
essaie ça.
0
cs_dimond Messages postés 21 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 17 novembre 2009
17 nov. 2009 à 21:25
oups désolé j'ai validé un peu trop vite.
Tu concacténe ta requette avec txtRecherche.Text mais pour des chiffre en générale il faut des cote.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
17 nov. 2009 à 21:27
désolé de mon inexpérience, une cote c'est un guillement "'" ???

Si c'est ça, il me semble que c'est pour du texte..

j'attends de tes nouvelles


merci
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 nov. 2009 à 21:30
Salut
Un chiffre (prix) ne peut pas être "Like".
Il ne peut être que inférieur, égal ou supérieur.
Si c'est vraiment le test que tu veux faire (bizarre), il faut demander à SQL de convertir ton chiffre en texte pour pouvoir utiliser Like :
(syntaxe non garantie, c'est l'idée)
Where Convert(VarChar(), Prix) like '%" & txtRecherche.Text & "%'"
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_dimond Messages postés 21 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 17 novembre 2009
17 nov. 2009 à 21:41
Un chiffre peut çetre like cela dépend de la façon dont il est stockéé number, numeric, mais il peut-être alpha.
0
cs_dimond Messages postés 21 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 17 novembre 2009
17 nov. 2009 à 21:45
cela dit si'il est sous format numéric, le convert s'impose effectivement dan ton cas.
0
cs_dimond Messages postés 21 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 17 novembre 2009
17 nov. 2009 à 21:51
http://www.techonthenet.com/sql/like.php

WHERE supplier_name like 'Sm_th';

This SQL statement would return all suppliers whose name is 5 characters long, where the first two characters is 'Sm' and the last two characters is 'th'. For example, it could return suppliers whose name is 'Smith', 'Smyth', 'Smath', 'Smeth', etc.



Here is another example,

SELECT * FROM suppliers
WHERE account_number like '12317_';

You might find that you are looking for an account number, but you only have 5 of the 6 digits. The example above, would retrieve potentially 10 records back (where the missing value could equal anything from 0 to 9). For example, it could return suppliers whose account numbers are:

123170
123171
123172
123173
123174
123175
123176
123177
123178
123179.



Examples using Escape Characters
0
cs_dimond Messages postés 21 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 17 novembre 2009
17 nov. 2009 à 21:58
Le problème viens en fait de la différence de typage entre ton Prix de ta requette select et le txtRecherche.Text de ta clause where. Il faut que les deux soit du même type.
0
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
17 nov. 2009 à 22:05
Merci jack

Ca cré une erreur dans ta requête mais je vais utiliser les caractère de base (inférieur, égal ou supérieur)


Merci

P.S. existe-t-il un bon site pour les requêtes SQL en VB.Net pour utiliser un fichier Access...J'ai tellement de la difficultée avec cela...

merci
0
cs_dimond Messages postés 21 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 17 novembre 2009
17 nov. 2009 à 22:10
Peux tu essayer cela pour voir ?

RequeteSQL = "select Paiements.* from Paiements where Prix like '%" & txtRecherche.toInt & "%' "
0
cs_dimond Messages postés 21 Date d'inscription mardi 12 avril 2005 Statut Membre Dernière intervention 17 novembre 2009
17 nov. 2009 à 22:57
Désolé j'utilise des méthode dev pour mon travail. En plus je peux meme pas tester j'ai pas d'environement de dev sous les yeux.

dim Vprix as string
Vprix = txtRecherche.text

RequeteSQL = "select Paiements.* from Paiements where Prix like '%" & Convert.ToDecimal(Vprix)& "%' "
0
cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 1
18 nov. 2009 à 04:23
merci j'essais cela demain matin

je te redonne des news.
0
Rejoignez-nous