【问题标题】:Blank parent form if subform has no data如果子表单没有数据,则为空白父表单
【发布时间】:2016-02-10 22:24:15
【问题描述】:

我有我的常规表格,并附有一个连续表格。在子表单没有数据之前一切正常。 这是带有数据的子表单
image1

如果子表单中没有数据,表单会变成这样。
图 2

我在主窗体的当前事件中使用以下代码:

Function RefreshCOunt()
If Me.frmVerifyEquipmentSub.Form.Recordset.RecordCount = 0 Then

    Me.frmVerifyEquipmentSub.Visible = False
    Me.txtTotal = 0
    Me.Refresh

Else
    Me.frmVerifyEquipmentSub.Visible = True
    Me.frmVerifyEquipmentSub.Form.Requery
    Forms![test3].txtTotal = Me.frmVerifyEquipmentSub.Form.txtSum
    Me.Refresh
    Forms![test3].Refresh

End If
End Function

Private Sub Form_Current()
Call RefreshCOunt
End Sub

Private Sub Form_GotFocus()
Call RefreshCOunt
End Sub

这是我的子表单上的代码,当我的用户单击保存按钮时,此函数将运行。

Function RefreshCOunt()
If Me.txtCount = 0 Then
    Forms![test3].SetFocus
Else
    Me.Requery
    Forms![test3].txtTotal = Me.txtSum
    Me.Refresh
    Forms![test3].Refresh

End If
End Function

我在子表单后面有一个文本,上面写着“没有可用的数据要显示”

这种情况下的2个问题是:

  1. 如图 2 所示的空表单视图(已解决,因为我已将主表单的记录源链接到也用于子表单的表)

  2. 一旦用户验证了所有设备,就隐藏子表单。 - 目前我的代码仅在第一次加载表单时有效。 -一旦用户验证了所有设备,子表单就不会隐藏

我知道如何使用 HAsData 函数在报表中执行此操作,但我不确定如何在 Forms 中执行此操作。

【问题讨论】:

  • 表单是否具有正确的子/父关系?如果这样做,父表单应该与子表单是否返回数据无关,因此无论如何都应该填充这些字段。
  • 我刚刚意识到我的主表单链接到与导致问题的子表单相同的记录源
  • 每次都会这样。

标签: ms-access vba


【解决方案1】:

听起来您对主表单的查询与子表单的表(或与此表的查询)有一个内部连接。

删除此联接或将其更改为外部联接。

【讨论】:

  • 哦,是的!我没有意识到我的主表单将记录源链接到与子表单相同的表。现在我从我的主窗体中删除了记录源。它有效
  • 实际上还有第二部分是在没有数据时隐藏子表单。目前,当用户验证所有记录时,它不会隐藏子表单。我会编辑我的帖子
  • 我设法通过将焦点设置回主窗体并运行刷新计数功能来解决此问题
猜你喜欢
  • 2019-10-24
  • 2014-04-24
  • 2020-06-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-02
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
相关资源
最近更新 更多