【发布时间】:2014-05-28 16:55:42
【问题描述】:
我在 Access 2007 中有一个在 Outlook 打开时打开的表单,以下代码在 Form_Load() 事件中:
Dim objOL As New Outlook.Application
Dim objMail As MailItem
Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)
msg = "This is a test"
bdy = "<p style='font-family: Calibri; font-size:11pt'>This is just a test</p>"
rec = "me@myemail.com"
With objMail
.To = rec
.Subject = msg
.HTMLBody = bdy
.Display
.Send
End With
Set objMail = Nothing
Set objOL = Nothing
Application.Quit
代码有效,这意味着发送了一封电子邮件并关闭了 Access。 MSACCESS.EXE 进程从 Windows 任务管理器 (Windows 7) 中消失,但 OUTLOOK.EXE 进程保持打开状态,并且 CPU 保持在 25%,直到内存使用量达到约 500MB。此时,进程的 CPU 使用率降至 0%,但不会退出。我让它坐了一夜,这个过程从未退出过。
经过一些测试,问题似乎是我从 Windows 任务计划程序启动的批处理文件启动 Access。批处理文件包括:
`Start "C:\Program Files (x86)\Microsoft Office\Office12\MSAccess.exe" c:\myDb.accdb`
如果我只是双击 .bat 文件,或手动打开 .accdb 文件,OUTLOOK.EXE 将与 MSACCESS.EXE 一起关闭
我在这里缺少什么?我遇到的大多数示例代码基本上看起来像我的代码。
更新
每个用户tbur,解决方案是“在任务计划程序中,确保在'常规'选项卡下,您已选中'仅在用户登录时运行'和'以最高权限运行'都选中。”。
并不是我真正想要的解决方案,但它确实解决了问题。现在的问题是运行此代码的 Windows 7 PC 将在 Windows 更新后重新启动,并且大部分任务计划在半夜运行。
【问题讨论】: