我有一个Access数据库,我想循环浏览某些文本框,以便进行计算并在单独的文本框中显示答案。当我尝试循环时,循环遍历我的表单上的每个控件(使用Form.Controls)方法。我想在单击我的按钮时只循环浏览4个特定的文本框(txtbx1,txtbx2,txtbx3,txtbx4)。
...说明 TextBox_A包含一个数字 单击按钮后,从TextBox_A中取数字,乘以2800,然后除以12 在txtbx1中显示计算的答案。
我会为上面提到的4个文本框中的每一个执行此操作。然后有一个“总计”文本框,它将每个文本框(txtbx1,txtbx2,txtbx3,txtbx4)的总和相加。请帮忙,对此不熟悉并完全失败。
答案 0 :(得分:4)
每个控件都有一个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属性(我相信这称为缩小转换!)。
答案 1 :(得分: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