如何获取MS Access表单中运行函数的文本框名称?
实现Access表单文本框自显示名称的方法
方案1:绑定通用函数实现实时自引用
- 先创建一个VBA通用函数,用来接收控件对象并返回它的名称:
Function ShowOwnName(ctl As Control) As String ShowOwnName = ctl.Name End Function
- 打开表单设计视图,选中目标文本框,把它的控件来源属性设置为
=ShowOwnName([Name])。这里的[Name]就是文本框自身的名称属性,作为参数传给函数,每个文本框都会返回自己的名字。
方案2:表单加载时批量赋值
如果不需要实时绑定(比如只是初始化显示),可以用表单加载事件一次性处理所有文本框:
Private Sub Form_Load() Dim ctl As Control ' 遍历表单所有控件 For Each ctl In Me.Controls ' 判断是否为文本框 If ctl.ControlType = acTextBox Then ' 把值设为自身名称 ctl.Value = ctl.Name End If Next ctl End Sub
为什么Me.ActiveControl.Name会失效?
ActiveControl代表的是当前获得焦点的控件,不管哪个文本框用这个表达式,都会返回当前焦点控件的名字,而不是自身的,所以才会出现所有文本框值相同的情况。
内容的提问来源于stack exchange,提问作者L'le Tom
相关产品推荐
相关产品推荐

