Accessでメールを受信する①

AccessでOutLookで受けたメールを受信します。
最初にメールのデータを保管するテーブルを作成します。

次に添付ファイルを保存するテーブルを作ります。

簡単なフォームを作り、ここにコマンドボタンを一つ作ります。

コマンドボタンのプロパティ→イベントタブ→クリック時
に次のVBAコードを入力します。

Private Sub コマンド0_Click()
”’—コード1|このコード内で使用する変数を宣言
Dim InboxFolder, i, n, k, attno As Long
Dim sender, mes, path1 As String
Dim outlookObj As Outlook.Application
Dim myNameSpace, objmailItem As Object
Dim fso As FileSystemObject

”’—コード2|定義した変数に必要な項目をセット
Set outlookObj = CreateObject(“Outlook.Application”)
Set myNameSpace = outlookObj.GetNamespace(“MAPI”)
Set InboxFolder = myNameSpace.GetDefaultFolder(6)
n = 2

Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset

Dim cnn1 As ADODB.Connection
Dim rs1 As ADODB.Recordset

Set cnn = CurrentProject.Connection
Set rs = New ADODB.Recordset

Set cnn1 = CurrentProject.Connection
Set rs1 = New ADODB.Recordset

rs.Open “受信メール”, cnn, adOpenKeyset, adLockOptimistic
rs1.Open “添付ファイル”, cnn1, adOpenKeyset, adLockOptimistic

”’—コード4|解析する受信メールの範囲を決める
MsgBox InboxFolder.Items.Count
For i = 1 To InboxFolder.Items.Count
Set objmailItem = InboxFolder.Items(i)

”’—コード5|受信メールの件数、受信日時、件名(タイトル)、送信者名、送信元のメールアドレス、内容(本文)を取得
‘Range(“A” & n).Value = i
rs.AddNew
rs!受信日時 = objmailItem.ReceivedTime
rs!件名 = Left(objmailItem.subject, 20)
rs!相手 = objmailItem.SenderName
rs!送信元アドレス = objmailItem.SenderEmailAddress
rs!本文 = Left(objmailItem.Body, 200)
rs.Update
”’—コード6|メールの添付ファイルを保管する

attno = objmailItem.Attachments.Count
If attno > 0 Then
For k = 1 To attno
objmailItem.Attachments(k).SaveAsFile (“C:\Users\km-of\Dropbox\添付ファイル” & “\” & objmailItem.Attachments(k).DisplayName)
rs1.AddNew
rs1!受信メールID = rs!受信メールID
rs1!アドレス = “C:\Users\km-of\Dropbox\添付ファイル” & “\” & objmailItem.Attachments(k).DisplayName
rs1.Update
Next

Else

End If

Next i

rs1.Close
Set rs1 = Nothing
cnn1.Close
Set cnn1 = Nothing

rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing

”’—コード7|セットした変数を解除
Set outlookObj = Nothing
Set myNameSpace = Nothing
Set InboxFolder = Nothing
End Sub

細かい解説はまた今度。
このコードもExcelでOutlookを受信するコードをAccess用に変更しました。
参照元のサイトです。

=====================================
事業承継税制の本を読んでみました。

読めば読むほど、過去の自社株対策やらない方がよかったなと思います。
今までの苦労は何だったのだろう・・・

急に秋めいてきました。
今まで暑い中走ってきましたが、涼しくなったら、体が軽い!
別にやせたわけではありませんが、今まで10キロの重しを載せて
走っていたようです。

本日も最後までお読みいただきありがとうございます。

Access正規版とRuntime版

お客さんから問い合わせがあり、あるPCからはAccessファイル
が動くが、違うPCからは動かないという連絡が。

実際にデータを見てみると、私のPCでは普通に動くし、VBAも
決して複雑なプログラムを書いているわけでもなく、原因不明。

とりあえず再起動してもダメだったので、Runtime版ではなく
製品版を購入していただくことに。

そんなわけで、今日は遠隔操作でAccess2016のダウンロード版
を購入し、そのままインストールの作業をしました。

動かなかったPCのAccessもすんなり動いてほっとしました。
確かに製品版とRuntime版を比べると動きも早いし、安定感
が違うような気がします。
(別に根拠があるわけではありませんが。)

頻繁にAccessを使うのであれば、正規版を購入することを
お勧めします。

==============================
昨日は私が所属している静岡県倫理法人会の辞令交付式でした。
事務方でいろいろと動いていたので、無事に終わりほっとして
います。

お役としては今年が最後の仕切り役。
いい運営ができたのではと思います。

本日も最後までお読みいただきありがとうございます。

Accessファイルをネットワークで共有する場合

お客さんのところで、共有していたAccessでエラーが出るという報告があり、
その修正に伺いました。

何人か同時にアクセスするとエラーが出たようでした。
Accessは基本的に共有できる状態でデータができるので
マルチアクセスすること自体は問題ではありません。
続きを読む

テーブルのデータをExcelのように管理する

AccessのテーブルのデータをExcelのように表計算として使う方法を解説します。
Accessの場合、集計をかけるときは集計クエリを使い、テーブルとは分けて考えるのが
一般的です。

集計クエリの致命的な弱点は縦の計算ができないことです。横の計算は得意ですが。。

縦計がでないとできないことが出てくるので、その点も含めて解説します。

とりあえず今回は横計の出し方です。

下の図のように簡単なテーブルを作ります。

続きを読む

講話をします!

4月21日の土曜日に静岡市倫理法人会にて講話を
務めさせていただきます。

ご興味のある方はぜひ静岡駅前のホテルアソシア静岡
までお越しください。

静岡市チラシ

よろしくお願いします。


1 / 8012345...102030...最後 »