2013-12-18 5 views
1

Я пытаюсь присоединиться к таблице в запросе в MS Access. Поле для запроса - «LineoffMonth», а поле для таблицы - «Месяц производства». LineoffMonth выглядит следующим образом:Ошибка несоответствия типа данных с использованием функции CDate

LineoffMonth: CDate (Month ([Line_off_Date]) & "/ 1 /" & год ([Line_off_Date]))

месяц производства является типом данных даты/времени. Я продолжаю получать «Ошибка несоответствия типа данных в выражении». Я не понимаю, почему он не позволит мне присоединиться к двум полям.

ответ

1

Вы получите эту ошибку, если [Line_off_Date] - это Null, как показано на этом сеансе окна Immediate.

Line_off_Date = Null 
? Month(Line_off_Date) & "/1/" & Year(Line_off_Date) 
/1/ 
? CDate("/1/") ' throws Type mismatch (Error 13) 

Вы можете обновить таблицу, чтобы заменить NULLS в [Line_off_Date]. Или вы можете добавить предложение WHERE, чтобы исключить строки, которые имеют Null для [Line_off_Date]. Или вы можете использовать выражение IIf, которое возвращает выражение CDate, когда [Line_off_Date] не является Null, а что-то еще (возможно, Null?), Когда [Line_off_Date] - это Null.

В качестве побочного пункта рассмотрите выражение DateSerial вместо того, что вы использовали.

Line_off_Date = Date() 
? CDate(Month(Line_off_Date) & "/1/" & Year(Line_off_Date)) 
12/1/2013 
? DateSerial(Year(Line_off_Date), Month(Line_off_Date), 1) 
12/1/2013 
+0

Это очень полезно ... спасибо! – autumntiger

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

  • Нет связанных вопросов^_^