periode in email onderwerp

Status
Niet open voor verdere reacties.

jwaque

Verenigingslid
Lid geworden
16 aug 2006
Berichten
438
Ik wil 'automatisch' een query verzenden naar een email adres. Dit lukt via een macro met de functie: ObjectVerzenden.
In de query zit een parameter voor start en stop datum. Deze start (en stop) datum zou ik in het onderwerp (en evt in bestandsnaam) terug willen zien.
kan dat?
 
even naar boven. Is het niet mogelijk een bestandsnaam te creeren met een parameter of datum erin?
 
Alles kan (nou ja: bijna alles) dus dit ook. Maar op basis van parameters in een query: nee. Dat zul je dus op een andere manier moeten regelen. Vermoedelijk verzend je de query via een knop op een formulier? En heb je daar ook tekstvelden op staan voor datum en onderwerp/bestandsnaam? Zo ja: dan is het simpel: maak een variabele aan die de gegevens combineert in een string, en gebruik die variabele als bestandsnaam.
 
Alles kan (nou ja: bijna alles) dus dit ook. Maar op basis van parameters in een query: nee. Dat zul je dus op een andere manier moeten regelen. Vermoedelijk verzend je de query via een knop op een formulier? En heb je daar ook tekstvelden op staan voor datum en onderwerp/bestandsnaam? Zo ja: dan is het simpel: maak een variabele aan die de gegevens combineert in een string, en gebruik die variabele als bestandsnaam.

De tekstvelden heb ik (nog) niet maar dat is geen probleem.
Maar het maken van een variabele en een string gebruikt als variabele bestandsnaam wordt moeilijker. Mijn sql kennis is helaas niet zo groot (tips voor een goede cursus zijn welkom).
zou je me een voorzet kunnen geven?
 
deels gelukt

Private Sub Knop0_Click()
Dim datum As Date
datum = Now()
Dim reportnaam As String
reportnaam = "RapDeclaratieCTG"
Dim ontvanger As String
ontvanger = "emailadres"
Dim ontvanger2 As String
ontvanger2 = "emailadres"
Dim mailtext As String
mailtext = "hierbij de ctg declaratie"
DoCmd.SendObject Objecttype:=acSendReport, objectnaam:="rapdeclaratieCTG", outputformat:=acFormatXLS, to:=ontvanger, cc:=ontvanger2, bcc:=ontvanger, onderwerp:=datum, bericht:=mailtext, bewerken:=True
End Sub


alleen lukt het nu niet meer om mijn rapport er ook aan te hangen krijg nl de volgende error: 'kan het benoemde argument niet vinden'
ook als ik de email adressen bij cc en bcc weghaal gaat het niet goed. dan krijg ik: 'verwacht benoemde parameter"
Ik heb deze code gezet in een leeg formulier met een knop.

ik hoop dat jullie me weer iets verder kunnen helpen
 
Laatst bewerkt:
De eerste check is natuurlijk: heb je wel een rapport met de naam rapdeclaratieCTG? En zitten daar je parameters misschien nog in? Want dan gaat de code vermoedelijk niet werken; het rapport moet zonder parameters gedraaid kunnen worden.
 
het is gelukt. maar nu zou ik graag het resultaat nog een specifieke naam geven dus ctgdeclaratie_startdatum. Ik dacht misschien eerst opslaan als tabel maar weet ook niet helemaal hoe onderstaand werkt (nog) niet
DoCmd.Save [acQuery as acTable = ""TblCTG" & startdatum"], "declaratieCTG"

oplossing datum in mail onderwerp
Private Sub Knop0_Click()
Dim datum As Date
datum = Now()
Dim startdatum As Date
startdatum = Now() - Weekday(Now()) + 1 - 6
Dim einddatum As Date
einddatum = Now() - Weekday(Now()) + 1
Dim ontvanger As String
ontvanger = "mailadres"
Dim ontvanger2 As String
ontvanger2 = "mailadres"
Dim mailtext As String
mailtext = "hierbij de ctg declaratie"


DoCmd.SendObject acSendQuery, "declaratieCTG", acFormatXLS, ontvanger, , , "declaratie CTG periode " & FormatDateTime(startdatum, vbShortDate) & " tot " & FormatDateTime(einddatum, vbShortDate), mailtext, True
End Sub
 
Nope; met Sendobject verzend je een bestaand Access object; geen externe bestanden.
 
Je kunt een Outlook sessie openen als je Outlook gebruikt; dan kun je op een heel simpele manier een email genereren/verzenden. Met bijlagen...
 
ik wilde alles met een druk op een knop. maar ben bang dat we moeten kiezen
 
Ik heb twee voorbeelden voor je: één met een Outlook referentie in de bibliotheken (vereist de juiste bibliotheek) en één met Late Binding; die werkt (mits outlook geïnstalleerd is) altijd.
Code:
'--------------------------------------------------------------------------------------
'Query exporteren naar XLS bestand, en mailen als bijlage.
'--------------------------------------------------------------------------------------
Private Sub cmdExport_Click()
On Error GoTo Err_cmdExport_Click
Dim stDocName As String, StartDatum As Date
Dim sFile As String

    StartDatum = Date
    sFile = "J:\_HelpMij_Archief\2011\Access\DeclaratieCTG - " & StartDatum & ".xls"
    DoCmd.OutputTo acOutputQuery, "DeclaratieCTG", acFormatXLS, sFile

    '----------------------------------------------------------------------------------
    'Variant met Late Binding (geen Outlook referentie nodig)
    '----------------------------------------------------------------------------------
    Dim olApp As Object
    Dim olMail As Object
    Set olApp = CreateObject("Outlook.Application")
    Set olMail = olApp.CreateItem(0)
    '----------------------------------------------------------------------------------
    'Variant met Early Binding (Werkt niet zonder Outlook referentie)
    '----------------------------------------------------------------------------------
    ''Dim olApp As Outlook.Application
    ''Dim olMail As Outlook.MailItem
    ''Set olApp = New Outlook.Application
    ''Set olMail = olApp.CreateItem(olMailItem)
    '----------------------------------------------------------------------------------
    With olMail
        .To = "naam@provider.nl"
        .CC = "naam@andereprovider.nl"
        .Subject = "Hier is het dagelijkse bestandje."
        .Body = "Met vriendelijke groet, en vul de rest maar zelf in..."
        .Attachments.Add sFile
        .Display
        '.Send
    End With

    Set olMail = Nothing
    Set olApp = Nothing
    Exit Sub

Err_cmdExport_Click:
    MsgBox Err.Description
    
End Sub
 
geweldig. het werkt (heb de late binding geprobeert). Heel veel dank een geweldig kerstcadeautje.
 
En wat betreft de cursus: kijk eens in de handleidingen sectie; ik ben vorig jaar begonnen met een cursus Access in de nieuwsbrief, inclusief VBA voorbeelden. Misschien heb je er wat aan :)
 
En wat betreft de cursus: kijk eens in de handleidingen sectie; ik ben vorig jaar begonnen met een cursus Access in de nieuwsbrief, inclusief VBA voorbeelden. Misschien heb je er wat aan :)

ik lees hem met veel plezier.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan