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

AccessのデータをGoogleスプレッドシートに表示する

会社のネットショップで、お客様から電話で荷物の出荷状況について問い合わせがあった場合に、現状ではすぐに対応できていなかった。 荷物の伝票番号は、クロネコヤマトのB2のソフトか、あるいはAccessの業 …

no image

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

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

no image

Accessで「イベントプロパティに指定した式MouseMoveでエラーが発生しました。フォームまたはレポート上のActiveX コントロールを読み込むときにエラーが発生しました。」

フォームに配置したプログレスバーコントロールの上をマウスポインタが横切ろうとすると、必ず上のエラーメッセージが表示される。 原因がわからず、対処もできず、困っていた。 Google先生も頼りにならず、 …

no image

DoCmd.GoToRecordよりもMe.SaveよりもMe.Refresh

Accessで、一旦フォーム上のレコードを保存したいとき、 Me.Save とやってもレコードが保存されない。 そこで、今までは、DoCmd.GoToRecordで無理矢理レコードを移動して保存してい …

no image

ExcelからAccessの外部データの取り込みでトラブル

ExcelからAccessのクエリを使いたいとき、データ接続途中の「テーブルの選択」ウィンドウに、使いたいクエリが表示されない。 ウィンドウ内には、Accessにあるはずのクエリがあったりなかったり。 …