Arrays 如何在Json字符串中隐藏没有记录的控件
如果Ms Access记录源显示空白/空记录,我需要一些帮助,以确保Json字符串中的某些控件不应出现在字符串上。请参见下文:Arrays 如何在Json字符串中隐藏没有记录的控件,arrays,json,vba,Arrays,Json,Vba,如果Ms Access记录源显示空白/空记录,我需要一些帮助,以确保Json字符串中的某些控件不应出现在字符串上。请参见下文: [ { "ItemNumber": 1, "SalesDate": "2019-09-14", "ProductName": "Pepsi (Rgb 350 ML)", "BarCode": "6009803227328", "Qty": 165, "Price": 53.5, "
[
{
"ItemNumber": 1,
"SalesDate": "2019-09-14",
"ProductName": "Pepsi (Rgb 350 ML)",
"BarCode": "6009803227328",
"Qty": 165,
"Price": 53.5,
"VAT": Null
"TotalPrice": 10239.9
},
假设MS Access记录源中的VAT控制为空/空,则字符串应如下所示:
[
{
"ItemNumber": 1,
"SalesDate": "2019-09-14",
"ProductName": "Pepsi (Rgb 350 ML)",
"BarCode": "6009803227328",
"Qty": 165,
"Price": 53.5,
"TotalPrice": 10239.9
},
请看看是否有可能解决这个问题
下面是提供Json字符串的实际VBA代码示例。假设税务类别B为空/空白,而不是在数组中显示null,我不希望它在此处显示任何内容:
Tax.Add DLookup("TaxClassA", "QryJson", "InvoiceID =" & Me.InvoiceID & " AND ItemesID =" & CStr(i))
Tax.Add DLookup("TaxClassB", "QryJson", "InvoiceID =" & Me.InvoiceID & " AND ItemesID =" & CStr(i))
如果您只想在值不为null或为空时将其添加到Tax,则在调用Tax.add之前检查这些条件
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
注意:从记录中逐个获取一组值是一种缓慢的方法。您可能希望查看DAO(或ADO,具体取决于应用程序),它允许您一次获取整个记录。如果不知道如何创建JSON,很难回答您的问题。请澄清?Json的记录源是一个Ms access参数查询,Json模块作为VBA中的参数进行转换。请编辑问题