我在 MS Access 2002 中有一个表单,命令按钮后面有以下代码片段。
'Requery subform to make sure total is calculated
Me.fsubUpdateShipments.Requery
DoEvents
'Confirm quantities have been entered
If Form_fsubUpdateShipments.txtTotalShipmentQty.Value <= 0 Then
MsgBox "Cannot create shipment, no quantities have been entered", vbCritical
Exit Sub
End If
Run Code Online (Sandbox Code Playgroud)
几个月来,这一直工作正常,但今天一位同事来找我并解释说,即使他们输入了数量,错误消息也会显示。
经过一番挖掘后,我确定在.Value <= 0相关文本框完成计算其值之前正在计算表达式:=Sum([QtyToShip])。这种情况似乎仅在子表单具有大量记录(大约 10 条或更多)时才会发生,并且显然是一个严重的问题。
在包含该语句的行上添加断点If可以使代码正确运行,但我显然不能永久使用此方法。
有什么方法可以强制代码暂停,直到子表单控件完成重新计算其值?
通常,如果我想从逗号分隔的字符串创建一个数组,那么它就是我想要的 String 数组和Split()我将使用的函数。但是现在我需要将逗号分隔的字符串转换为 Variant 数组,以便它可以用作函数参数。
不幸的是,尝试使用填充变体数组Split()会引发类型不匹配错误,下面是测试示例。
Public Sub GetTheStuff()
Dim varArray() As Variant
varArray = Split("Bob,Alice,Joe,Jane", ",") '<~~ Error 13, Type Mismatch
DoTheThing varArray
End Sub
Private Sub DoTheThing(Args() As Variant)
Dim i As Long
For i = LBound(Args) To UBound(Args)
Debug.Print Args(i)
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以从分隔字符串填充 Variant 数组,还是我必须编写自己的函数才能这样做?
注意:我无法改变我正在调用的函数需要一个 Variant 数组作为参数的事实,也不能将我的输入作为分隔字符串以外的任何东西。
我正在开发 Access 应用程序,但遇到了以下问题。目前,我正在通过将查询导出为 CSV 文件来编写输出文件,但是该文件需要由较旧的数据库系统读取,并且需要包含一些标识数据的标题行。
我可以在 VBA 中毫无问题地构造此标题行的字符串,但我不太确定如何将其插入 CSV 文件的第一行,而不是附加在末尾。我怎样才能做到这一点/达到预期的结果?