2016-05-09 8 views
0

アクセスのテーブルから名前と電子メールアドレスのリストを取得し、その情報を使用してパーソナライズされた電子メールを送信しようとしています。だから私は、配列からのアクセスから2列を呼び出して、各行を通過するためにループを使用しようとしています。私はこれが最良の方法だと思っていますが、私は他のアイデアを公開しています。私は、最初のレコードを1通の電子メールを生成するコードを生成することができたが、私はどのように残りのレコードを取得する方法についてに行くには考えていません:配列とループを作成して任意の助けをいただければ幸いですアクセステーブルvbaからアレイを作成

Private Sub SMT() 
Application.Run "VariablesForRanges" 
strDB1 = ThisWorkbook.Path & "\database.accdb" 
strqry1 = "SELECT table1.name, table2.Email" 
strqry1 = strqry1 & " FROM table2 inner join table1 on table1.FULL_NAME=table2.Name" 
strqry1 = strqry1 & " group by table1.name, table2.Email;" 

Set cn1 = New ADODB.Connection 
cn1.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strDB1 & ";" 
Set rs1 = New ADODB.Recordset 

With rs1 
    Set .ActiveConnection = cn1 
    .Open strqry1 
End With 

If rs1.BOF = True Then 
    MsgBox "There Are No Records To Import", vbInformation 
     Else 
    Set OutApp = CreateObject("Outlook.Application") 
    Set OutMail = OutApp.CreateItem(0) 

strbody = "Hi " & rs1("name") & "," & vbNewLine & vbNewLine & _ 
"test" & vbNewLine & vbNewLine & _ 
"Best regards," & vbNewLine & _ 

On Error Resume Next 
    With OutMail 
    .To = rs1("Email")  
End With 

On Error GoTo 0 
    Set OutMail = Nothing 
    Set OutApp = Nothing 
End If 
End Sub 

を。ありがとう。

答えて

2

なぜレコードセットをループしないのですか?

Do While Not rs1.EOF 
' create emails 
    rs1.MoveNext 
Loop 
関連する問題