0

このVBAコードを使用してAccessデータベースで電子メールを送信し、MicrosoftOutlook14.0オブジェクトライブラリも参照しました。

コードを手動で実行すると、すべてが完全に機能します。ただし、Windowsタスクスケジュールからマクロを実行すると、アクセスが失敗します。このメッセージが表示されます:

ランタイムエラー「429」ActiveXコンポーネントはオブジェクトを作成できません

タスクスケジューラの[アクション]タブで、次のようにマクロを参照しています: "C:\ Program Files \ Microsoft Office \ Office14 \ MSACCESS.EXE" "C:\ mydata \ Database \ mydatabase.accdb" / X RunMyMacro

以下のスクリーンショットに示されているように、エラーはこのコードを指しているようです。

コード:

Dim strEmailBody As String

Sub emailNotification()
Dim oFolder As Outlook.MAPIFolder
Dim oItem As Outlook.MailItem
Dim oOutlook As New Outlook.Application

Dim MoOutlook As Outlook.NameSpace
Set MoOutlook = oOutlook.GetNamespace("MAPI")
Set oFolder = MoOutlook.GetDefaultFolder(olFolderOutbox)
Set oItem = oFolder.Items.Add(olMailItem)
With oItem
.Recipients.Add ("tome@me.com")
.Subject = "my notification"
.Body = strEmailBody
.Importance = olImportanceHigh
.Send
End With
Set oFolder = Nothing
End Sub

スクリーンショット:

ここに画像の説明を入力してください

4

1 に答える 1

0

次のコードをバッチファイルに入れて、Windowsスケジューラからバッチファイルを実行します。

"C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" "C:\mydata\Database\mydatabase.accdb" /X RunMyMacro
于 2012-12-03T21:38:35.873 に答える