访问-使用带有过滤器的单独表单来进行多对多关系挑战

时间:2018-08-07 19:40:59

标签: ms-access listbox relationship subform

有关有效连接记录的问题。

  • 表1:tbl_Apartment
  • 表2:tbl_Inspection
  • 表1:frm_Inspection(显示一项特定检查的详细信息)
  • 表格2:frm_Add_Apartments_To_Inspection

两个表之间存在多对多关系,其中一间公寓可以拥有多个检查记录,而一个检查可以一次覆盖多个公寓。

每个表都有数百条记录,这使得传统的方法(例如,层叠的组合框)混乱且效率低下。

Microsoft Access模板“呼叫跟踪器” 通过使用以“呼叫详细信息”形式显示相关呼叫的列表框并从单独的“添加相关”表单中填充该列表框,是实现此目的的一种好方法来电”,具有过滤功能。

我试图复制这种方法但没有成功。我还尝试了各种形式的子表单,但均未成功。感谢任何想法或解决方案的链接!

理想的解决方案是:

  • 当我打开frm_Inspection时,我想查看该特定检查中包括的所有公寓(例如,在子窗体或列表框中)。这很容易。
  • 如果要在检查中添加更多公寓,我想单击“添加公寓”按钮,这会打开一个单独的对话框,名为frm_Add_Apartments_To_Inspection。
  • frm_Add_Apartments_To_Inspection应该显示所有公寓(也包括当前未连接到检查的公寓)并具有过滤功能,例如按公寓类型,地理位置等进行过滤。
  • 过滤不是问题。问题是如何有效地过滤并将一条或多条公寓记录与检查相关联(例如,将这些记录“发送”回frm_Inspection上的子窗体或列表框)。
  • 在frm_Add_Apartments_To_Inspection上选择公寓并将这些记录发送到frm_Inspection上的子窗体或列表框后,我希望能够重复此过程以添加更多公寓或删除已连接的公寓。因此,下次我单击frm_Inspection上的“添加公寓”时,frm_Add_Apartments_To_Inspection将打开并显示所有公寓。在该记录列表上,我们需要清楚地看到哪些公寓已经连接到检查,哪些没有连接(例如,复选框或允许“多选”)。如果我们取消选中一些已连接的记录并关闭frm_Add_Apartments_To_Inspection,则frm_Inspection上显示已连接的公寓的子窗体或列表框需要更新,仅显示已连接的公寓(即不再显示我们刚刚未选中/未连接的先前已连接的记录,例如,更新子窗体或列表框使用重新查询)。

我知道这是很多文本,可能没有必要详细解释,但是我感谢任何想法或解决方案的链接。我希望在其他几个数据库上使用这种方法。找到解决方案后将更新帖子! 谢谢!

0 个答案:

没有答案