根据数据表内容使选项卡可见
Posted
技术标签:
【中文标题】根据数据表内容使选项卡可见【英文标题】:Make tab visible based on datasheet contents 【发布时间】:2018-05-03 01:52:35 【问题描述】:我有一个带有 Tab 控件的表单。每个选项卡中都有一个子表单链接到主表单上的主字段。我想将选项卡设置为仅在其包含的数据表具有值时才可见。
例如,主表单主字段是一个框号,如果该框包含错误,它将填充选项卡控件中的三个子表单之一。
我希望它仅在列出相应错误时才可见,而不是检查每个选项卡。
【问题讨论】:
欢迎来到 SO!如果您 edit 您的帖子描述了您在哪里以及如何对您的实施感到困惑,我们可能会为您提供帮助。向我们提供您的规格而不向我们展示您如何尝试解决该问题可能会让人觉得要求程序员......好吧,基本上是免费工作/为你做你的工作/家庭作业......这对你没有帮助其他读者作为关于其他人可能遇到的特定障碍的问题。你拿tour了吗? minimal reproducible example 也是一本好书,help center 拥有您想知道的关于在该网站上提出一个广受欢迎的问题的所有信息。 =) 我想更有效地描述我在哪里以及如何被难住了,但是,在这种情况下,我没有任何更具体的信息。我不是要求任何人“免费工作”。我合理地认为这是一个知识共享论坛。也许我弄错了。我对使用任何类型的代码都非常陌生。我已经进行了一些研究以试图找到答案,但是,如果不知道要搜索的适当术语和措辞,这变得非常困难。同样,如果您觉得我要求任何人“免费工作”,而不是通过分享一些知识来提供帮助,我再次道歉。 FWIW 我非常谨慎地发表该评论,并且从未说过我有这种感觉或指责你问过这个问题。我所说的是,在这个网站上发布规格时没有问题或尝试失败,可能会遇到。如果您进行了一些研究,请告诉我们。如果您有任何不起作用的代码,请向我们展示您的尝试。 只是想帮助您帮助我们在这里为您提供帮助。有人在这里提出类似教程的答案并非不可能,只是知道社区更有可能认为它过于宽泛不适合该网站,如How to Ask 和help center. 我想将选项卡设置为仅在其包含的数据表具有值时才可见 - 因此您需要确定该选项卡的数据表是否 (或其基础数据源?)具有价值。仅第一步就可以产生一堆specific questions,这将完全在范围内。接下来,您需要有条件地隐藏选项卡;再次说明,如何做到这一点本身就是一个很好的研究主题 - this post 看起来可能会在该研究中出现......并解决您的一半问题。 要做到这一点,您将无法在 Access 本身上执行此操作。您将需要 VBA 创建代码来检查每个选项卡上的每个子窗体,然后在没有数据时隐藏。如果你对 VBA 编码一无所知,恐怕你得找人来做。如果您知道如何在 VBA 中编写代码,那么之前发表的评论就是一个好的开始。但仅使用 Access,您将无法为所欲为。 【参考方案1】:虽然问题有点宽泛,但可以通过每页一行来实现:
Private Sub Form_Current()
Me![NameOfSomePage].Visible = Not Me![NameOfSubformOnThatPage].Form.RecordSet.RecordCount = 0
End Sub
解释:
Form_Current
: 每当主窗体上的记录发生变化时发生的事件
Me![NameOfSomePage].Visible =
: 设置某个页面的可见性等于
Not
:真为假,假为真
Me![NameOfSubformOnThatPage].Form.Recordset.RecordCount = 0
: 检查某个子表单的底层记录集是否包含0条记录
注意,如果显示0页,整个tab控件也会消失。
【讨论】:
以上是关于根据数据表内容使选项卡可见的主要内容,如果未能解决你的问题,请参考以下文章
Crystal Reports 使文本框可见 true false