MS Access:如何将OpenArgs传递给子表单?

时间:2011-06-23 16:01:31

标签: forms ms-access subform openargs

编辑:没关系我刚刚创建了一个新表单,它看起来更糟,但它更容易

我有一种订单形式,上面有按钮和子表格。 表单具有OpenArgs属性中给出的客户名称 我从主表单打开它。 子表单显示用户(查看页面的客户)所执行的订单。 当我提出子表单中的客户名称等于订单表单中包含客户名称的文本框的条件时,访问

例如,客户名称是Matthew Jones(Me.OpenArgs =“Matthew Jones”) http://imageshack.us/photo/my-images/832/accesshelp.jpg/

谢谢,对不起,如果我有语法错误

3 个答案:

答案 0 :(得分:2)

我不确定我是否明白你的实际问题是什么 这句话看起来就是你在没有完成句子的情况下发布了这个问题:

  

当我提出条件时   子表单中的客户名称等于   包含客户的文本框   订单中的名称,访问

如果您的问题是如何使其工作,解决方案是在子窗体中编写查询,如下所示:

select *
from orders
where customer=[Forms]![OrderForm]![TextboxWithCustomerName]

答案 1 :(得分:1)

您不需要通过OpenArgs将信息传递给子表单,因为子表单知道其父表单的内容。您可以使用Me.Parent访问子窗体父窗体中的任何数据。因此,在子窗体中,如果您希望在子窗体中使用父窗体中显示的CustomerName,则使用:

  Me.Parent!CustomerName

请记住,如果CustomerName是父表单的Recordsource中的字段,则需要确保只有在父表单上将其用作控件的ControlSource时才能可靠地访问它。

答案 2 :(得分:0)

您可以使用子窗体控件的LinkChildFields,LinkMasterFields属性

  • 在LinkMasterFields中,您必须写入 控件名称包含,在此 以客户的名字命名。
  • 在LinkChildFields中你必须写 订单列表的字段名称 包含客户的名字。

子窗体控件在两个窗体(主窗体和子窗体)之间进行连接,并根据主窗体的内容过滤子窗体。

请注意,“子窗体控件”是子窗体的容器。子表单是由特殊控件加载的普通表单:子表单控件。