我正在尝试将表连接到MS Access中的查询。查询字段为“LineoffMonth”,表的字段为“Production Month”。 LineoffMonth看起来像这样:
LineoffMonth:CDate(月([Line_off_Date])&“/ 1 /”& Year([Line_off_Date]))
生产月份是日期/时间数据类型。我一直收到“表达式中的数据类型不匹配错误”。我不明白为什么它不会让我加入这两个领域。
答案 0 :(得分:1)
当[Line_off_Date]
为空时,您将收到该错误,因为此立即窗口会话说明了。
Line_off_Date = Null
? Month(Line_off_Date) & "/1/" & Year(Line_off_Date)
/1/
? CDate("/1/") ' throws Type mismatch (Error 13)
您可以更新表格以替换[Line_off_Date]
中的Null。或者,您可以添加WHERE
子句以排除[Line_off_Date]
为空的行。或者您可以使用IIf
表达式,当CDate
不为空时返回[Line_off_Date]
表达式,但是当[Line_off_Date]
为空时返回其他内容(可能为空?)。
作为一个侧面点,请考虑使用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