Строка SQL VBA, сохраняющая короткую дату как общую дату вместо короткой - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь сделать что-то простое: взять 2 даты [startD] и [endD] из файла accdb.Переместите их на один месяц вперед, сохраните новые даты как короткие даты в соответствующей записи.

Я делаю все это с помощью VBA

Проблема в том, что он показывает правильную строку SQL (если я делаю msgbox sql) однако при сохранении он сохраняется как общая дата со временем и является неправильным значением!* Примечание: я нахожусь в Австралии, поэтому у меня есть раздел формата, чтобы убедиться, что дата сохраняется правильно.

Я также пытался использовать DateValue () и Форматирование даты.

Dim frq As Integer
Dim wks As Integer
Dim CurAcc As Integer
Dim CurAccEnd As Date
Dim Days As Integer
Dim curaccvalue As Currency
Dim cardtype As Integer
Dim cardcharged As Integer




cardtype = 0
cardcharged = 0

CurAcc = Me.ID

curraccvalue = DLookup("Acccurvalue", "Accounts", "[ID] = " & CurAcc)
Curraccend = DLookup("Accend", "Accounts", "[ID] = " & CurAcc)

frq = DLookup("freqid", "Accounts", "[ID] = " & CurAcc)

wks = DLookup("freqvalue", "tblfrequency", "FrequencyID = " & frq)
Days = wks * 7




strsql = "UPDATE Accounts SET AccStart = " & Date & " , AccEND = " &             
Curraccend     + Days & " , AccCurValue = 0.00 WHERE ID = " & CurAcc
MsgBox strsql
DoCmd.RunSQL strsql

1 Ответ

0 голосов
/ 30 января 2019

При неявном преобразовании даты в строку используются ваши региональные настройки, но в строке SQL дата должна быть в американском формате.

Чтобы избежать этого, я предлагаю сделать обновление втолько один запрос:

Dim strSql As String

strSql = "UPDATE Accounts " & _
    "INNER JOIN tblfrequency ON Accounts.freqid = tblfrequency.FrequencyID SET " & _
    "AccStart = Date(), " & _
    "AccEND = DateAdd(""w"", tblfrequency.freqvalue, Accounts.Accend), " & _
    "AccCurValue = 0.00 WHERE ID = " & Me.ID

MsgBox strSql
DoCmd.RunSQL strSql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...