Microsoft Access ClubAccess超初心者対象ForumAccess初級者対象ForumAccess初・中級者対象ForumAccess VBA Tips ForumDAO、ADO、SQL Forum

     

No27673.sendobjectを使ってのEmail送信

タイトルsendobjectを使ってのEmail送信
記事No: 27673
投稿日: 2004/08/28(Sat) 16:05
投稿者: ホアキン
os : XPPRO
access : 2000

sendobjectメゾットを使って、フォーム上のデータをemail送信できるよう思考中です。
下記PGMを実行しようとすると、

DoCmd.SendObject acSendNoObject, , , , , strEmail & strOwnEmail, strSubject, strText, True

の箇所で、”予約済みエラー”が出てきてしまい、思うようにoutlookが表示されません。
どなたか、ご教授願えないでしょうか?


Private Sub コマンド17_Click()

Dim db As Database
Dim dyna1 As Recordset
Dim strEmail As String
Dim strOwnEmail As String
Dim strObject As String
Dim strText As String

Set db = CurrentDb()
Set dyna1 = db.openrecordset("T送信先", dbopendynaset)

strEmail = ""
strOwnEmail = ""
strSubject = "システム部門への問い合わせ"
strText = Me.発生日 & Me.緊急度 & Me.問い合わせ用件 & Me.画面名 & Me.取引先 & Me.外注先 & Me.テキスト2


Do Until dyna1.EOF
If dyna1!CK = True Then
strEmail = strEmail & dyna1!Emailaddress & " ; "
Else
strOwnEmail = strOwnEmail & dyna1!Emailaddress
End If

dyna1.MoveNext

Loop

DoCmd.SendObject acSendNoObject, , , , , strEmail & strOwnEmail, strSubject, strText, True

dyna1.Close: Set dyna1 = Nothing
db.Close: Set db = Nothing

Exit Sub

タイトルRe: sendobjectを使ってのEmail送信
記事No: 27708
投稿日: 2004/08/30(Mon) 07:43
投稿者: Tkwan
>strOwnEmail = strOwnEmail & dyna1!Emailaddress

に受信者の区切り記号が無いのは?
またヘルプには
「受信者の名前がメール アプリケーションによって認識されないと、
 メッセージは送信されずエラーが発生します。」
と有りますが、両方とも関係有りませんか?

それと最後の;を削除しないといけないのでは?

タイトルRe^2: sendobjectを使ってのEmail送信
記事No: 27714
投稿日: 2004/08/30(Mon) 10:17
投稿者: ホアキン
tkwanさんレスありがとうございます。

>strOwnEmail = strOwnEmail & dyna1!Emailaddress

> に受信者の区切り記号が無いのは?

strOwnEmailは、送信者だと理解しているのですが、間違いでしょうか?
strOwnEmailは、一人(dyna1のCKがNO)の運用です。

> それと最後の;を削除しないといけないのでは?

削除しましたが、駄目でした。

変わりに、Me.ActiveControl.Hyperlink.Address = "mailto:" & strEmailで、
outlookが立ち上がるようにしたのですが、
Me.ActiveControl.Hyperlink.EmailSubject = strsubjectを加えると、
受信者のメアドが最初の2文字しか表示されなくなってしまいました。

また、Me.ActiveControl.Hyperlinkを使用した際、フォーム上のデータを本文に載せるには
どのようにすればよいのかわかりません。

タイトルRe^3: sendobjectを使ってのEmail送信
記事No: 27721
投稿日: 2004/08/30(Mon) 12:23
投稿者: Tkwan
> strOwnEmailは、送信者だと理解しているのですが、間違いでしょうか?

あなたが strEmail & strOwnEmail と書かれている場所はBCCのメールアドレスを代入する場所です。
SendObjectにはTo, Cc, Bccの引数しかない筈です。
送信者はメーラーの既定のアカウントになったと思います。

タイトルRe^3: sendobjectを使ってのEmail送信
記事No: 27724
投稿日: 2004/08/30(Mon) 12:52
投稿者: Tkwan
あなたのコードを少し書き換えて(★印)標準モジュールで実行してみました。
問題なく実行されましたけど。

Sub Mtes()

