gpt4 book ai didi

ms-access - Access VBA - 我如何在 VBA 中有一个循环来允许我循环控制名称

转载 作者:行者123 更新时间:2023-12-04 10:21:44 27 4
gpt4 key购买 nike

我在一个表单上有大约 10 个文本框,它们实际上用于显示而不是输入。他们的名字是 txt_001_Name , txt_002_Title ,等等。为此使用什么样的循环。

我应该使用什么样的 VBA 来实际循环文本框的名称?所以如果我要 debug.print 它看起来像:

txt_001_Title
txt_002_Title
txt_003_Title

这可能很简单 - 我应该学习如何!

编辑:抱歉,我应该对此进行更多描述。

由于上述命名约定,我希望遍历这些文本框,以便我可以对每个文本框执行某些操作。这 10 个文本框中的每一个实际上代表的是数字值,每个值后面都有一个 SQL 语句,位于表单的 onload 中。事件。我还有另外一组十个,它们包含更加静态的数值,最后另外十个使用表达式简单地将前十个中的每一个除以相对的“第二个”十,并且该值以相对值结束3. 所以基本上它最终看起来像一个仪表盘。
'first ten'       'second ten'     'resulting ten'
---------------------------------------------------
txt_001_value txt_001_calc txt_001_result
txt_002_value txt_002_calc txt_002_result

等等。

所以我实际上想将它用于“结果”文本框。我想遍历前十个并执行这个简单的计算:
 me.txt_001_result = me.txt_001_value / me.txt_001_calc     

所有命名约定“匹配”,因此我可以为此手动输入上面的 10 行,但我确信有更好的方法(循环遍历),我可能应该学习它。

最佳答案

您可以使用如下简单过程列出文本框控件的名称:

Public Sub TextBoxNames(ByRef pfrm As Form)
Dim ctl As Control
For Each ctl In pfrm.Controls
If ctl.ControlType = acTextBox Then
Debug.Print ctl.Name
End If
Next ctl
Set ctl = Nothing
End Sub

您可以从表单的 Load 事件中调用它:

Private Sub Form_Load()
TextBoxNames Me
End Sub

但是,我不明白你想要完成什么。我意识到你想用 ctl.Name 做一些不是 Debug.Print 的事情,但我不知道那是什么。

与其计算 me.txt_001_result 的结果,然后将该值分配给文本框,不如考虑将 txt_001_result 的控制源设置为 txt_001_value/txt_001_calc 并让 Access 为您将正确的值放入 txt_001_result 中。

针对您的意见,我建议将此过程作为您构建的起点:

Public Sub MyTextBoxValues()
Const cintLastTextBoxNum As Integer = 10
Dim i As Integer
Dim strValueControl As String
Dim strCalcControl As String
Dim strResultControl As String
Dim strPrefix As String

For i = 1 To cintLastTextBoxNum
strPrefix = "txt_" & Format(i, "000")
'txt_001_value txt_001_calc txt_001_result '
strValueControl = strPrefix & "_value"
strCalcControl = strPrefix & "_calc"
strResultControl = strPrefix & "_result"
'me.txt_001_result = me.txt_001_value / me.txt_001_calc '
'Debug.Print strResultControl, strValueControl, strCalcControl '
Me.Controls(strResultControl) = Me.Controls(strValueControl) / _
Me.Controls(strCalcControl)
Next i
End Sub

关于ms-access - Access VBA - 我如何在 VBA 中有一个循环来允许我循环控制名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3916857/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com