在MS Access 2010中,我使用包含三个字段的表:
我正在使用以下VBA代码从字段3中读取一个值,参考字段2.此代码运行良好但是当我将字段2的数据类型从Text更改为Date / Time时,它不起作用,显示错误消息显示
标准表达式中的数据类型不匹配
请建议我修改代码以解决问题。
Dim selectedBatchDate As Variant
selectedBatchDate = Me.cmboBatchDate
Dim importCheck As Variant
importCheck = DLookup("[Is Imported]", "BatchEndDate", "[Batch End Date] = '" & selectedBatchDate & "'")
MsgBox ("Import Status is " & importCheck), vbInformation, "Import Status"
答案 0 :(得分:0)
如果更改字段的数据类型,则还必须更改DLookup中使用的参数的数据类型:
尝试下面的代码,#
指定参数是日期值。
importCheck = DLookup("[Is Imported]", "BatchEndDate", "[Batch End Date] = #" & selectedBatchDate & "#")
答案 1 :(得分:0)
您的系统默认为日期的dd/mm/yyyy
格式,因为您需要使用字符串表达式,因此您必须使用Format
来应用yyyy/mm/dd
格式:
Dim selectedBatchDate As String
selectedBatchDate = Format(Me.cmboBatchDate, "yyyy\/mm\/dd")
Dim importCheck As Variant
importCheck = DLookup("[Is Imported]", "BatchEndDate", "[Batch End Date] = #" & selectedBatchDate & "#")