Avatar billede -anders- Juniormester
08. september 2013 - 11:36 Der er 5 kommentarer og
1 løsning

Vedhæfter flere filler i outlook via multiselect på listbox

Hej eksperter

Jeg arbejder i Access 2010 og Outlook 2010

I Access har jeg en form med en listbox (lstfiler)listboxen er sat op til multiselect. Listboxen for data fra en tabel. Posterne i listboxen er i bund og grund en henvisning til filer som ligger rundt omkring på pc'en fx C:\tmp\test.txt\ etc. Nedenstående kode virker hvis jeg kun markerer en post på listboxen, men markerer jeg flere poster fejler koden med fejl 94 (run time error object or with block not set)

'Kode start'

Private Sub cmd10_Click()
Dim objOl As New Outlook.Application
Dim objPost As MailItem
Dim vedhaeftet As Attachments
Dim Itm As Variant
Dim txt As String


Set objPost = objOl.CreateItem(olMailItem)
Set vedhaeftet = objPost.Attachments
For Each Itm In Me.lstfiler.ItemsSelected
txt = Me.lstfiler.ItemData(Itm)
vedhaeftet.Add (txt)
With objPost

.Subject = "MP3 fil, " & " " & Me.Titel
.To = "anj@bryggemail.dk"
.Display

End With
Set objPost = Nothing
Set vedhaeftet = Nothing
Set objOl = Nothing
Next Itm
End Sub

'kode slut'

Jeg kan ikke lige se hvor den er gal, er der nogen der har et bud.

Hilsen
Anders.
Avatar billede MSchlamovitz Mester
08. september 2013 - 11:49 #1
Du skal have
Set objPost = objOl.CreateItem(olMailItem)
indenfor din For each itm . . .Next itm løkke

Det ser ud til, at du genererer X antal mails til samme modtager, hver med én fil vedhæftet.

Har du overvejet at generere én mail med X antal vedhæftninger? Jeg tror det vil gøre livet nemmmere . . .
Avatar billede MSchlamovitz Mester
08. september 2013 - 11:51 #2
Jeg var lige hurtig nok:

Allerede 1. gang du gennemløber løkken sættes objOl=Nothing - og den bliver ikke sat siden ....
Avatar billede -anders- Juniormester
08. september 2013 - 12:08 #3
Hej MSchlamovitz

Tak for indlægget jeg kan godt se at der er noget om det der med løkken. Selvfølgelig skal det kun være en mail til samme person, med en eller flere vedhæftet filer.

Dog kan jeg ikke lige dreje koden, kunne du lægge et ex

Hilsen
Anders.
Avatar billede -anders- Juniormester
08. september 2013 - 12:22 #4
Som du selv var inde på stod next itm forkert.

Private Sub cmd10_Click()
Dim objOl As New Outlook.Application
Dim objPost As MailItem
Dim vedhaeftet As Attachments
Dim Itm As Variant
Dim txt As String


Set objPost = objOl.CreateItem(olMailItem)
Set vedhaeftet = objPost.Attachments
For Each Itm In Me.lstfiler.ItemsSelected
txt = Me.lstfiler.ItemData(Itm)
vedhaeftet.Add (txt)
With objPost

.Subject = "MP3 fil, " & " " & Me.Titel
.To = "anj@bryggemail.dk"
.Display

End With
Next Itm´'flyttet hertil'
Set objPost = Nothing
Set vedhaeftet = Nothing
Set objOl = Nothing

End Sub

Tak for hjælpen. Hvis du har et bedre forslag er jeg bestemt lydhør :-)
Avatar billede MSchlamovitz Mester
08. september 2013 - 12:30 #5
Denne skulle kunne klare opgaven:

Private Sub cmd10_Click()
Dim objOl As New Outlook.Application
Dim objPost As MailItem
Dim vedhaeftet As Attachments
Dim Itm As Variant
Dim txt As String

    Set objPost = objOl.CreateItem(olMailItem)
    For Each Itm In Me.lstfiler.ItemsSelected
        Txt=txt & ";" & Me.lstfiler.ItemData(Itm)
    Next itm
    Txt=mid(txt;2;len(txt))        '*** Fjerner det første semikolon i txt
    With objpost
            .Subject = "MP3 fil, " & " " & Me.Titel
            .To = "anj@bryggemail.dk"
            .Attachment.add (txt)
            .Display
    End with
    Set objPost = Nothing
    Set vedhaeftet = Nothing
    Set objOl = Nothing
End sub
Avatar billede -anders- Juniormester
08. september 2013 - 12:38 #6
Takker, elegant :-) Jeg er ved at være lidt rusten i Access og VBA
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