2

私はいくつかのカウントを保持する ECount フィールドがある MS ACCESS にデータベースを持っています。メールでカウントを取得する必要がある新しいメールを生成している VBA コードでその呼び出しを取得する方法はありますか。

Private Sub Command_Click()
Dim objOutlook As Outlook.Application
Dim objEmail As Outlook.MailItem
Dim ThisDay As Date

ThisDay = Format(Now, "mm/dd/yy")


Set objOutlook = CreateObject("Outlook.application")
Set objEmail = objOutlook.CreateItem(olMailItem)

With objEmail
    .To = ""
    .CC = ""
    .Subject = "Daily Email Processed " *(Thisday)
    .Body = "Hi," + vbNewLine + vbNewLine + vbNewLine + "Please find below the number of Emails processed for the  " + vbNewLine + vbNewLine + "Email Count = " (**ECOUNT**) + vbNewLine + "O Count = " (**OCount**)
    .Attachments.Add ""
    .Attachments.Add ""
    .Display
    '.ReadReceiptRequested

End With
4

3 に答える 3

1

テーブル/クエリから特異フィールドを取得する最も簡単な方法はDLOOKUP、Access の機能を使用することです。

したがって、次のように書くことができます。

    .Body = "Hi," + vbNewLine + vbNewLine + vbNewLine + _
        "以下で処理された電子メールの数を確認してください" + vbNewLine + vbNewLine + _
        "Email Count = " + DLookup("ECount", "SourceTableOrQuery", "Criteria1 = 5 and Criteria2 = ""Test""") + vbNewLine + _
        "O Count = " + DLookup("OCount", "SourceTableOrQuery")

または、まだカウントしていないがアイテムの数をカウントしたい場合は、'DCount` 関数を使用できます。

于 2013-02-12T08:46:02.690 に答える
1
Dim db As DAO.Database
Dim rs1 As DAO.Recordset
Dim sCount As String

Set db = CurrentDb()
Set rs1 = db.OpenRecordset("SELECT TOP 1 ECounter FROM [Email Query]")

If rs1.RecordCount > 0 Then
    rs1.MoveFirst
    sCount = rs1.Fields("ECount")
End If
rs1.Close
set rs1 = Nothing
set db = Nothing

sCount値を保持します

于 2013-02-12T08:46:07.267 に答える
0
Dim db As DAO.Database
Dim rs1 As DAO.Recordset
Dim sCount As String

Set db = CurrentDb()
Set rs1 = db.OpenRecordset("SELECT TOP 1 ECounter FROM [Email Query]")

If rs1.RecordCount > 0 Then
    rs1.MoveFirst
    sCount = rs1.Fields("ECount")
End If
rs1.Close
set rs1 = Nothing
set db = Nothing
于 2013-02-12T10:42:16.840 に答える