【发布时间】:2020-07-13 22:08:26
【问题描述】:
我确定我的处理方法不正确,因为数据库必须存在设计问题,但我现在愿意尝试任何事情。
在一个表单上,我有一个主子表单,其中包含不同类型土地的下拉列表和两个按钮(Prev 和 Next)。这个子表单数据源是一个名为 Section22_PMLU 的表
嵌套在这个子表单中的是另一个使用 PMLU_Code 链接到父子表单的子表单。此数据正在更新到表 Section22_Data。
当用户单击父子窗体上的下拉菜单并进行土地选择,然后在子子窗体中选择详细信息(土地特征)时,此数据会正确显示在数据表中。即使用户再次单击下拉菜单(不创建新记录)并添加子记录,这也会反映在数据表中。
问题在于 PMLU 表。如果我最初从嵌套子表单中进行选择并添加数据,则此记录将记录/显示在 PMLU 表中。如果我单击下拉字段并单击“添加新记录”或按 Ctrl+,然后从下拉列表中选择一个新项目 - 它会在表格中正确记录/显示。但是,如果我在没有先创建新记录的情况下进行选择,则此项目将复制先前添加的项目。当我尝试返回(上一个按钮)查看未显示的记录时。但是它仍然在数据表中。
为了纠正这个问题,我必须直接进入 PMLU 表并添加与数据表中的 PMLU 代码匹配的缺失 PMLU 代码。
如果我运行以下查询,我会得到那些缺少的 PMLU。如何使用结果用缺失代码填充 PMLU 表
SELECT Section22_2_Data.PMLU_Code, Section22_2_Data.PMLUType
FROM Section22_2_Data LEFT JOIN Section22_2_PMLU ON Section22_2_Data.[PMLU_Code] = Section22_2_PMLU.[PMLU_Code]
WHERE (((Section22_2_PMLU.PMLU_Code) Is Null))
【问题讨论】:
-
通常我会使用 Unbound 下拉菜单 但是,此下拉菜单后面有 VBA 任何建议: Private Sub PMLU_Code_BeforeUpdate(Cancel As Integer) If NotAddDefault(Me.PMLU_Code.Value, _ IIf(IsNull(Me. PMLU_Code.OldValue), "", Me.PMLU_Code.OldValue), _ "section22_2", Me.NewRecord, "PMLU_Code", "PMLU 的值存在", False) 然后 Cancel = True Me.Undo Call GetToRec Else PMLUHolder = Me .PMLU_Code.Value End If End Sub