1

我有一个 Access 数据库,我想遍历某些文本框以进行计算并在单独的文本框中显示答案。当我尝试循环时,它会遍历表单上的每个控件(使用 Form.Controls)方法。当我的按钮被点击时,我只想循环浏览 4 个特定的文本框(txtbx1、txtbx2、txtbx3、txtbx4)。

说明... TextBox_A 包含一个数字 单击按钮后,从 TextBox_A 中获取数字,乘以 2800,然后除以 12 在 txtbx1 中显示计算的答案。

我会为上面提到的 4 个文本框中的每一个执行此操作。然后有一个“总计”文本框,将每个文本框(txtbx1、txtbx2、txtbx3、txtbx4)的总数相加。请帮助,这是新手,完全不知所措。

4

2 回答 2

5

每个控件都有一个 Tag 属性。为要包含在算法中的值的文本框设置 Tag 属性(比如“INClUDE”)。它是自由格式的文本,所以你可以放你喜欢的。

然后编写附加到某些表单事件的代码,类似于:

 Dim c As Control
Dim txt As TextBox

For Each c In Me.Controls

    'check it's a text box ...
    If TypeOf c Is TextBox Then

        'see if including ...
        Set txt = c
        If Len(txt.Tag) > 0 Then

            'do something here (I've coloured, to show works)
            txt.BackColor = 10

        End If

    End If

Next c

我设置了一个额外的变量 txt 来引用有问题的文本框,这样我就可以使用自动完成获得 TAG 属性(我相信这被称为缩小转换!)。

于 2012-11-08T15:06:52.927 回答
0

如果将 TextBox_A(_B / _C 等)重命名为 TextBox_1 / _2 / _3 等会更容易。然后试试这个:

Dim i As Integer
For i = 1 To 4
    Controls("txtbx" & i) = Val(Controls("TextBox_" & i)) * 2800 / 12
Next

否则,这也可以,但是可读性不好:

= Val(Controls("TextBox_" & Chr(Asc("A") + i - 1))) * 2800 / 12
于 2012-11-08T13:51:04.667 回答