【发布时间】:2020-04-17 09:44:12
【问题描述】:
我在 Ms Access 中有一个数组 Tax class B。
税类 B 有一些空值。这些数组是从下面的代码生成的:
Tax.Add DLookup("TaxClassB", "QryJson", "InvoiceID =" & Me.InvoiceID & " AND ItemesID =" & CStr(i))
Like say: if i = 5 then
"B"
""
"B"
""
"B"
我怎样才能摆脱那些空元素,使 Tax class B 变成只有三个元素长,然后将它们显示在三个单元格的范围内?
我试过下面的代码
Dim myvar As Variant
myvar = DLookup("TaxClassB", "QryJson", "InvoiceID =" & Me.InvoiceID & " AND ItemesID =" & CStr(i))
If Not IsNull(myvar) Then
If Len(myvar) > 0 Then
Tax.Add myvar
End If
End If
【问题讨论】:
-
该代码没有解决您的问题,因为它是解决不同问题的方法。 stackoverflow.com/questions/59455560/…您从单个 DLookup 中从哪里获取此数组? TaxClassB 是多值字段吗?在单元格中显示结果是什么意思?
-
对不起,它不是一个单元格而是一个字段,这个字段是可选的,它可能是必需的,也可能不是,这就是为什么如果它为空它不应该显示在由提供的 on Json 字符串上向上查找,请注意提供此 Json 字符串的其余代码是可以的,这部分是可选的,要排序的部分
-
我想说 DLookup 也缺少测试相关列的值。它正在测试 InvoiceID、ItemesID,但返回的字段是什么?仅在该字段不是“空”并且不需要进行后处理时才返回该字段...
-
返回的字段是“TaxClassB”
-
添加检查 Is Null 以查询标准为@cindy 建议
"InvoiceID =" & Me.InvoiceID & " AND ItemesID =" & CStr(i) & " And TaxClassB Not Is Null"如果您在该查询上使用记录集,您可以在一个查询中获取所有元素,如果您需要一个数组(有什么用?) m 你可以使用.GetRows将记录集转换为数组。