MS Access:从字符串获取值

时间:2018-11-13 17:42:06

标签: excel vba ms-access

我正在尝试让此VBA代码在用户将数据输入表单后运行。该脚本将计算等于前后的费用

我正在定义要使用其值(例如:before_1,after_1,charge_1)作为字符串的文本框的名称,然后在CalCharge Sub中使用这些值。

有什么想法为什么该代码不起作用?我相信这种方法适用于C#,但不适用于VBA。

Private Sub before_1_AfterUpdate()
    before = "before_1"
    after = "after_1"
    charge = "charge_1"
    Call CalCharge(before, after, charge)
End Sub

Private Sub before_2_AfterUpdate()
    before = "before_2"
    after = "after_2"
    charge = "charge_2"
    Call CalCharge(before, after, charge)
End Sub



Sub CalCharge(before, after, charge)
    charge.Value = before.Value - after.Value
    Exit Sub
End Sub

1 个答案:

答案 0 :(得分:0)

无论您使用的是无量纲变量,我都会说问题是您没有引用CalCharge中的控件。

尝试使用此功能:

Private Sub before_1_AfterUpdate()
    Call CalCharge(1)
End Sub

Private Sub before_2_AfterUpdate()
    Call CalCharge(2)
End Sub

Private Sub CalCharge(ByVal index As Long)
    Me("charge_" & index).Value = Me("before_" & index).Value - Me("after_" & index).Value
End Sub

我对其进行了一些重组: CalCharge现在正在等待一个数字参数,用于定义索引要使用的控件的“集合”。

您的事件过程before_1_AfterUpdate()before_2_AfterUpdate()现在只需通过提供索引来调用这个新的CalCharge过程。

CalCharge现在通过首先构建控件名称来引用控件。

Me是对当前对象实例(即当前代码所在的表单)的引用。