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
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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