如何使用 SendKeys 点击访问报告
Posted
技术标签:
【中文标题】如何使用 SendKeys 点击访问报告【英文标题】:How to click through Access Report using SendKeys 【发布时间】:2015-07-30 09:17:53 【问题描述】:在为我的访问报告创建目录后,我终于到达了代码工作的地步,并创建了一个目录。
作为来自 Microsoft 状态的 instructions,我需要手动单击打印预览直到最后一页,以便创建目录。这行得通。
?
到目前为止,这是我的代码......它运行良好,除了 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 方法会产生一系列完全不同的问题,正如我在此处记录的那样:***.com/questions/15932743/…
我正在尝试寻找一种不同的方式来逐步完成报告...所以我认为您的方法是正确的 user3819867
【参考方案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
【讨论】:
以上是关于如何使用 SendKeys 点击访问报告的主要内容,如果未能解决你的问题,请参考以下文章
Selenium 网格执行 - 如何使用 sendkeys 将多个文件一起(一次)上传到网页
pywinauto:如何在不接受 SendKeys 的 ListView 上发送 Keys?