gpt4 book ai didi

excel - 当用户在 MS Access VBA 中的参数请求输入框中点击取消时如何获取返回值?

转载 作者:行者123 更新时间:2023-12-04 21:59:34 24 4
gpt4 key购买 nike

我的程序将数据库中的所有对象导出到 excel 文件。这很好用。其中一些查询有参数请求,会显示一个输入框(不是我的代码的一部分)。当我输入值时它工作正常,但是当我点击取消时,我希望能够跳过该查询而不导出它,但我得到了错误:

Run-time error '3021':

Reserved Error


当我按下 Debug 时,它会将我带到我的代码中的这一行:
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, obj.Name, path, True, obj.Name
我明白为什么,因为那是导出到 excel 行。
我见过与此类似的其他问题,但这是用户创建的输入框。我想知道是否有类似的方法,以某种方式从这个参数请求输入框中获取返回值并使用该值告诉我的程序做某事。
此外,如果我为这些框输入值,它会转到我的代码的下一部分,将 30 页的报告导出为 word。出现一个框,计算页数,上面写着

Now outputting "examplefile" to "example path"


有一个按钮是“取消”。如果我按下取消,我会收到错误消息:

Run-time error '2501;:

The OutputTo action was canceled


并将我带到我的代码中的这一行:
DoCmd.OutputTo acOutputReport, obj.Name, acFormatRTF, pathLabel4.Caption & "\" & obj.Name & " " & Format(Date, "yyyy-mm-dd") & ".rtf"
我再次明白为什么,因为这是我将报告导出到 word 文档的地方,但我如何检查用户是否点击取消?

最佳答案

这可能不是最好的答案,但错误捕获可以让您选择跳过查询和导出:

On Error GoTo PROC_ERR
...'Your code
PROC_ERR:
IF Err.Number = 2501
Exit Sub 'assuming the rest of the code should be aborted.
End If
IF Err.Number = 3021
Exit Sub
End If
End Sub

根据您对许多参数的评论以及您最初的问题,我想到了另一种可能的解决方案。

有一种方法可以构建一个弹出的自定义参数对话框,而不是默认的。这也应该让您在执行代码时更加灵活,因为您可以创建一个完全按照您想要的方式工作的取消按钮。这更像是“构建一个新形式”,我知道你不想这样做,但系统地可以像现在一样工作。有关演练,请参阅 this关联。

关于excel - 当用户在 MS Access VBA 中的参数请求输入框中点击取消时如何获取返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37681270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com