MS-Access 2007 - 如何在点击事件中以编程方式访问子表单列数据
Posted
技术标签:
【中文标题】MS-Access 2007 - 如何在点击事件中以编程方式访问子表单列数据【英文标题】:MS-Access 2007 - How to programatically access sub form columns data on click event 【发布时间】:2016-07-02 22:49:40 【问题描述】:我有一个包含子表单的未绑定表单。 当用户单击主窗体上的按钮时,子窗体未绑定并被填充。
我希望能够以语法方式处理子表单上的点击并获取特定列中的数据。我怎样才能做到这一点?如果你明白我的意思,你可以用 VB.NET/C#.NET 做同样的事情。
当我使用子表单的属性选项卡时,我得到了一个表达式生成器。这不会让我进入子/函数/表单或模块 VBA 代码编辑器。
感谢任何帮助。
编辑 - 有用的东西! 感谢我从以下答案中获得的帮助。 在子表单中引用选定行中的列的一种方法是使用以下表达式:
Me!ChildFormName.Form!ColumnNameInSubForm
前:
ME!Sales.Form!SalesmanID
Additional Reference here...
这种方法的一个问题是可用事件 On Enter 和 On Exit 的行为不像“click”事件。需要关注子表单(通过单击另一个控件)才能触发!
【问题讨论】:
【参考方案1】:再看一遍。属性表有一个选项卡,事件。选择任何事件并从下拉列表中选择“事件过程”,然后单击省略号 - 打开代码编辑器。
【讨论】:
感谢您的帮助。是的,有文本[事件过程]。当我在那里键入任何名称并转到代码时,我没有在代码中创建事件处理程序。你建议我怎么做才能获得在代码中创建的事件处理程序? (如 C#/VB)?谢谢。 您没有输入任何文本。单击省略号并在输入时到达事件处理程序。子函数的名称跟在控件的名称后面。 是的,你是对的。我创建了处理程序:) - 如何访问选定的行数据?很抱歉问你这么多问题! 那是Me!SomeControl.Value
。但听起来你真的需要查找教程才能获得一些坚实的基础。有很多可供浏览。【参考方案2】:
参考子窗体控件窗体主窗体事件处理程序(VBA Sub):
Me!Subform1.Form!ControlName
Me
是对主窗体的自引用,Subform1
是包含子窗体的控件,Form
是对子窗体的引用,ControlName
是对上字段的引用子窗体。 !
是一种在表单的 contrls
集合中引用控件的简短方法。
编写上述内容的更长方法是:Me.contrls("Subform1").Form.Contrls("ControlName")
参考一个主窗体控件窗体一个子窗体事件处理程序(VBA Sub):
Me.Parent!ControlName
Me
是对子窗体的自引用,Parent
是对主窗体的引用,ControlName
是对主窗体上的字段的引用。
写上面的更长的方法是:Me.Parent.Contrls("ControlName")
请在this link 中查看有关该主题的更多信息。
【讨论】:
感谢您的帮助。我需要能够从子表单访问选定的行列。当我尝试 ME!SubformName.RecordSource 时,我得到“对象不支持属性”!此外,使用 ME!SubformName.Value 不起作用,因为 Value 不是属性。 试试ME!SubformName.Form.RecordSource
。 ME!SubformName
是主窗体上的控件,ME!SubformName.Form
是对实际子窗体的引用。
太棒了!这不是其他方式,正是这种方式:Me!Subform1.Form!ControlName
。 Subform1
是你所说的 ChildFormName
,ControlName
是你所说的 ColumnNameInSubForm
;)以上是关于MS-Access 2007 - 如何在点击事件中以编程方式访问子表单列数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ms-access-2016 开发应用程序并使其与以前的版本兼容 (2007)