我确信我接近这个错误,因为数据库必须存在设计问题,但我现在愿意尝试任何事情。
在表格上我有一个主子表格,其中包含不同类型的土地下拉和两个按钮(上一页和下一页)。该子表单数据源是一个名为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))
答案 0 :(得分:0)
我使用以下代码刷新修复问题的表
Private Sub btnRefresh_Click()
Dim strSQL As String
strSQL = "INSERT INTO Section22_2_PMLU ( PMLU_Code )
SELECT DISTINCT Section22_2_Data.PMLU_Code
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));"
CurrentDb().Execute strSQL, dbFailOnError
' Next 3 only to ensure the append is commited to the table '
' before requerying '
DoEvents
DBEngine.Idle dbRefreshCache
DoEvents
Me.Requery
End Sub