Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : test date avec requete [ Archives Visual Basic / Bases de données ] (benyou)

mardi 13 août 2002 à 19:15:26 | test date avec requete

benyou

bonjour,
si qlq un peut m'aider, je m'arrive pas à executer une requeque SQL qui fait le test sur la date que j'ai saisie dans un formulaire el le champs dans la bd. je vous informe que j'utilse une connexion ODBC qui es la suivant

strConnect = "Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=BASEDON"
Set cnMabase = New ADODB.Connection
cnMabase.Open strConnect, "sa", ""
Set Matable = New ADODB.Recordset

Ma requete est la suivante :
Matable.Open " select * from mouv where mtnhtl<> 0.00 and datefact = MaDate ", cnMabase

apres execution de la requete je recoi le message suivant:

erreur :'2147217900(80040e14)
[Simba][Simba ODBC Driver] erreur in expression:MaDate


Merci

mardi 13 août 2002 à 20:51:19 | Re : test date avec requete

keopsk


Pouer commencer MaDate est une variable. il faut donc qu'il soit traduite par sa valeur dans la chaîne sql

.. " select * from mouv where mtnhtl<> 0.00 and datefact = " & MaDate , ..

Faite les conversion si nécessaire

@+




-------------------------------
Réponse au message :
-------------------------------

bonjour,
si qlq un peut m'aider, je m'arrive pas à executer une requeque SQL qui fait le test sur la date que j'ai saisie dans un formulaire el le champs dans la bd. je vous informe que j'utilse une connexion ODBC qui es la suivant

strConnect = "Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=BASEDON"
Set cnMabase = New ADODB.Connection
cnMabase.Open strConnect, "sa", ""
Set Matable = New ADODB.Recordset

Ma requete est la suivante :
Matable.Open " select * from mouv where mtnhtl<> 0.00 and datefact = MaDate ", cnMabase

apres execution de la requete je recoi le message suivant:

erreur :'2147217900(80040e14)
[Simba][Simba ODBC Driver] erreur in expression:MaDate


Merci

mardi 13 août 2002 à 20:51:28 | Re : test date avec requete

keopsk


Pouer commencer MaDate est une variable. il faut donc qu'il soit traduite par sa valeur dans la chaîne sql

.. " select * from mouv where mtnhtl<> 0.00 and datefact = " & MaDate , ..

Faite les conversions si nécessaire

@+




-------------------------------
Réponse au message :
-------------------------------

bonjour,
si qlq un peut m'aider, je m'arrive pas à executer une requeque SQL qui fait le test sur la date que j'ai saisie dans un formulaire el le champs dans la bd. je vous informe que j'utilse une connexion ODBC qui es la suivant

strConnect = "Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=BASEDON"
Set cnMabase = New ADODB.Connection
cnMabase.Open strConnect, "sa", ""
Set Matable = New ADODB.Recordset

Ma requete est la suivante :
Matable.Open " select * from mouv where mtnhtl<> 0.00 and datefact = MaDate ", cnMabase

apres execution de la requete je recoi le message suivant:

erreur :'2147217900(80040e14)
[Simba][Simba ODBC Driver] erreur in expression:MaDate


Merci

jeudi 15 août 2002 à 11:22:12 | Re : test date avec requete

benyou

Bonjour keopsk et merci de me repondre.
j'ai converti ma chaine en date mais ce ne donne rien. ( je t'informe que c'est pas une base access parceque la syntax n'accept pas le signe #, c'est une connexion ODBC)
merci et a+




-------------------------------
Réponse au message :
-------------------------------


Pouer commencer MaDate est une variable. il faut donc qu'il soit traduite par sa valeur dans la chaîne sql

.. " select * from mouv where mtnhtl<> 0.00 and datefact = " & MaDate , ..

Faite les conversion si nécessaire

@+




-------------------------------
Réponse au message :
-------------------------------

bonjour,
si qlq un peut m'aider, je m'arrive pas à executer une requeque SQL qui fait le test sur la date que j'ai saisie dans un formulaire el le champs dans la bd. je vous informe que j'utilse une connexion ODBC qui es la suivant

strConnect = "Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=BASEDON"
Set cnMabase = New ADODB.Connection
cnMabase.Open strConnect, "sa", ""
Set Matable = New ADODB.Recordset

Ma requete est la suivante :
Matable.Open " select * from mouv where mtnhtl<> 0.00 and datefact = MaDate ", cnMabase

apres execution de la requete je recoi le message suivant:

erreur :'2147217900(80040e14)
[Simba][Simba ODBC Driver] erreur in expression:MaDate


Merci


mercredi 21 août 2002 à 21:12:46 | Re : test date avec requete

zefri

Les formats de date posent souvent des problèmes lorsque l'on veut interroger une base de données ! Il faut toujours avoir à l'esprit que la requête telle que tu l'exécute ici est une chaine de caractère non typée. La base de donnée va essayer d'éxécuter littéralement "select * from mouv where mtnhtl<> 0.00 and datefact = MaDate ", et forcément comme MaDate, elle ne sait pas ce que c'est, ça plante.
Je ne connais pas exactement la syntaxe pour SQLServer, mais sous Oracle pour que ta requête fonctionne il faudrait que tu code un truc du genre

Matable.Open " select * from mouv where mtnhtl<> 0.00 and To_Char(datefact, 'DD/MM/YYYY') = " & format(MaDate, 'dd/mm/yyyy')

C'est à dire qu'il faut que tu convertisses la valeur de ta variable et cellle de la colonne que tu veux tester en une chaine de caractère de même format pour que la base de donnée puisse l'interprêter correctement.

Tu me dira que mtnhtl<> 0.00 ne pose pas de problème dans ton cas, c'est que là SQL fait la conversion tout seul comme un grand, mais tu n'es pas là non plus à l'abris d'une surprise, parceque rien ne te dis que le symbole décimal est la virgule sur ton serveur, auquel cas ça plantera aussi.

L'autre solution est d'utiliser l'objet commande et la collection parameters, avec une syntaxe du genre
MaCommande.comandtext = "select * from mouv where mtnhtl<> ? and datefact = ? "
puis ajouter deux paramètres (typés) à ta collection parameters, puis l'éxécuter. J'ai sauté quelques étapes, mais si tu veux un exemple précis, tu peux jeter un oeil là :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdconcommandparams.asp

C'est sûr ça fait beaucoup de code, mais il est en béton.

Bon courage !


-------------------------------
Réponse au message :
-------------------------------

Bonjour keopsk et merci de me repondre.
j'ai converti ma chaine en date mais ce ne donne rien. ( je t'informe que c'est pas une base access parceque la syntax n'accept pas le signe #, c'est une connexion ODBC)
merci et a+




-------------------------------
Réponse au message :
-------------------------------


Pouer commencer MaDate est une variable. il faut donc qu'il soit traduite par sa valeur dans la chaîne sql

.. " select * from mouv where mtnhtl<> 0.00 and datefact = " & MaDate , ..

Faite les conversion si nécessaire

@+




-------------------------------
Réponse au message :
-------------------------------

bonjour,
si qlq un peut m'aider, je m'arrive pas à executer une requeque SQL qui fait le test sur la date que j'ai saisie dans un formulaire el le champs dans la bd. je vous informe que j'utilse une connexion ODBC qui es la suivant

strConnect = "Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=BASEDON"
Set cnMabase = New ADODB.Connection
cnMabase.Open strConnect, "sa", ""
Set Matable = New ADODB.Recordset

Ma requete est la suivante :
Matable.Open " select * from mouv where mtnhtl<> 0.00 and datefact = MaDate ", cnMabase

apres execution de la requete je recoi le message suivant:

erreur :'2147217900(80040e14)
[Simba][Simba ODBC Driver] erreur in expression:MaDate


Merci



jeudi 22 août 2002 à 12:21:50 | Re : test date avec requete

benyou

bonjour zefri et merci de tes conseil

je t'informe que depuis le temps que j'ai posté ce message j'ai reussie à surmenter le probleme date parcequ'il falait ecrire dans la requete : dtfact = '" & Format(DateDE.Text, "yyyy-mm-dd") & "'
en ce qui concerne les chiffre decimal je vais voir sur l'adress que tu as proposé. je t'achere de t'informer de l'evolution de mon projet pacrceque jusque la j'ai un probleme avec msflexgrid et je suis entrain d'arracher les cheveaux pour la faire soumettre à ma loi

merci pour tout et a+ [SD]


-------------------------------
Réponse au message :
-------------------------------

Les formats de date posent souvent des problèmes lorsque l'on veut interroger une base de données ! Il faut toujours avoir à l'esprit que la requête telle que tu l'exécute ici est une chaine de caractère non typée. La base de donnée va essayer d'éxécuter littéralement "select * from mouv where mtnhtl<> 0.00 and datefact = MaDate ", et forcément comme MaDate, elle ne sait pas ce que c'est, ça plante.
Je ne connais pas exactement la syntaxe pour SQLServer, mais sous Oracle pour que ta requête fonctionne il faudrait que tu code un truc du genre

Matable.Open " select * from mouv where mtnhtl<> 0.00 and To_Char(datefact, 'DD/MM/YYYY') = " & format(MaDate, 'dd/mm/yyyy')

C'est à dire qu'il faut que tu convertisses la valeur de ta variable et cellle de la colonne que tu veux tester en une chaine de caractère de même format pour que la base de donnée puisse l'interprêter correctement.

Tu me dira que mtnhtl<> 0.00 ne pose pas de problème dans ton cas, c'est que là SQL fait la conversion tout seul comme un grand, mais tu n'es pas là non plus à l'abris d'une surprise, parceque rien ne te dis que le symbole décimal est la virgule sur ton serveur, auquel cas ça plantera aussi.

L'autre solution est d'utiliser l'objet commande et la collection parameters, avec une syntaxe du genre
MaCommande.comandtext = "select * from mouv where mtnhtl<> ? and datefact = ? "
puis ajouter deux paramètres (typés) à ta collection parameters, puis l'éxécuter. J'ai sauté quelques étapes, mais si tu veux un exemple précis, tu peux jeter un oeil là :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdconcommandparams.asp

C'est sûr ça fait beaucoup de code, mais il est en béton.

Bon courage !


-------------------------------
Réponse au message :
-------------------------------

Bonjour keopsk et merci de me repondre.
j'ai converti ma chaine en date mais ce ne donne rien. ( je t'informe que c'est pas une base access parceque la syntax n'accept pas le signe #, c'est une connexion ODBC)
merci et a+




-------------------------------
Réponse au message :
-------------------------------


Pouer commencer MaDate est une variable. il faut donc qu'il soit traduite par sa valeur dans la chaîne sql

.. " select * from mouv where mtnhtl<> 0.00 and datefact = " & MaDate , ..

Faite les conversion si nécessaire

@+




-------------------------------
Réponse au message :
-------------------------------

bonjour,
si qlq un peut m'aider, je m'arrive pas à executer une requeque SQL qui fait le test sur la date que j'ai saisie dans un formulaire el le champs dans la bd. je vous informe que j'utilse une connexion ODBC qui es la suivant

strConnect = "Provider=MSDASQL.1;Persist Security Info=False;User ID=sa;Data Source=BASEDON"
Set cnMabase = New ADODB.Connection
cnMabase.Open strConnect, "sa", ""
Set Matable = New ADODB.Recordset

Ma requete est la suivante :
Matable.Open " select * from mouv where mtnhtl<> 0.00 and datefact = MaDate ", cnMabase

apres execution de la requete je recoi le message suivant:

erreur :'2147217900(80040e14)
[Simba][Simba ODBC Driver] erreur in expression:MaDate


Merci




mercredi 28 avril 2004 à 10:54:42 | Re : test date avec requete

aminaloubna

je me suis connectée à une base de données sql server à partir de vb mais en cas où je change de serveur est-ce que je vais avoir des problèmes dans l'application



Cette discussion est classé dans : date, odbc, test, requete, cnmabase


Répondre à ce message

Sujets en rapport avec ce message

Requete SQL [ par funtay ] bonjour, j'ai un problème de syntaxe dans une requete SQL.En fait ,j'ai une date de début (c'est un maskedbox( txt_datedeb)) et une date de fin (c'est toujours pb de requete SQL [ par funtay ] salut à tous!!!J'ai un problème avec la syntaxe d'une requete.J'ai 2 contrôles(maskedbox) qui correspondent à une date de début (datedebut) et une dat pb avec un bug entre Vb et Access [ par Seishiro ] Bonjour;je dois debuger un soft et je n'arrive pas a savoir pourquoi VB n'est pas content quand il arrive a "Set rs = Base.open......."Le Soft doit ta DEBUTANTE - SQL et ADO [ par Gaëlle ] BonjourJe souhaite inclure une requete SQL ds mon code source pour aller chercher des infos sur un serveur via une connection ODBC.Pb: J'ai vraiment d [SQL] URGENT svp pour une requete de groupement [ par Dinbougre ] SVP c vrmt urgent et j'avance pas depuis vendredig une table CA(date, total)la date est de type jj/mm/aaaaje fais une requete qui affiche le tous les Requete comparaison date [ par seedorf ] salut, en vb j'ai besoins de faire une requete qui extrait les enregistrement dont la valeur d'un champ est compris entre deux dates que je chsois ds requete/base données [ par Mariotte42 ] BonjourMa requete ne fonctionne pas,un message d'erreur me dit "type de données incompatible dans l' expression du critere". Mes champ sont bien au fo Requetes SQL [ par PaulScholes ] Je fait 2 requetes sous Access97, elle sont presque identiques, pourtant, l'une marche et pas l'autre, pourquoi ?requete N°1 :Set MyRS = MyDB.OpenReco une requete de suppression [ par Fimagen ] Salut tout le mondej'ai un proble que je n'arrive pas à résoudre :Voila c'est une appli qui gere les réservations dans un hotel et les données sont st REQUETE SUR LES DATES !!!!!!!! [ par asd ] Bonjour a tous,Je m'arrache les cheveux pour ecrire une requete avec comme criteres les dates...J'ai un fichier de "TARIFS" qui ont une date de debut


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,30 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.