【问题标题】:Get a value from a table field into a variable using VBA code in Microsoft Access 2010使用 Microsoft Access 2010 中的 VBA 代码将表字段中的值获取到变量中
【发布时间】:2020-07-13 20:18:43
【问题描述】:

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

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

我正在使用以下 VBA 代码从字段 3 中读取参考字段 2 的值。此代码运行良好,但是当我将字段 2 的数据类型从文本更改为日期/时间时,它不起作用并且显示一条错误消息显示

条件表达式中的数据类型不匹配

请建议我更改代码以解决问题。

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"

【问题讨论】:

    标签: ms-access vba ms-access-2010


    【解决方案1】:

    如果您更改字段的数据类型,您还必须更改您在 DLookup 中使用的参数的数据类型:

    试试下面的代码,#指定参数是日期值。

    importCheck = DLookup("[Is Imported]", "BatchEndDate", "[Batch End Date] = #" & selectedBatchDate & "#")
    

    【讨论】:

      【解决方案2】:

      您的系统默认使用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 & "#")
      

      【讨论】:

        猜你喜欢
        • 2014-06-25
        • 2019-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多