Avatar billede martens Guru
03. oktober 2017 - 17:11 Der er 2 kommentarer og
1 løsning

Send mail ( selected from recordset ) dur ikke som det skal...

jeg har denne kode ( se længere nede ) , der ikke helt spiller som den skal...
---------------------------------------------------------------------------
Problemet er at den kun tager sidste post i recordset og IKKE looper...
hvad pokker går der galt?

Er det ikke muligt at indsætte en værdi fra tabellen i BODY ( tbl_emails ) feltet hedder "telefon"  altså a´la  .Body = "Dit telefonnummer er : " & rs!telefon    ??

mvh martens
-------------------------------------------------------------------------------------------

Private Sub cmb_send_mail_single_Click()
Dim FileName As String
Dim FilePath As String
Dim oOutlook As Outlook.Application
Dim oEmailItem As MailItem
Dim rs As Recordset

On Error GoTo errhandler:

FileName = "test.txt"
FilePath = "c:\temp\"

If oOutlook Is Nothing Then
Set oOutlook = New Outlook.Application
End If

Set oEmailItem = oOutlook.CreateItem(olMailItem)

With oEmailItem

Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_emails")
If rs.RecordCount > 0 Then
rs.MoveFirst
Do Until rs.EOF
If IsNull(rs!email) Then

rs.MoveNext

Else
.To = rs!email
rs.MoveNext
End If


Loop
Else
MsgBox "ingen emailadresser"
End If
Set rs = Nothing

'.To = ""
.CC = ""
.Subject = "test"
.Body = "Dit telefonnummer er : "
'.Attachments.Add FilePath
'
'
'.Send
.Display

End With

'Kill FilePath
exit_errhandler:
Exit Sub
Set oEmailItem = Nothing
Set oOutlook = Nothing
errhandler:
MsgBox Err.Description, vbExclamation
Resume Next
End Sub
Avatar billede keysersoze Guru
04. oktober 2017 - 09:56 #1
Er du sikker på at den ikke looper igennem alle - altså, har du forsøgt med debug? Tænker det bare skyldes, at du hele tiden overskriver værdien i To.
Avatar billede fdata Forsker
04. oktober 2017 - 15:21 #2
Du har fået flyttet en del af koden udenfor løkken.
Prøv noget i stil med (ikke testet):

With oEmailItem
  Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl_emails")
 
  If rs.RecordCount > 0 Then
    rs.MoveFirst
    Do Until rs.EOF
     
      If Not IsNull(rs!email) Then
        .To = rs!email
        .CC = ""
        .Subject = "test"
        .Body = "Dit telefonnummer er : " & rs!telefon
        '.Attachments.Add FilePath
       
        '.Send
        .Display
      End If
     
      rs.MoveNext
    Loop
  Else
    MsgBox "ingen emailadresser"
  End If
 
  Set rs = Nothing
End With
Avatar billede martens Guru
07. oktober 2017 - 17:56 #3
Ja koden var vist løbet lidt løbsk uden for LOOP...
Sådan kan det gå, når man sidder og stirrer sig blind på noget ..

Tak for hjælpen !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester