【问题标题】:Removing prompt for parameter on subform when added to navigation form in MS Access在 MS Access 中添加到导航表单时删除子表单上的参数提示
【发布时间】:2019-06-19 14:32:20
【问题描述】:

我正在创建一个带有接口的数据库来跟踪学校的学生数据。

我遇到的特定问题是修改学生数据的表单,特别是显示学生已分配到的班级的子表单。表单(带子表单)如下图(红色箭头表示子表单):

子表单从使用主表单参数(MIS_ID 字段)的查询中获取数据。查询如下:

SELECT classes.classCode, subjects.subjectCode
FROM (subjects INNER JOIN classes ON subjects.[subjectID] = classes.[subjectID]) 
INNER JOIN studentClasses ON classes.[classID] = studentClasses.[classID]
WHERE (((studentClasses.MIS_ID)=[Forms]![modifyStudent]![MIS_ID])); 

这一切都很好,直到我将此表单添加到导航表单选项卡。完成此操作后,当我尝试打开导航表单时,会收到以下提示:

当我刚刚打开主修改学生表单时,不会出现此提示。另外,奇怪的是,如果我先打开 Modify Student 表单,然后打开 Navigation 表单 - 提示不会出现。

如何防止 Access 显示此提示。我的 MS 访问技能并不出色,所以简单的解释会有所帮助。

谢谢!

【问题讨论】:

  • 查询是否总是变化?如果不是,为什么不将其作为没有 where 子句的标准查询,通过 LinkMasterField、LinkChildField 绑定主表单和子表单..

标签: ms-access ms-access-2010


【解决方案1】:

只是为了回答您的问题“为什么这在导航表单中不起作用” 导航控件有一个“navigationsubform”控件,您的表单将在其中加载。这意味着您的主表单 (modifyStudent) 已加载到“NavigationSubform”表单控件中,因此无法访问原始表单名称 (ModifyStudent)。

要从您的子表单访问父值,您可以使用

 me.parent!field.value

或

NavigationForm.NavigationSubform.field.value

或者只需使用 linkMasterFiled 和 linkChildField 绑定主窗体和子窗体。

或 如果你真的想构造 SQL: 在 sub-form_onOpen 事件中执行并将其分配给 me.recordSource 这样就可以访问me.Parent.Field.value

【讨论】:

  • 谢谢!对于第一个响应 - 绑定主表单和子表单 - 修复了我的具体问题。您的第二个响应,将 SQL 放入 form_open 事件中,帮助我解决了后续问题。
猜你喜欢
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 2017-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 1970-01-01
相关资源
最近更新 更多