Ms access 如何使用变量在Access窗体上引用字段?
我在Access 2010表单上有20个文本框,称为[P101]到[P110],它指的是源表中的[P101]到[P110]字段。可能包含或不包含值,但如果不包含,我不希望看到它们。我在表中还有一个字段[UsedFields],它统计了有多少字段正在使用。在Form_Current中,我可以设置以下代码,但是否有一种方法可以为下一个循环设置一个变量来使用字段名? 目前的代码(有效但非常笨拙)是: 由于字段的数量设置为从10增加到100,我想使用一个变量来保存文本框名称,例如:Ms access 如何使用变量在Access窗体上引用字段?,ms-access,ms-access-2007,vba,ms-access-2010,Ms Access,Ms Access 2007,Vba,Ms Access 2010,我在Access 2010表单上有20个文本框,称为[P101]到[P110],它指的是源表中的[P101]到[P110]字段。可能包含或不包含值,但如果不包含,我不希望看到它们。我在表中还有一个字段[UsedFields],它统计了有多少字段正在使用。在Form_Current中,我可以设置以下代码,但是否有一种方法可以为下一个循环设置一个变量来使用字段名? 目前的代码(有效但非常笨拙)是: 由于字段的数量设置为从10增加到100,我想使用一个变量来保存文本框名称,例如: Private Su
Private Sub Form_Current()
Dim Ctrl As Control
Dim CtrlName As String
Dim Counter As Long
For Counter = 1 To 10
CtrlName = "P" & Counter
Set Ctrl = CtrlName
If Counter > Me.UsedFields Then
Ctrl.Visible = False
Else
Ctrl.Visible = True
End If
End Sub
这样的引用可能吗?您可以使用字符串变量引用表单的
控件集合中的项
Dim Ctrl作为控件
Dim CtrlName作为字符串
昏暗的柜台一样长
对于计数器=1到10
CtrlName=“P”计数器(&C)
设置Ctrl=Me.Controls(CtrlName)
如果计数器>Me.UsedFields,则
Ctrl.Visible=False
其他的
Ctrl.Visible=True
如果结束
下一个
顺便说一句,如果有意义的话,您可以使用一行来代替If
块
Ctrl.Visible=Not(计数器>Me.UsedFields)
您可以使用字符串变量引用表单的控件中的项
Dim Ctrl作为控件
Dim CtrlName作为字符串
昏暗的柜台一样长
对于计数器=1到10
CtrlName=“P”计数器(&C)
设置Ctrl=Me.Controls(CtrlName)
如果计数器>Me.UsedFields,则
Ctrl.Visible=False
其他的
Ctrl.Visible=True
如果结束
下一个
顺便说一句,如果有意义的话,您可以使用一行来代替If
块
Ctrl.Visible=Not(计数器>Me.UsedFields)
谢谢HansUp,它工作得很好,节省了几百行代码。你是个明星。谢谢HansUp,它工作得很好,节省了几百行代码。你是个明星。
Private Sub Form_Current()
Dim Ctrl As Control
Dim CtrlName As String
Dim Counter As Long
For Counter = 1 To 10
CtrlName = "P" & Counter
Set Ctrl = CtrlName
If Counter > Me.UsedFields Then
Ctrl.Visible = False
Else
Ctrl.Visible = True
End If
End Sub