【问题标题】:How to click through Access Report using SendKeys如何使用 SendKeys 点击访问报告
【发布时间】:2015-07-30 09:17:53
【问题描述】:

在为我的访问报告创建目录后,我终于到达了代码工作的地步,并创建了一个目录。

作为来自 Microsoft 状态的 instructions,我需要手动单击打印预览直到最后一页,以便创建目录。这行得通。

如何使用 SendKeys 点击访问报告?

到目前为止,这是我的代码......它运行良好,除了 SendKeys 什么都不做!

'Click through report so that TOC code is executed
Dim rptCurReport As Report
Set rptCurReport = Screen.ActiveReport

With rptCurReport
    Application.DoCmd.SelectObject acReport, "rptFundSelectionList"
    .Visible = True 'switch to false once code is ok
    'go through all pages
    For i = 1 To .Pages
        SendKeys "{PGDN}", True
    Next i

    'DoCmd.Close acReport, "rptFundSelectionList"
End With

【问题讨论】:

  • 我不熟悉这种特殊情况的方法,但我建议不要使用SendKeys。可能有多个问题。如果您将代码运行到.Visible = True 并且它什么都不做,那么您的选择没有成功。您的SendKeys 可能在页面加载之前已经执行了多次,在这种情况下它会做一些事情,但不会太多。
  • 由于手册提到为什么你必须滚动浏览,我会尝试通过其他方式选择所有记录
  • 我可以运行代码直到.Visible = True,如果我将它切换为 False 它也可以工作(这也是我知道我有正确焦点的方式)。在我打开报告时如何浏览记录有什么建议吗?我还没有这样的例子。
  • 好的。因此,使用 SendKeys 方法会产生一系列完全不同的问题,正如我在此处记录的那样:stackoverflow.com/questions/15932743/…
  • 我正在尝试寻找一种不同的方式来逐步完成报告...所以我认为您的方法是正确的 user3819867

标签: ms-access vba ms-access-2010


【解决方案1】:

我终于自己解决了这个问题。这是代码。愿它帮助其他一些可怜的灵魂!

'Open report containing code to create TOC with list of ISINs from above
DoCmd.OpenReport "rptFundSelectionList", acViewPreview, , strWhere
Set dict = Nothing

'Click through report so that TOC code is executed
Dim rptCurReport As Report
Set rptCurReport = Screen.ActiveReport

With rptCurReport
    Application.DoCmd.SelectObject acReport, .Name
    .Visible = True 'switch to false once code is ok
    'go through all pages
    SendKeys "{End}", True
    DoEvents
    Application.DoCmd.SelectObject acReport, .Name
    DoCmd.Close acReport, .Name, acSaveNo
End With

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多