【问题标题】:Access - Report opens and then is hidden when opening form is closed访问 - 报表打开,然后在打开表单关闭时隐藏
【发布时间】:2011-04-27 15:17:57
【问题描述】:

我正在使用 Access 2003,并且我有一个表单,用于收集报告的一些过滤条件。输入条件后,用户单击“确定”按钮并使用以下 VBA 启动报告。

DoCmd.OpenReport "ReportName", acViewPreview

报告打开后,我发出以下命令来关闭收集过滤条件的表单...

Me.Close

表单关闭,但是我想在前台保持打开状态的报表被隐藏了。知道为什么会这样吗?

【问题讨论】:

  • 尝试将Me.Close 替换为DoCmd.Close acForm, Me.Name。在我每天使用的任何版本的 Access 中,我都不认为前者是有效的 VBA 命令。它在 A2003 中肯定无效,除非您在表单中使用该名称创建了自定义子例程/函数。
  • 您是从表单还是从报告中运行它?另外,我是什么。关闭?那应该行不通。
  • @David-W-Fenton - 我尝试了你的建议,尽管输入表单正确关闭,但报告是在主总机表单“后面”发送的。我想将报告保留在前台,直到用户关闭它。谢谢你的建议。
  • 总机窗体是否将弹出属性设置为 true?如果没有,您可以尝试 DoCmd.SelectObject 为报告提供保证焦点。

标签: ms-access vba reporting


【解决方案1】:

当表格和报告在所需时间出现在前面时,所有其他方法都失败了,您可以使用 DoCmd.SelectObject 明确地做到这一点:

  DoCmd.OpenReport "rptMyReport", acViewPreview
  DoCmd.SelectObject acReport, "rptMyReport"
  DoCmd.Close acForm, Me.Name

如果这不起作用,则涉及其他问题,例如使用 acDialog 开关打开的表单或报表,或者将 Modal 或 Popup 属性设置为 True 的表单/报表。

或者,可能有一个计时器在某个地方运行,导致某事发生并引起关注。

【讨论】:

    【解决方案2】:

    尝试将 Report 属性 Modal 设置为 Yes(在 Other Properties 中)。

    【讨论】:

      【解决方案3】:

      关闭表单,然后打开报表是否有效?我猜这与焦点在对象之间来回移动有关。

      编辑

      您的代码应如下所示:

      Private Sub Command0_Click()
      
          'your code here
      
          DoCmd.Close acForm, Me.Name
      
          DoCmd.OpenReport "Report1", acViewPreview
      
      End Sub
      

      此外,没有其他人指出的本机关闭功能。

      【讨论】:

      • 也许我不明白你的意思。我怎么能关闭表格然后打开报告?输入表单是调用打开报表的地方。
      • 那里有一些逻辑问题,我不想编写以这种方式工作的代码,即在代码停止运行之前关闭代码正在运行的表单。我不知道 Access 在这种情况下做了什么,但我宁愿不依赖它做对。
      【解决方案4】:

      我为此苦苦挣扎了几天。看来您需要关闭当前窗口,然后在打印预览中打开报表。

      我在报表中嵌入了一个数据透视图按钮。 (Access2010) 当我尝试仅打印报告时 - 数据透视图上的任何过滤都没有转移到“DoCmd.Printout”命令中。

      有人建议我使用打开打印预览窗口,但它从未获得焦点。我不得不点击屏幕外然后回到打印预览窗口。下面的代码似乎可以纠正这个问题。

      Private Sub Command1_Click()
      DoCmd.Save
      DoCmd.Close
      DoCmd.OpenReport "R-MyReport", acViewPreview
      

      【讨论】:

      • 在您发布答案之前可能需要花一点时间查看预览 ;-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多