gpt4 book ai didi

ms-access - 错误处理程序在 Function VBA Access 2013 中不起作用

转载 作者:行者123 更新时间:2023-12-04 20:30:50 25 4
gpt4 key购买 nike

所以我有一个功能,允许用户通过电子邮件发送 Assets 的更新图片,除非用户在发送前关闭电子邮件,否则效果很好。我设置了一个错误处理程序,但它似乎没有捕获错误。这是我的函数代码:

Function Email()
Globals.Logging "Opened Email for updating picture"
On Error GoTo ErrorHandler:
Dim strTagNumber As String
strTagNumber = Me.txtTagNumber.Value

Dim varName As Variant
Dim varCC As Variant
Dim varSubject As Variant
Dim varBody As Variant

varName = "myAnon@email.test"
varCC = ""
varSubject = "Updated Picture for Asset Number " & strTagNumber
varBody = "Sent by MS Access"

DoCmd.SendObject , , , varName, varCC, , varSubject, varBody, True, False
Globals.Logging "Sent Email"

Cleanup:
varName = Nothing
varCC = Nothing
varSubject = Nothing
varBody = Nothing
Exit Function

ErrorHandler:
Select Case Err.Number
Case 2501
MsgBox "Email message was Cancelled."
Globals.Logging "Canceled Email"
Case Else
MsgBox Err.Number & ": " & Err.Description
Globals.Logging "Email Error " & Err.Number & ": " & Err.Description
End Select
Resume Cleanup
End Function

如有任何帮助,我们将不胜感激。提前谢谢你。

最佳答案

online documentation 中所述, DoCmd.发送对象

... uses the Mail Applications Programming Interface (MAPI)

换句话说,Access(或 Excel)实际上并没有自己的电子邮件功能。它取决于正确安装和配置的 MAPI 电子邮件客户端。除非您有意在 Windows 上安装和设置另一个默认电子邮件客户端,否则如果您将它与 MS Office 一起安装,则默认设置可能是 Outlook。 Windows 电子邮件客户端随 Windows 的许多版本而改变,但默认设置也可能是一个简单的 Windows 电子邮件客户端。

MAPI 客户端很可能会显示错误消息,然后在将程序流返回到发起调用的 VBA 模块之前实际上并没有抛出/引发错误。

我记得在某个时候意识到 Outlook 设置规定了 MAPI 和/或 COM 自动化接口(interface)的某些行为,无论它是否显示错误。在验证之前,我通常不会在 Stack Overflow 上抛出这些空洞的信息,但从我看到的围绕这个问题的讨论来看,没有人真正解决 SendObjects 的这个方面。

除了像其他人建议的那样使用 Automation 通过 Outlook 发送电子邮件之外,您还可以检查 Windows 默认电子邮件客户端设置。也许测试另一个电子邮件客户端,看看是否会得到不同的结果。

关于ms-access - 错误处理程序在 Function VBA Access 2013 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45511332/

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