Insertion d'une date dans une DB access depuis VB6. (BUG A LA CON !)

Insertion d'une date dans une DB access depuis VB6. (BUG A LA CON !) - VB/VBA/VBS - Programmation

Marsh Posté le 04-06-2004 à 12:25:30    

Salut
 
J'ai une table sous access 2000, avec un champ date_naiss au format date (jj/mm/yyyy).
 
Deja si j'essaie d'inserer une donnée qui est au format Date dans VB. La date inseree sera une date completement fausse du genre 30/12/1899.
 
Pour corriger ca, j'ai plutot fait une chaine de caractere a partir des 3 combobox jour moi annee. ce qui donne :  
 

Code :
  1. UpdateDateNaiss = "#" & Jour & "/" & Mois & "/" & Annee & "#"


 
ca donne -> #01/02/1980# par exemple.
 
Leprob c'est que si le jour est inférieur ou égal a 12. Il inverse le jour et le mois dans la DB, alors que la chaine est correcte.
 
J'ai essayé :
 
- #1/2/1980# -> meme bug inversion de mois et jour
- #01/02/1980# -> meme bug inversion de mois et jour
- #01/2/1980# -> meme bug inversion de mois et jour
- #1/02/1980# -> meme bug inversion de mois et jour
 
et sans les ##  -> 30/12/1899
 
A noter que #13/02/1980# sera enregistré correctement.
 
Pourquoi ?
 
:/
 
merci davance
 
 
P.S.: ma requete :  
 

Code :
  1. Set RecordSet = ExecSQL("UPDATE membres SET date_naiss = #01/02/1980# WHERE id_membre=2" )


Message édité par Gat$ le 04-06-2004 à 12:37:10

---------------
Recherche de partenaires pvp dans World of Warcraft :: http://www.wowteamfinder.com
Reply

Marsh Posté le 04-06-2004 à 12:25:30   

Reply

Marsh Posté le 04-06-2004 à 12:57:18    

Bon j'ai tester en faisant directement la requete dans MS access et c'est le meme probleme donc c'est deja pas dut a visual basic.
 
UPDATE membres SET date_naiss = #01/02/1980# WHERE id_membre=2;
 
Mais qu'est-ce qui cloche dans cette requete ?????
le champ date_naiss est au format date/heure abrégé (jj/mm/aaaa)
 
j'vois pas ce que je peux faire de plus !
 
help !!! :(
 


Message édité par Gat$ le 04-06-2004 à 12:58:03

---------------
Recherche de partenaires pvp dans World of Warcraft :: http://www.wowteamfinder.com
Reply

Marsh Posté le 04-06-2004 à 13:32:01    

arf j'laisse tomber mes dates seront au format texte puis voila c'est encore plus simple... :/


---------------
Recherche de partenaires pvp dans World of Warcraft :: http://www.wowteamfinder.com
Reply

Marsh Posté le 04-06-2004 à 16:48:14    

En fait si ça inverse c'est normal, il faut écrire (ou traduire par le code) la date au format américain (je crois) soit -> #mm/jj/aaaa#
 
je te file une partie de l'aide de vb sur ce sujet:
 

Code :
  1. Si vous spécifiez l'argument criteria, vous devez indiquer les littéraux date au format américain, et ce, même si vous n'utilisez pas la version américaine du moteur de base de données Microsoft Jet. Par exemple, le 10 mai 1996, s'écrit sous la forme 10/5/96 en France et 5/10/96 aux Etats-Unis. N'oubliez pas d'indiquer vos littéraux date entre deux caractères #, comme dans l'exemple ci-dessous.
  2. Pour rechercher les enregistrements datés du 10 mai 1996 dans une base de données française, utilisez l'instruction SQL suivante :
  3. SELECT *
  4. FROM Commandes
  5. WHERE [Date envoi] = #5/10/96#;
  6. Vous pouvez également utiliser la fonction DateValue qui reconnaît les paramètres régionaux de Microsoft Windows. Par exemple, pour un code écrit aux Etats-Unis :
  7. SELECT *
  8. FROM Orders
  9. WHERE ShippedDate = DateValue('5/10/96');
  10. Par exemple, pour un code écrit en France :
  11. SELECT *
  12. FROM Commandes
  13. WHERE [Date envoi] = DateValue('10/5/96');


Message édité par prog1001 le 04-06-2004 à 19:49:40
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed