小编Aik*_*ken的帖子

从主窗体中,运行 VBA 以验证子窗体中的总计

我在 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可以使代码正确运行,但我显然不能永久使用此方法。

有什么方法可以强制代码暂停,直到子表单控件完成重新计算其值?

ms-access vba ms-access-2002

5
推荐指数
1
解决办法
745
查看次数

从逗号分隔的字符串填充变体数组

通常,如果我想从逗号分隔的字符串创建一个数组,那么它就是我想要的 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 数组作为参数的事实,也不能将我的输入作为分隔字符串以外的任何东西。

vba ms-access-2003

4
推荐指数
1
解决办法
2万
查看次数

将数据附加到 CSV 文件的开头

我正在开发 Access 应用程序,但遇到了以下问题。目前,我正在通过将查询导出为 CSV 文件来编写输出文件,但是该文件需要由较旧的数据库系统读取,并且需要包含一些标识数据的标题行。

我可以在 VBA 中毫无问题地构造此标题行的字符串,但我不太确定如何将其插入 CSV 文件的第一行,而不是附加在末尾。我怎样才能做到这一点/达到预期的结果?

ms-access vba

1
推荐指数
1
解决办法
2218
查看次数

标签 统计

vba ×3

ms-access ×2

ms-access-2002 ×1

ms-access-2003 ×1