преобразование формата даты в таблицу доступа с обновлением sql - PullRequest
1 голос
/ 19 августа 2011

У меня проблема с преобразованием дат при обновлении таблицы SQL в VB при доступе: вот мой код:

'Excel format date conversion
strSQL = "UPDATE tblBlotterINTLControl " & _
            "SET tblBlotterINTLControl.TradeDate = CVDate(TradeDate), " & _
                "tblBlotterINTLControl.SettleDate = CVDate(SettleDate);"
DoCmd.RunSQL strSQL

Я получаю ошибку для каждой строки: «ошибка преобразования типа» У меня есть таблицы в правильном формате, пожалуйста, помогите спасибо

EDIT: Я должен сказать, что запрос SELECT работает, а запрос UPDATE - нет! Зачем? как?

Ответы [ 2 ]

0 голосов
/ 19 августа 2011

Каковы типы данных полей TradeDate и SettleDate в таблице Access tblBlotterINTLControl?

SELECT TypeName(TradeDate) AS TypeOfTradeDate, TypeName(SettleDate) AS TypeOfSettleDate
FROM tblBlotterINTLControl;

Пожалуйста, вставьте этот запрос в SQL-представление нового запроса в Access, запустите его и покажите нам, что выполучить обратно.

Причина, которую я спросил, заключается в том, что операторы SET в вашем запросе UPDATE озадачивают меня.

SET tblBlotterINTLControl.TradeDate = CVDate(TradeDate)

Если поле TradeDate имеет тип данных Date / Time, используя функцию CVDate ()на этом ничего не добьется.

Если поле TradeDate имеет тип данных text, CVDate () предоставит вам вариант даты, но вы не можете сохранить это значение даты / времени обратно в текстовое поле.

Может быть, вам лучше использовать функцию Format ().Вот пример, который я скопировал из окна «Немедленно»:

? Format("2011/01/01", "d mmm yyyy")
1 Jan 2011
0 голосов
/ 19 августа 2011

Попробуйте CDate вместо CVDate.

CVDate на самом деле возвращает вариант типа vbDate и используется только для обратной сопоставимости.Может быть, это то, что вызывает проблемы.

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