2009-08-20 4 views
2

Im немного застрял, и я не знаю, что я делаю неправильно. Я хочу вставить текущую дату в базу данных MS Access в VB. Часть кода им возникли проблемы с является:Вставка даты в db доступа в vb

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

SQLString += Date.Today & ")" 

Тип в базе данных дата и дд/мм/год. Заранее спасибо за помощь.

+0

Если вы всегда хотите сегодняшнюю дату, вы можете рассмотреть возможность установки значения по умолчанию в mdb для Date, а затем его не нужно будет вставлять. – Fionnuala

ответ

2

Если вы не то, что использовать SQL NOW сделал() можно обернуть дата в котировках:

SQLString = "INSERT INTO (Sales) VALUES (" 

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

Кавычки для строк? Это должно быть точно для db, чтобы взять информацию. –

+0

Во всех версиях Access, которые я использовал, он будет принимать даты, в столбцы даты, используя одинарные кавычки. Так же, как SQL Server делает Единственное различие заключается в Access VBA, где вы можете использовать # (хеш) insted одиночной кавычки. Как говорит Тикеб - вам также полезно использовать cultureInfo, чтобы использовать данные в формате, который Access будет интерпретировать правильно (либо ISO YYYYMMDD, либо American MMDDYYYY). – danseagrave

+0

Ах, дайте ему попробовать, я просто подумал, что даты не будут использовать кавычки. –

0

почему вы не позволяете доступа обрабатывать даты:

"INSERT INTO VALUES продаж (NOW())"

+0

Я пробовал это, но мне не нравится формат, который был введен в db. Я думаю, что это может быть попытка добавить время и дату с этой командой. –

+0

Если вы разрешаете «Доступ» обрабатывать его, и вам нужны данные, вы должны использовать Date() вместо Now(), так как Now() возвращает дату и время. Но из-за пределов самого доступа ни одна из этих функций не будет работать надежно. Во-вторых, вы зависите от того, что он оптимизирован правильно, то есть он не будет выполняться для каждой строки. Устранение значения даты перед передачей его в механизм обработки базы данных гарантирует, что он не будет неправильно оптимизирован. –

0

Вы можете использовать CultureInfo для установки форматов ваших дат?

+0

CultureInfo не делает дат –

+0

Мы используем CultureInfo, чтобы гарантировать, что даты форматируются в формате en-GB: dd/mm/yyyy вместо US mm/dd/yyyy. Просто подумал, может быть, это может быть проблемой, если не все. – Tikeb

Смежные вопросы