Json 如何摆脱空或“空”&引用;在VBA Ms access中
查看如何帮助消除空值或“”如果下面的代码在记录源中找不到值,我尝试了IsEmpty,但它在VBA中甚至不被接受:Json 如何摆脱空或“空”&引用;在VBA Ms access中,json,vba,ms-access,Json,Vba,Ms Access,查看如何帮助消除空值或“”如果下面的代码在记录源中找不到值,我尝试了IsEmpty,但它在VBA中甚至不被接受: Tax.Add Nz(DLookup("TaxClassB", "QryJson", "InvoiceID =" & Me.InvoiceID & " AND ItemesID =" & CStr(i)), "") 最后,这解决了我的问题: Tax.Add Nz(DLookup("TaxClassB", "QryJson", "InvoiceID =" &a
Tax.Add Nz(DLookup("TaxClassB", "QryJson", "InvoiceID =" & Me.InvoiceID & " AND ItemesID =" & CStr(i)), "")
最后,这解决了我的问题:
Tax.Add Nz(DLookup("TaxClassB", "QryJson", "InvoiceID =" & Me.InvoiceID & " AND ItemesID =" & CStr(i)), "")
所需的修订如下:
Dim myVariant As Variant
If (myVariant = Empty) Then
End If
在上述声明之后,我的新代码如下所示:
Tax.Add Nz(DLookup("TaxClassB", "QryJson", "InvoiceID =" & Me.InvoiceID & " AND ItemesID =" & CStr(i)), myVariant)
或者,您可以按照以下子例程执行某些操作:
Private Sub TryAddTaxClasses(invoiceID As String, itemesID As String)
Dim criteria As String: criteria = "TaxClassB <> '' AND TaxClassB IS NOT NULL"
If invoiceID <> "" Then criteria = criteria & " AND InvoiceID=" & invoiceID
If itemesID <> "" Then criteria = criteria & " AND ItemesID=" & itemesID
Dim rst As DAO.Recordset: Set rst = CurrentDb.OpenRecordset("SELECT TaxClassB FROM QryJson WHERE " & criteria, dbOpenSnapshot)
rst.MoveFirst
Do While Not rst.EOF
Tax.Add rst!TaxClassB
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
End Sub
或者为其中一个或两个参数传递空字符串,这将导致为其进行的所有匹配添加税类:
TryAddTaxClasses("", "")
对于快速、粗略和现成的代码之外的任何东西,我都会郑重建议避免使用DLookup。它带来的麻烦比它的价值还多。例如,其缺点可在此处阅读>
相反,我倾向于使用记录集方法,或者使用我自己的“ELookup”域函数,类似于allenbrowne页面上的函数。是
ItemesID
类似发票ID的字符串还是数字?你能详细说明一下代码吗?请注意,emesid是像1,2,3,4这样的序列号,etcIf ItemesID是一个数字类型的字段,为什么要使用CStr()函数?如果DLookup返回Null,您希望保存什么值?ItemsId是不可协商的,它必须在那里根据税务要求显示产品线编号,而不使用CStr(),那么json将只显示一个产品线,而不是一行一行地显示。例如,如果有100行,json字符串将按顺序显示所有行,但如果忽略CStr函数,json永远不会显示所有行产品,而只能显示一个
TryAddTaxClasses("", "")