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

執筆者:

関連記事

no image

Access2007でテキストファイルエクスポートしたら1文字ずれる

Access2007で、指定フィールドからLeft関数で10文字とったクエリを作り、固定長でテキストファイルにエクスポートしたら、5000件のデータのうち3件だけが、文字が末尾に1桁多く入り、後ろがず …

no image

SqlServerにAccessでいうオートナンバー型をつける

テストデータを作るために、Accessで2万件ほどのデータを用意し、別途追加クエリを作って、ODBC接続したSqlServerに追加しようとしたところ、「型変換エラーがどうのこうので追加出来ない」との …

Shopify(Matrixify)でスケジュール化したJobのキャンセル

どうしても方法を見つけられなかったが、ふと画面に目を落とすと、あった、方法が。 焦ると視野が狭くなって、なかなか気が付かないんだよなあ、こういうの。 You have 4 scheduled jobs …

Accessのフォームをデザインしようとすると固まる

タイミングとしては、フォームをデザインビューにした直後、プロパティシートをクリックしたとき。それだけで数十秒待たされる。 原因は、なんとなく、気が付いている。 ついさっき、フォームで使っているクエリに …

no image

Accessのフォームを開く際、acHiddenとVisibleの組み合わせで高速化

Accessのフォームを開く際、acHiddenとVisibleの組み合わせで高速化 Accessのとあるシステムで、 フォームを開いてフィルタをセットして実行してさらに並べ替える・・・という処理をし …