MS Access 子表单不显示记录且不导航
MS Access subform not displaying records and not navigating
我在 SLD table 和 ORDER table 之间有一对一的关系。 SLD table 是主窗体,ORDER table 是子窗体。主窗体 table 的记录多于子窗体 table。设置了主链接和子链接。我已经反编译并做了压缩和修复。我怀疑我的应用程序出现故障。在那种情况下,这不是第一次(我之前已经修复过)。这次似乎没有任何效果。我也导入了一个新的数据库。
在表单加载时,表单和字段都工作正常。我使用 ['NEXT'] 按钮继续下一条记录,并到达子表单记录的末尾,因此有空白字段。我尝试导航到以前的记录(也使用按钮),但子表单没有 move/navigate。子表单没有任何反应。
它似乎变得更糟了,因为首先它在导航,但它不遵守代码说明当文本框被填充时禁用复选框,反之亦然。
从它的声音来看,问题出在您的“下一步”按钮中,而不是子表单问题。正如您在评论中所述,默认导航允许表单按预期工作。
这个逻辑在你的上一个按钮的 OnClick 事件中出现了吗?同样为了安全起见,我会在下面的代码中添加 OR 语句,以额外确保它捕获空值或空白
If (IsNull(Forms!Order!OrderSubform.Form!txtDate_Of_Order.Value)) OR Forms!Order!OrderSubform.Form!txtDate_Of_Order.Value <> "" Then
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = False
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = True
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Value = True
Else
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = True
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = False
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Value = False
End If
我发现 If 语句属于 Form_Current 事件。使用此代码后我不再遇到问题:
Private Sub Form_Current()
If (IsNull(Forms!Order!OrderSubform.Form!txtOrder_Number.Value) Or _
Forms!Order!OrderSubform.Form!txtOrder_Number.Value = "") Then
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = True
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = True
ElseIf (IsNull(Forms!Order!OrderSubform.Form!txtDate_Of_Order.Value) Or _
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Value = "") Then
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = False
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = True
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Value = True
Else
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = True
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = False
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Value = False
End If
End Sub
我在 SLD table 和 ORDER table 之间有一对一的关系。 SLD table 是主窗体,ORDER table 是子窗体。主窗体 table 的记录多于子窗体 table。设置了主链接和子链接。我已经反编译并做了压缩和修复。我怀疑我的应用程序出现故障。在那种情况下,这不是第一次(我之前已经修复过)。这次似乎没有任何效果。我也导入了一个新的数据库。
在表单加载时,表单和字段都工作正常。我使用 ['NEXT'] 按钮继续下一条记录,并到达子表单记录的末尾,因此有空白字段。我尝试导航到以前的记录(也使用按钮),但子表单没有 move/navigate。子表单没有任何反应。
它似乎变得更糟了,因为首先它在导航,但它不遵守代码说明当文本框被填充时禁用复选框,反之亦然。
从它的声音来看,问题出在您的“下一步”按钮中,而不是子表单问题。正如您在评论中所述,默认导航允许表单按预期工作。
这个逻辑在你的上一个按钮的 OnClick 事件中出现了吗?同样为了安全起见,我会在下面的代码中添加 OR 语句,以额外确保它捕获空值或空白
If (IsNull(Forms!Order!OrderSubform.Form!txtDate_Of_Order.Value)) OR Forms!Order!OrderSubform.Form!txtDate_Of_Order.Value <> "" Then
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = False
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = True
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Value = True
Else
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = True
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = False
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Value = False
End If
我发现 If 语句属于 Form_Current 事件。使用此代码后我不再遇到问题:
Private Sub Form_Current()
If (IsNull(Forms!Order!OrderSubform.Form!txtOrder_Number.Value) Or _
Forms!Order!OrderSubform.Form!txtOrder_Number.Value = "") Then
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = True
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = True
ElseIf (IsNull(Forms!Order!OrderSubform.Form!txtDate_Of_Order.Value) Or _
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Value = "") Then
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = False
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = True
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Value = True
Else
Forms!Order!OrderSubform.Form!txtDate_Of_Order.Enabled = True
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Enabled = False
Forms!Order!OrderSubform.Form!chkbxOrder_Cancelled.Value = False
End If
End Sub