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

Signaler
Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009
-
Messages postés
463
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010
-
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
A voir également:

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
70
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)
Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009

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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Et oui, les dates sont toujours enregistrées au format américain.
Il faut donc jongler avec la commande Format(maDate, "mm/dd/yyyy")
Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009

j'ai fait ça
Dim madate As Date
Format(madate, "mm/dd/yyyy")
mais ça marche pas c faut nn?
Messages postés
463
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010

Remplace ton Textbox par un MaskedTextBox et y a plus qu' a jouer avec le Mask ?
Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009

Merci pour ta rep
j'ai déja essayé mais ça marche pas il faut convertir les dates :(
Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009

encore pas de réponse
j'ai vraiment besoin de ce truc
aidez moi svp
meci
Messages postés
463
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010

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
Messages postés
463
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010

encore mieux, si c est uniquement un choix de date, remplace le textbox par un combobox, toujours liéer au données :-)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
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.
Messages postés
7
Date d'inscription
mardi 14 avril 2009
Statut
Membre
Dernière intervention
13 juillet 2009

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
Messages postés
463
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010

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 :-)
Messages postés
463
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010

Ou encore :
string Deb = string.Format("{0:yyyy-MM-dd} {1}:{2}:{3}", HorodatageDeb,
HorodatageDeb.Hour,
HorodatageDeb.Minute,
HorodatageDeb.Second);
Messages postés
30
Date d'inscription
vendredi 5 janvier 2007
Statut
Membre
Dernière intervention
15 décembre 2012

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 :)
Messages postés
463
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
21 avril 2010

Désoler, j'y comprends absolument rien, c'est horrible !!