【问题标题】:MSAccess Binding a Pulldown combobox to a sub-formMSAccess 将下拉组合框绑定到子窗体
【发布时间】:2021-09-08 11:25:32
【问题描述】:

我有一个多列下拉组合框 (cmb_users),它在表单 (frm_myusers) 上列出用户名,数据直接来自名为“dbo.my_users”的表,主键为“pc_user_id”,它是下拉列表中的第一列。

然后,我将一个多表单子表单嵌入到父表单 (frm_myusers) 中,其中包含每个用户的一个或多个角色。数据源直接来自名为“dbo.my_users_roles”的表,其主键是 pc_user_id。 dbo.my_users 和 dbo.my_users_roles 的关系是一对多。

我遇到的挑战是当我尝试将组合框绑定到子表单时,我得到“无法绑定到未绑定的表单错误”

然后我尝试将组合框值传递给幕后的查询 (qry_my_users_roles) 以驱动子表单。查询的条件在 pc_user_id 上为 =[Forms]![frm_users]!cmb_users.Column(0),我收到以下错误。不知道从这里去哪里。

最终有没有一种方法可以简单地将下拉菜单绑定到子表单,而无需跳过将变量传递给查询和刷新的循环?将字段映射到查询条件可能会非常麻烦,拼写或语法也不是绝对完美的:(

提前致谢。

【问题讨论】:

  • 通常的方法是使用子表单容器主/子链接属性来链接 PK 和 FK 字段,而不是控件。如果组合框的目的是输入过滤条件,那么它应该是 UNBOUND 并使用一些代码将过滤器应用于主窗体或转到记录

标签: forms ms-access data-binding subquery ms-access-2010


【解决方案1】:

由于组合框未绑定,将其添加到主字段:

sci_cnt_id;NameOfCombobox

并同时调整子字段:

sci_cnt_id;sci_own_id

如果你想显示所有记录,你必须保持字段计数,所以使用:

sci_cnt_id;sci_cnt_id

【讨论】:

  • sci_cnt_id 是内部 sql uid.. 我要绑定的是 sc_owner_id.. 也就是说,我为 master 尝试了 sc_owner_id;cmb_users,孩子为 sc_owner_id,它返回该表达式拼写错误错误。 Jun7 提出了一个观点……因为下拉既是下拉又是过滤,我将不得不向它抛出一些代码。太糟糕的下拉菜单不像典型的表单对象那样工作,否则它会节省代码。我仍然会感谢您的建议 - 它对不同的场景很有用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-27
  • 2015-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多