MS Access

Accessで1件ずつレコードを読んでスナップショットファイルを作ってメール送信する処理

投稿日:2011年4月6日 更新日:

作るのにWebに情報が無くてすごく苦労したので備忘録。
私にしかわからないかもしれないけど、見た人も何か参考になるかもしれないから、公開しよっと。

■事前準備
1.処理を起動するフォームにボタン「調査票メール送信」を作成。
2.同フォームにテキストボックス「fax」を作成。
3.レポート「調査票FAX」を新規作成。

■レポートに書くコード
Me.RecordSource = "SELECT * FROM XXXX実施調査票 WHERE (((番号)=[Forms]![オープニングフォーム]![fax]));"

■フォームに書くコード
Private Sub 調査票メール送信_Click()
Dim MyDB As Database
Dim MyRS As Recordset
Set MyDB = CurrentDb
Set MyRS = MyDB.OpenRecordset("SELECT * FROM Excelスケジュール WHERE (((月) like '" & Me.cbo調査対象 & "*'));", dbOpenDynaset)
'**** FAX番号存在チェック ***
Do Until MyRS.EOF
If MyRS!FAX <> "" Then
Else
r = MsgBox(MyRS!番号 & " " & MyRS![XXXX名] & "にFAX番号がありません。続行しますか?", vbYesNo)
If r = vbNo Then Exit Sub
End If
MyRS.MoveNext
Loop
'**** メイン処理 ***
MyRS.MoveFirst
Do Until MyRS.EOF
' Debug.Print MyRS!番号
If MyRS!FAX <> "" Then
Me.FAX = MyRS!番号
DoCmd.OutputTo acOutputReport, "調査票FAX", acFormatSNP, "C:\Windows\Temp\fax" & MyRS!番号 & ".snp"
DoCmd.SendObject acSendReport, _
"調査票FAX", _
"Snapshot 形式 (*.snp)", _
"xx@abc.com", _
"", _
"", _
"調査票", _
"調査票を送付します。", False
Else
MsgBox MyRS!番号 & " " & MyRS![XXXX名] & "にFAX番号がありません"
End If
MyRS.MoveNext
Loop
MyRS.Close
End Sub

-MS Access

執筆者:

関連記事

もう何度もAccessの集計クエリの作成をミスって怒られている

私が悪い。反省。 自戒のメモ。 Accessの集計クエリに条件を加えたい場合、その条件をどこに書くかによって結果が全く違ってくる。 それをわかってはいるのだが・・・最大やら演算やら、細かいことを同時に …

no image

Accessでのテーブルのエクスポート定義

Access2007のテーブルをcsv保存したいのだが、結果ファイルにダブルコーテーションを付けたくない・・・。 ダブルクォーテーションつきであれば、例えば、 DoCmd.TransferText a …

no image

Accessのパラメータは クエリのみならず、SQL文字列でも できるとは。。。

以下のリンクが参考になった。 パラメータの設定方法がわかりません。パラメータの設定を行ってい… – Yahoo!知恵袋 以下は、自分の業務で作成したコード。 [code] Di …

no image

AccessでコンボボックスのリストをVBAで行番号で選択する

こんな方法があるのは知らなかった。 メモメモ。 [code] ‘コンボボックスの1行目を選択する ‘Forms!見積請求書F.cbo銀行振込先 = Forms!見積請求書F.c …

no image

AccessとBASP21で正規表現を使ってメール文から必要事項を取り出すサンプル

Accessで正規表現を使いたかったのですが、ネット上にはサンプルが少なく、苦労したので、とりあえずツギハギで作った私のコードを披露したいと思います。 Accessで正規表現を使うには、BASP21を …