【发布时间】:2016-07-29 21:19:18
【问题描述】:
我有一个包含两个子表单的访问表单。主窗体具有三个下拉字段,允许用户选择在两个链接的子窗体中显示的数据。下拉字段都是未绑定的,因为它们在主表单的数据源中被引用。
主窗体数据源的SQL如下:
SELECT tbl_RptPeriod.RptPrdID, tbl_BusUnits.UnitID, tbl_Categories.CategoryID, tbl_Categories.CategoryTitle, tbl_Categories.CategoryGroup, tbl_Categories.Inactive, tbl_Categories.RptPrdID, tbl_Categories.UnitID
FROM tbl_RptPeriod INNER JOIN (tbl_BusUnits INNER JOIN tbl_Categories ON tbl_BusUnits.UnitID = tbl_Categories.UnitID) ON tbl_RptPeriod.RptPrdID = tbl_Categories.RptPrdID
WHERE (((tbl_RptPeriod.RptPrdID)=[Forms]![Compliance]![cmbReportPeriod]) AND ((tbl_BusUnits.UnitID)=[Forms]![Compliance]![cmbBusinessUnit]) AND ((tbl_Categories.CategoryID)=[Forms]![Compliance]![CategoryTitle]));
这非常适合查找记录。但是,我希望用户能够将新记录添加到他们正在查找的记录中。这不正常。
我可以添加记录,但是我用来查找数据的表单元素,特别是 RptPrdID、UnitID 和 CategoryID 没有填充到表中,因此新记录是不关联的如果您在关闭或移动到另一条记录后再次在主窗体中查找它们,请不要显示。
这是有道理的,因为我在 SQL 的“WHERE”条件中使用的表单元素是未绑定的,但当然,如果我添加一条新记录,我希望它能够正确匹配。如果用户再次查找相同的条件,他必须能够找到他添加的记录。
问题:
如何在子表单中输入新记录以填写 RptPrdID、UnitID 和 CategoryID?
更新
SELECT tbl_Activity.CategoryID AS CategoryID_X, tbl_Activity.RptPrdID AS RptPrdID_X, tbl_Activity.UnitID AS UnitID_X, tbl_Categories.SortKey, tbl_Categories.CategoryTitle, tbl_Categories.CategoryGroup, tbl_Categories.Inactive, tbl_Categories.Inactive, tbl_BusUnits.Unit_Name, tbl_RptPeriod.Rep_Month_Nr, tbl_RptPeriod.Rep_Month_Name, tbl_RptPeriod.Rep_Year
FROM tbl_RptPeriod INNER JOIN (tbl_Categories INNER JOIN (tbl_BusUnits INNER JOIN tbl_Activity ON tbl_BusUnits.UnitID = tbl_Activity.UnitID) ON tbl_Categories.CategoryID = tbl_Activity.CategoryID) ON tbl_RptPeriod.RptPrdID = tbl_Activity.RptPrdID
WHERE (((tbl_Activity.CategoryID)=[Forms]![Compliance_EXPERIMENT]![cmbCategoryTitle]) AND ((tbl_Activity.RptPrdID)=[Forms]![Compliance_EXPERIMENT]![cmbReportPeriod]) AND ((tbl_Activity.UnitID)=[Forms]![Compliance_EXPERIMENT]![cmbBusinessUnit]))
ORDER BY tbl_Categories.SortKey;
我不得不稍微更改查询,但关键字段仍然是相同的,尽管它们现在位于不同的表上。
Private Sub Form_BeforeInsert(Cancel As Integer)
Me.RptPrdID_X = Me.cmbReportPeriod
Me.UnitID_X = Me.cmbBusinessUnit
Me.CategoryID_X = Me.cmbCategoryTitle
End Sub
【问题讨论】:
标签: sql ms-access ms-access-2010