【问题标题】:Using DCount in a For Loop with VBA (Microsoft Access)在带有 VBA 的 For 循环中使用 DCount (Microsoft Access)
【发布时间】:2015-10-10 20:37:58
【问题描述】:

我在 VBA 中遇到了 DCount 问题。

我正在尝试用 Dcount 计算的值填充数组。我在 Dcount 中使用的标准之一是我想从不同的数组中获取,这给出了问题:

Dim i As Integer
For i = 0 To (intNumberOfSplitterboxes - 1)
    Dim arrFreeSingleModePorts(243) As Variant
    arrFreeSingleModePorts(i) = 
        DCount("ID", "SplitterboxPorts", _
        "SplitterboxID=i AND Mode='SingleMode' AND IsNull(DevicePortID) AND IsNull(SplitterboxPortID)")
Next

我收到错误 2471

【问题讨论】:

  • 在循环外声明你的数组变量。 DCount 的字符串不正确,请参见下面的答案
  • 你能成功运行这个查询吗? SELECT Count(ID) FROM SplitterboxPorts WHERE SplitterboxID=1 AND Mode='SingleMode' AND IsNull(DevicePortID) AND IsNull(SplitterboxPortID)

标签: vba ms-access dcount


【解决方案1】:

您已将i 变量包含在字符串中。要在字符串中使用 i 的实际值,您需要将它们连接在一起,如下所示:"SplitterboxID=" & i & " AND Mode='SingleMode' AND IsNull(DevicePortID) AND IsNull(SplitterboxPortID)"

【讨论】:

  • 感谢您的回复。我试过你的解决方案。我明白问题是什么。但现在我得到一个不同的错误:错误 13,类型不匹配。
  • arrFreeSingleModePorts(i) = DCount("ID", "SplitterboxPorts", _ "SplitterboxID=i AND Mode='SingleMode' AND IsNull(DevicePortID) AND IsNull(SplitterboxPortID)")这一行是否出现此错误
猜你喜欢
  • 2016-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
  • 2020-12-30
  • 1970-01-01
  • 2021-10-06
相关资源
最近更新 更多