UItvoering code pauzeren?

Status
Niet open voor verdere reacties.

reneemettrie

Terugkerende gebruiker
Lid geworden
1 aug 2006
Berichten
1.233
Ik moet een mailing doen met een rapport als bijlage. Ik gebruik een lus waarin ik eerst her rapport bewaar (telkens onder dezelfde naam, maar met andere gegevens) en het dan nadien als bijlage definieer.
Maar tijdens de lus krijg ik -af en toe - de melding:
"The attachment licence.pdf is open. Don't forget to save the file if you made any changes"
Hoe los ik dat op? Kan ik in de code zetten dat die pdf moet gesloten worden of moet ik ergens een pauze inlassen en zo ja, hoe doe ik dat?

Code:
[B]DoCmd.OutputTo ObjectType:=acOutputReport, objectName:="rpt_Licence", _
Outputformat:=acFormatPDF, outputfile:=CurrentProject.Path & "\Licence.pdf"[/B]

With mi
    .To = "****@gmail.com"
    .Body = "body"
    .Subject = "Licentie MBEL"
    .Attachments.Add Source:=CurrentProject.Path & "\Licence.pdf"
End With


mi.Send
Set mi = Nothing
Set outl = Nothing
MsgBox "Sent for " & Lastname
 
Ik zie geen lus. Dus ook geen code waarin je het bestand weer verwijderd. Graag de hele code. En zelf zou ik, omdat het toch om tijdelijke rapporten gaat, een nummer toevoegen in de lus aan de bestandsnaam. Dan weet je zeker dat het goed gaat. En je gooit ze daarna toch weg.
 
De code is niet erg elegant, omdat ik via een formulier alle records doorloop. Zal zeker beter zijn met DAO (maar dat al heel lang niet meer gebruikt en ben daar zeker niet vlot in), en de records van de onderliggende tabel doorlopen. en de bron van het rapport wijzigen.
Het rapport is gekoppeld met het sleutelveld op het formulier.
De code werkt wel (ik mail het bestand voorlopig enkel naar mezelf). Maar laatste keer werd één mail twee keer verstuurd, de volgorde van de mails is niet de volgorde van de records op het formulier, en de helft van de mails kwam 2 uur later dan de andere in mijn webmail (maar dat zal wel aan de webmail liggen denk ik).
Het betreffende pdf bestand wordt elke keer vervangen, wat mijn betreft is dat beter dan meerdere pdfs.
Als ik de Dim en de Ser voor de outlook items buiten de lus zet krijg ik een fout.


Code:
Dim i As Integer, answer As VbMsgBoxResult, NrMembers As Integer

DoCmd.ApplyFilter wherecondition:="Clubcode = '" & cbo_KeuzeClub.Value & "'"
NrMembers = DCount("*", "Clubmembers", "Clubcode = '" & cbo_KeuzeClub.Value & "'")
answer = MsgBox("Licences for " & NrMembers & " members of " & cbo_KeuzeClub.Value, vbYesNo + vbQuestion)
If answer = vbNo Then Exit Sub



'On Error GoTo MyError

 DoCmd.GoToRecord record:=acFirst
 
For i = 1 To NrMembers

    Dim outl As Outlook.Application 'als je dit niet in de lus doet krijg je een fout
Set outl = New Outlook.Application
    Dim mi As Outlook.MailItem
 Set mi = outl.CreateItem(olMailItem)

DoCmd.OutputTo ObjectType:=acOutputReport, objectName:="rpt_Licence", _
Outputformat:=acFormatPDF, outputfile:=CurrentProject.Path & "\Licence.pdf"

With mi
    .To = "****@gmail.com"
    .Body = "body"
    .Subject = "Licentie MBEL"
    .Attachments.Add Source:=CurrentProject.Path & "\Licence.pdf"
End With


mi.Send
Debug.Print i & vbTab & "Sent for " & Lastname
Set mi = Nothing
Set outl = Nothing

DoCmd.GoToRecord record:=acNext
'

Next i
'MyError:
'MsgBox Err.Number & " " & Err.Description
 
Het betreffende pdf bestand wordt elke keer vervangen, wat mijn betreft is dat beter dan meerdere pdfs.
Ik zie niet in waarom één bestand, dat je overschrijft, beter is dan verschillende bestanden die je na afloop steeds wist. Het resultaat is immers hetzelfde (geen pfd bestand na afloop), tenzij jij dat anders ziet? Mij lijkt de betrouwbaarheid van het systeem een stuk belangrijker dan of er één of meerdere tijdelijke bestanden worden aangemaakt. Maar goed, ik weet uiteraard niet of er moverende redenen zijn waarom er maar één bestand mag zijn :).
 
En dat werkt, hopelijk naar wens :d.

Nog niet helemaal... Ik krijg bij willekeurige mails het bericht dat de bijlage open staat. Maar de mails worden wel verzonden.
Dus eigenlijk hetzelfde als toe ik steeds dezelfde pdf overschreef, zij het minder vaak.
 
Zijn het soms bestanden waarvan de tijd om ze te genereren lang is omdat het grote bestanden zijn? Dan is het wellicht handiger om toch een lusje in te bouwen die daar een paar seconden aan toevoegt. In het welke geval je natuurlijk ook weer de 1-bestand optie kan gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan