Problème requete INSERT

Résolu
desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015 - 1 févr. 2008 à 17:56
desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015 - 5 févr. 2008 à 14:20
Voilà un problème de "syntaxe dans la requete INSERT INTO" me dit VB2005

INSERT INTO utiliser (NoVis, NoPoste, Date, Heure) VALUES (1, 9, #01/05/2007#, #15:30#);

J'ai l'impression que c'est l'heure qui ne fonctionne pas, mais je pensais que c'était bon.
Donc est-ce la bonne requete ?

10 réponses

desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015
5 févr. 2008 à 14:20
OK je suis simplement stupide, mon occurence ne s'appelle pas "Date" mais "DateUtil"

En effet ça resoud bien mon problème. -_-'

P.S : les champs "Heure" et "DateUtil" sont entourés de "#".
Merci quand même pour vos réponse j'en ai quand même appris des choses ;)
3
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
1 févr. 2008 à 18:02
Salut,
Peut être :
...VALUES (1, 9, #" & "01/05/2007" & "#, #" & "15:30" & "#);"
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
1 févr. 2008 à 18:22
essaies aussi avec TimeValue("15:30")

En fait TimeValue("15:30") retoune 15:30:00.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 févr. 2008 à 20:32
Sur quel type de base es-tu ????

Sur Access, il afut effectivement encadrer l'heure et la adte de #, par contre, je n'ai jamais réussi à faire marcher cette syntaxe sur SQLServeur. Sur SQLServeur, il suffit d'encadrer la date d'apostrophe.

Par contre, chose qui arrive souvent, c'est qu'il faut mettre la date au format américain : 'mm/jj/aaaa'

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0

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

Posez votre question
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
1 févr. 2008 à 21:21
Salut Casy,
je partage l' avis (désespéré :-) de desperados.
L' erreur se situe sûrement au niveau du champ heure.
A ma connaissance un champ heure abrege, bien qu' il s' affiche
sous le format hh:mn, il est enregistré sous le format jj/mm/aaaa/hh:mn:ss.
Personnellement,dans mes expressions sql, je passe toujours mes valeurs dates sous la forme de variable date.Pour éviter tout déboirs.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
1 févr. 2008 à 21:30
Mea culpa :
heure abrege s' enregistre bien sous la forme hh:mn.
Je sais pas pourquoi j' ai pensé le contraire.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 févr. 2008 à 21:37
non cela dépend du type de champ, sous sqlserveur, en tout cas.

Un champ de type heure, la donnée sera enregistrée sous la forme 01/01/1900 XX:XX:XX

De même qu'un champ Date seule sera toujours enregistré sous la forme XX/XX/XX 00:00:00

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
1 févr. 2008 à 21:42
j' ai eu donc raison sans le savoir !
En se trompant juste sur le type de base :-)
0
desperados27 Messages postés 121 Date d'inscription samedi 4 novembre 2006 Statut Membre Dernière intervention 1 juillet 2015
2 févr. 2008 à 04:46
oui j'utilise une base de données Access !

C'est sûr, ce sont les heures car je peux utiliser les dates en condition, et ca fonctionne

Sous access, mon format heure (dit : "abrégé") est hh:mm

par contre si j'ai bien compris ce qu'a dit casy,
je doit réutiliser la date juste pour le champ heure ?

Et ca donnerai donc :

INSERT INTO utiliser (NoVis, NoPoste, Date, Heure) VALUES (1, 9, #01/05/2007#, #01/05/2007/15:30:00#);

P.S : je peux tester que demain ^^, je vous tiens au courant ;)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
2 févr. 2008 à 10:17
Non pas du tout, ce que j'indiquais est le format dans lequel sont réellemeent enregistrées les données.

Par contre, toi, tu doit manipuler les données dans le format dans lequel tu as déclaré le champ, c'est le moteur de la base qui se charge normalement de fare toutes les transformations necessaires.

Par contre maintenant que l'on sait que tu es sous Access, on peut faire des essais.

Et les premiers essais indiquent que le champ Date est un nom de colonne invalide. En effet, Date est une fonction d'Access, donc quand tu le met comme ça dans une requette, Access essaye d'utiliser la fonction et ici ça marche pas.
Pour lui dire que c'est bien un nom de colonne qu'il faut utiliser et pas autre chose, il faut encadrer le nom par des crochets.

Cette requette marche chez moi :
INSERT INTO utiliser (NoVis, NoPoste,[Date],Heure) VALUES (1, 9, #01/05/2007#, #15:30#);

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Rejoignez-nous