0

クエリからすべての電子メールを取得し、Outlook の電子メールにすべての電子メールを入力する MS アクセス クエリを使用しています。コードは実行されますが、電子メール アドレスが取得されず、理由を理解してください..これが私がこれまでに持っているものです。私の考えは、メールを取得しようとしたときに、テーブルの作成に使用されたクエリが呼び出されていないということです

Private Sub Command30_Click()
    On Error GoTo Err_Command30_Click

    Dim stDocName As String

    stDocName = "Department E-Mail"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

    Dim r As Recordset
    Dim Email As String
    Set r = CurrentDb.OpenRecordset("SELECT[tbl dmgrphcs].Email FROM [tbl  dmgrphcs]WHERE(([tbl     dmgrphcs].Email) Is Not Null);")

    Do While Not r.EOF
        Email = Email & r(0) & ";"
        r.MoveNext
    Loop
    r.Close

    DoCmd.SendObject acSendNoObject, Null, Null, "", "", Email, "", "", True, Null

Exit_Command30_Click:
    Exit Sub

Err_Command30_Click:
    MsgBox Err.Description
    Resume Exit_Command30_Click

End Sub
4

1 に答える 1

2

テーブル名の使用に一貫性がありません

[tbl dmgrphcs]
[tbl  dmgrphcs]
[tbl     dmgrphcs]

スペースの数が重要です。クエリが1つのテーブルにのみアクセスする場合は、列の前にテーブル名を付ける必要はありません。

Set r = CurrentDb.OpenRecordset("SELECT Email FROM [tbl dmgrphcs] " & _
                                "WHERE Email Is Not Null")

ヒント:イベントハンドラーを追加する前に、ボタンに意味のある名前を付けてください。Command30話しません。btnPullEMailsまたはcmdPullEMailします。イベントハンドラーにも、より適切な名前が付けられます。

Private Sub btnPullEMails_Click()
于 2012-12-24T16:27:15.223 に答える