使用Microsoft Access 2010中的VBA代码从表字段获取值到变量

时间:2016-02-11 09:48:33

标签: access-vba ms-access-2010

在MS Access 2010中,我使用包含三个字段的表:

  1. ID(自动编号)
  2. BatchEndDate(文本)
  3. IsImported(是/否)。
  4. Picture of Table.

    我正在使用以下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"
    

2 个答案:

答案 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 & "#")