Type de données incompatible dans l'expression du critère

Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009
- - Dernière réponse : surfzoid
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
- 16 août 2009 à 11:21
Bonjour!
j'ai vraiment besoin de votre aide j'ai cherché et j'ai essayé pas mal de chose mais j'arrive pas à trouver une solution à mon problème .
j'ai une table sous access avec un champ jour  de type date et je veux rechercher une date à partir d'un textbox et l'afficher dans DataGrid mais ça marche pas.j'ai une erreur de type "Type de données incompatible dans l'expression du critère"
voici mon codecommand.CommandText "select * from gestion where jour '" & TextBox1.Text & "'"
dataadapter = New OleDbDataAdapter(command)
dataadapter.Fill(dts, "gestion")
datatable = dts.Tables("gestion")
DataGrid1.SetDataBinding(dts, "gestion")
 connection.Close()
Merci
j'att votre réponse
Afficher la suite 

15 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Salut
Type date, donc les encadrements sont des #, pas des ' (dicté par SQL)
   where jour = #" & TextBox1.Text & "#"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009
0
Merci
saluut!!


Merci bcp ça marche très bien
mais je croix qu'il faut convertir les dates sql et je sais pas comment
pck si je tappe 06/07/2009 dans le textbox j'ai 07/06/2009 dans la datagrid
vous n'avez pas une idée?
en tout cas merci bcp
Commenter la réponse de kidavra
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Et oui, les dates sont toujours enregistrées au format américain.
Il faut donc jongler avec la commande Format(maDate, "mm/dd/yyyy")
Commenter la réponse de cs_Jack
Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009
0
Merci
j'ai fait ça
Dim madate As Date
Format(madate, "mm/dd/yyyy")
mais ça marche pas c faut nn?
Commenter la réponse de kidavra
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
0
Merci
Remplace ton Textbox par un MaskedTextBox et y a plus qu' a jouer avec le Mask ?
Commenter la réponse de surfzoid
Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009
0
Merci
Merci pour ta rep
j'ai déja essayé mais ça marche pas il faut convertir les dates :(
Commenter la réponse de kidavra
Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009
0
Merci
encore pas de réponse
j'ai vraiment besoin de ce truc
aidez moi svp
meci
Commenter la réponse de kidavra
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
0
Merci
tu as plusieur soluce, cela fait longtemps que j ai fait du VB, mais ce que j'avait fait, c est lier le textbox a la source de donnée (databinding) et come ça ta grille de donnée est synchro avec le text box si ce dernier est ton index, sinon pour pas te casser la tete avec l enfer des conversion de dates et autre format, dans ta base access modifi le type de la colone date pour un format string
Commenter la réponse de surfzoid
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
0
Merci
encore mieux, si c est uniquement un choix de date, remplace le textbox par un combobox, toujours liéer au données :-)
Commenter la réponse de surfzoid
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Re
Ne valide pas les réponses tant qu'elles ne répondent pas à ton problème.

"Ca ne marche pas" : un peu court comme description d'un problème.
Montre nous ta ligne command.CommandText maintenant corrigée par nos indications.
Que vaut TextBox1.Text au moment du passage sur cette ligne ? (utilise le debugage pour piéger sa valeur)
Erreur ? Laquelle ? Et sur quelle ligne ?
Donne des éléments, sinon, tu n'avanceras jamais.
Commenter la réponse de cs_Jack
Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009
0
Merci
salut
le problème c ke je ne sais pas ou il faut mettre Format(maDate, "mm/dd/yyyy") !!
surfzoid ta solution marche bien ^^ j'ai modifié le type de champ en string.
Mais ça sera mieux si j'arrive à convertir les dates
Merciiiiii
Commenter la réponse de kidavra
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
0
Merci
Plutôt marrant, je suis face au même problème et la "jambe de bois" d'utiliser une colonne string, ne m'arrange pas pour les différant traitements qui viennent aprés, voici donc ce que j'ai fait en C# :

DateTime HorodatageDeb = DateTimeOffset.Now.DateTime;
string Deb = string.Format("{0:yyyy-MM-dd} {1}", HorodatageDeb, HorodatageDeb.TimeOfDay);

Ensuite tu as dans Deb une date au format Américain qui vas bien pour MySql par exemple :-)
Commenter la réponse de surfzoid
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
0
Merci
Ou encore :
string Deb = string.Format("{0:yyyy-MM-dd} {1}:{2}:{3}", HorodatageDeb,
HorodatageDeb.Hour,
HorodatageDeb.Minute,
HorodatageDeb.Second);
Commenter la réponse de surfzoid
Messages postés
30
Date d'inscription
vendredi 5 janvier 2007
Statut
Membre
Dernière intervention
15 décembre 2012
0
Merci
salut mm problème
mais ma requete est celle de commandtext de dataenvirenement
dans ma base de donnée j'ai le code_abonnée est numérique
alors comment je dois faire pour la zone de texte :( là où l"utilisateur saisi la valeur rechercher
voilà ma requete dasn le dataenvirenement:
SELECT * FROM abonnes WHERE (abonnes.code_abonne = ' & RechercheAbonne.var&')
avec :
dim var as integer
var=trim(text1.text)
la zone de texte existe dans la form ki s'apel RechercheAbonne
RIEN NE SERT A COURIRE :)
Commenter la réponse de kalamita
Messages postés
467
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
0
Merci
Désoler, j'y comprends absolument rien, c'est horrible !!
Commenter la réponse de surfzoid