2009-08-20 10 views
2

Je suis un peu coincé et je ne sais pas ce que je fais mal. Je souhaite insérer la date actuelle dans une base de données MS Access dans VB. La partie du code im des problèmes avec est:Insertion d'une date dans un accès db en vb

SQLString = "INSERT INTO Sales(DateSold) VALUES (" 

SQLString += Date.Today & ")" 

Le type dans la base de données est la date et est jj/mm/an. Merci d'avance pour l'aide.

+0

Si vous voulez toujours la date du jour, vous pouvez envisager de définir la valeur par défaut dans le mdb sur Date, puis il n'aura pas besoin d'être inséré. – Fionnuala

Répondre

2

Si vous ne l'avez pas quoi utiliser SQL NOW(), vous pouvez envelopper la date entre guillemets:

SQLString = "INSERT INTO (Sales) VALUES (" 

SQLString += "'" & Date.Today & "')" 
+0

Les citations sont pour les cordes si? Il doit être exact pour le db de prendre l'info. –

+0

Dans toutes les versions d'Access que j'ai utilisé, il accepte les dates, dans les colonnes de date, en utilisant des guillemets simples. Tout comme SQL Server fait La seule différence est dans Access VBA où vous pouvez utiliser # (hash) insted de guillemets simples. Comme le dit Tikeb, vous utiliserez aussi la méthode cultureInfo pour utiliser les données dans un format qu'Access interprétera correctement (soit ISO YYYYMMDD ou American MMDDYYYY). – danseagrave

+0

Ah mal essayer, je pensais juste que les dates ne seraient pas utiliser des citations. –

0

pourquoi ne pas vous laisser l'accès gérer la date:

"INSERT INTO vente VALUES (NOW())"

+0

J'ai essayé cela mais il n'aime pas le format qui a été entré dans le DB alors. Je pense qu'il pourrait essayer d'ajouter l'heure et la date avec cette commande. –

+0

Si vous laissez "Access" le gérer, et que vous voulez une donnée, vous utiliseriez Date() au lieu de Now(), car Now() retourne la date et l'heure. Mais de l'extérieur d'Access lui-même, aucune de ces fonctions ne fonctionnera de manière fiable. Deuxièmement, vous dépendez de son optimisation optimale, c'est-à-dire qu'il ne sera pas exécuté pour chaque ligne. La résolution de la valeur de date avant de la transmettre au moteur de base de données de traitement garantit qu'elle ne sera pas mal optimisée. –

0

Vous pouvez utiliser CultureInfo pour définir les formats de vos datetime?

+0

CultureInfo ne fait pas de dates –

+0

Nous utilisons CultureInfo pour s'assurer que les dates sont formatées en-GB: jj/mm/aaaa au lieu de US mm/jj/aaaa. Était juste en train de penser peut-être que cela pourrait être le problème, sinon aww bien .. – Tikeb

Questions connexes