Dim db As DAO.Database '★
Dim dyna1 As DAO.Recordset '★
Dim strEmail As String
Dim strOwnEmail As String
Dim strSubject As String '★
Dim strText As String

Set db = CurrentDb()
Set dyna1 = db.openrecordset("T送信先", dbopendynaset)

strSubject = "テスト"         '★
strText = "てすと" '★

Do Until dyna1.EOF
'If dyna1!CK = True Then        '★コメント化
strEmail = strEmail & dyna1!Emailaddress & " ; "
'Else '★コメント化
'strOwnEmail = strOwnEmail & dyna1!Emailaddress '★コメント化
'End If '★コメント化

dyna1.MoveNext

Loop

strEmail = Left(strEmail, Len(strEmail) - 1) '★追加
DoCmd.SendObject acSendNoObject, , , , , strEmail, strSubject, strText, True '★

dyna1.Close: Set dyna1 = Nothing
db.Close: Set db = Nothing

End Sub             '★修正

タイトルRe^4: "テスト""てすと"以外が・・・
記事No: 27727
投稿日: 2004/08/30(Mon) 13:35
投稿者: ホアキン
tkwanさん、sendobjectのヘルプを見ました。
どうやら、私の参考にした資料が自分にBCCでメールを送るようになっていたみたいで、
大変失礼しました。

基本的には、出来ました!!
本当にありがとうございます。

ただ、一点、

"テスト""てすと"の内容を

strSubject = "システム部門への問い合わせ"
strText = Me.発生日 & Me.緊急度 & Me.問い合わせ用件 & Me.画面名 & Me.取引先 & Me.外注先 & Me.テキスト2

に変更すると、『予約済みエラー』になってしまいます。

strSubject = "問い合わせ"にすると、
outlook件名が"問い合わ"まで表示され、"せ"が文字化けしてしまいます。
文字数の制限等あるのでしょうか?
すいませんが、もう少しだけお付き合い願えますでしょうか?

タイトルRe^5:
記事No: 27728
投稿日: 2004/08/30(Mon) 14:06
投稿者: Tkwan
> strSubject = "問い合わせ"にすると、
> outlook件名が"問い合わ"まで表示され、"せ"が文字化けしてしまいます。
> 文字数の制限等あるのでしょうか?

文字数の制限は無限ではないと思いますが、4文字ということは無いと思います。

タイトルRe^6:
記事No: 27735
投稿日: 2004/08/30(Mon) 15:46
投稿者: mayu
こんにちは。

■ 過去ログ
http://www.accessclub.jp/bbs5/0005/vba1085.html

での
hide さんの SendObject メソッド バグ一覧表?に
一度目を通しておかれたほうがいいかもしれませんね。
ホアキン さんの環境が 2000 なので怪しいと思います。

文字化けのバグもあって、しかも対処法はバージョンアップだとか...。

では ☆

タイトルRe^7:
記事No: 27736
投稿日: 2004/08/30(Mon) 15:51
投稿者: ホアキン
解決しました!

strText = Me.発生日 & Me.緊急度 & Me.問い合わせ用件 & Me.画面名 & Me.取引先 & Me.外注先 & Me.テキスト2

の Me.緊急度、Me.問い合わせ用件等をフォーム上のコンボボックスから選ばせるようにしていたので、
me.コンボ○○にしなくてはいけなかったのです。
しょうもないミスで申し訳ありません。

strSubject = "問い合わせ"にすると、
outlook件名が"問い合わ"まで表示され、"せ"が文字化けしてしまうのは変わらないですが。

こちらはmayuさんのレスを参考にさせていただきます。

タイトル97への変換で・・・
記事No: 27817
投稿日: 2004/09/01(Wed) 10:46
投稿者: ホアキン
私は2000を使用しているのですが、
ユーザーが97を使用しているので、出来上がったファイルをツールの旧バージョンに変更を実行し、
97でも開くことが出来るようになりました。

ただ、97でEmail送信を行おうとすると、
sendobjectの部分で『コマンドまたはアクション’オブジェクトの送信’が不明です』
というエラーが発生します。

97のモジュール⇒デバックで修復もしたのですが、outlookが立ち上がりません。

[次頁]

 

ページの先頭へ 前ページへ戻る