Opgelost Datum in email tekst

Dit topic is als opgelost gemarkeerd

chiellebeest

Gebruiker
Lid geworden
5 jan 2010
Berichten
86
Ik heb een macro gemaakt die een email aanmaakt en een PDF (van een rapport uit de database) in de bijlage zet.
Het rapport is op basis van 2 datums.

Ik wil deze 2 datums in mijn email tekst plaatsen. Hoe krijg ik dat voor elkaar?
 
Over het algemeen kan je dit soort zaken beter met VBA regelen dan met macro's omdat je met VBA meer mogelijkheden hebt.

Het ontbreekt verder aan informatie om je te helpen. Waar komen die datums bijvoorbeeld vandaan? Als je die via een formulier opgeeft kan je ze via een verwijzing in het onderwerp of de body van de e-mail plaatsen.
 
Het rapport wordt op basis van een query gemaakt, waar ik de selectie van datum tot datum doe.
Deze datums komen boven in het rapport te staan.
Hoe krijg ik de verwijzing naar deze datums in mijn email tekst.

Uiteraard is de email aangemaakt in vba
 
Ik volg het (nu al) niet meer.
Je zal toch echt wat meer informatie moeten verschaffen over de de query en de VBA waarmee je de mail maakt.
Ik snap ook niet hoe je de datums in het rapport krijgt.
 
Het rapport wordt op basis van een query gemaakt, waar ik de selectie van datum tot datum doe.
Vaag, inderdaad. Als je die datums opvraagt middels parameters wordt het al lastig. Haal je die datums uit een formulier? Dat is namelijk het makkelijkst. En blijkbaar maak je e.e.a. middels een procedure in VBA, wat dan verder geen probleem is, maar dan nog: laat op zijn minst de query zien, lijkt mij.
 
Probeer het uit te leggen.
Als eerste heb ik een query gemaakt, bij de criteria van het datum veld staat: Between [Van (dd-mm-jjjj)] And [tot (dd-mm-jjjj)]

1706477999407.png

Daarna heb ik een rapport gemaakt op basis van deze query. Zodra je het rapport selecteert, volgt een pop up waar je de datum van en tot kunt ingeven. Vervolgens wordt het rapport getoond (afdruk voorbeeld)

Middels een export macro (ExporterenMetOpmaak), selecteer je de datums voor het rapport, vervolgens wordt de pdf gemaakt en weggeschreven.

In de macro die ik gemaakt heb, staat de email tekst en een link naar de pdf die als bijlage meegestuurd moet worden.
Ter info, deze macro gebruik ik ook in excel om sheets (of PDF) te mailen.
 
Heeft niet echt geholpen.
Je blijft macro en VBA gebruiken als synoniemen terwijl dat niet zo is.
Ook he verhaal over de datums wordt alleen maar vager. Eerst zeg je dat je met een "parameter-query" werkt, later heb je over het "middels een macro selecteren van de datums voor het rapport" (geen idee hoe ik me dat voor moet stellen).

Duidelijk lijkt in ieder geval dat je de datums niet ingeeft op een formulier. Dat is in ieder geval iets waar je mee zou moeten beginnen. Je kan dan zowel in de query als vanuit een (nog te maken?) VBA code waarmee je de e-mail aanmaakt verwijzen naar de datums op het formulier. Bovendien heb je er zo controle over dat er echt een datum wordt ingevuld.
 
Als ik vraag om de query, dan bedoel ik uiteraard niet een plaatje, maar de SQL code. Maar goed, hier kan ik al aan zien dat je inderdaad met parameters werkt. Die gebruik je als criterium, en kun je volgens mij niet in een rapport opvragen. Dan zou je ze namelijk als veld moeten invoeren, en dat zie ik niet. Verder kan ik zo niet zien of de parameters ook als datum zijn gedefinieerd.
 
Bovendien heb je er zo controle over dat er echt een datum wordt ingevuld.
Dit klopt niet; als je in de query parameters definieert als datumveld, dan kun je echt alleen maar een datum invullen, en ben je er dus 100% zeker van dat je met datums filtert.
Ben het wél met je eens dat het verhaal er nog niet duidelijker op is geworden :). Het zou mijn werkwijze in ieder geval zo niet zijn….
 
Als ik vraag om de query, dan bedoel ik uiteraard niet een plaatje, maar de SQL code. Maar goed, hier kan ik al aan zien dat je inderdaad met parameters werkt. Die gebruik je als criterium, en kun je volgens mij niet in een rapport opvragen. Dan zou je ze namelijk als veld moeten invoeren, en dat zie ik niet. Verder kan ik zo niet zien of de parameters ook als datum zijn gedefinieerd.

Kun je hier wat mee?
SELECT [Sl-excel-export].[Wedstrijddatum], [Teams kort].Afkort, [Sl-excel-export].Tijd, [Sl-excel-export].Thuisteam, [Sl-excel-export].Uitteam, Scheidsrechters.Naam, Velden.[Veld kort], [Sl-excel-export].Veld, Soort_wedstrijd.[soort kort]
FROM ((([Sl-excel-export] LEFT JOIN Scheidsrechters ON [Sl-excel-export].Scheidsrechter = Scheidsrechters.Sportlink) LEFT JOIN [Teams kort] ON [Sl-excel-export].Team = [Teams kort].Team) INNER JOIN Soort_wedstrijd ON [Sl-excel-export].[Soort wedstrijd] = Soort_wedstrijd.soort) INNER JOIN Velden ON [Sl-excel-export].Veld = Velden.Veld
WHERE ((([Sl-excel-export].[Wedstrijddatum]) Between [Van (dd-mm-jjjj)] And [tot (dd-mm-jjjj)])

Dan zou je ze namelijk als veld moeten invoeren, en dat zie ik niet, Hoe kan ik dit voor elkaar krijgen?
 
Ook he verhaal over de datums wordt alleen maar vager. Eerst zeg je dat je met een "parameter-query" werkt, later heb je over het "middels een macro selecteren van de datums voor het rapport" (geen idee hoe ik me dat voor moet stellen).
Dit zou totaal niet vaag moeten zijn voor je, want is een rechtstreeks gevolg van de werkwijze: TS gebruikt een query met twee parameters als basis voor het rapport. Draai je de query zelfstandig, dan moet je dus twee datums ingeven. Dit zal je dan wel snappen? Maar omdat die query onder het rapport ligt, krijg je daar hetzelfde: als je het rapport opent, moet je uiteraard óók datums ingeven. En dus óók als je het rapport vanuit een macro start. Allemaal hartstikke logisch.
 
Kun je hier wat mee?
Genoeg :). Om te beginnen (ik heb dat al aangegeven in mijn antwoorden aan Peter) zou ik de twee filtervelden als Parameter vastleggen (datumnotatie uiteraard). Je gebruikt nu parameternamen die voor jouw gevoel waarschijnlijk als een soort invoermasker werken ([Van (dd-mm-jjjj)] en [tot (dd-mm-jjjj)]) maar dat zo uiteraard niet zijn. Je kunt invoeren wat je wilt, ook een recept voor appelflappen. Al kun je met tekst uiteraard geen datumveld filteren, en gebeurt er niet echt wat je wilt.

Dus stap 1: klik in in de werkbalk op de knop Parameters en maak twee filterdatums met een simpele naam, zoals BeginDatum en EindDatum (zonder spaties dus).
Stap 2: maak twee extra velden aan die dan deze naam+veldverwijzing krijgen:
1. Begin:[StartDatum]
2. Eind:[EindDatum]

That's it. Nu kun je je filters terugzien in de query en dus ook in je rapport.
De query (ander voorbeeld, het gaat om de techniek) ziet er dan ongeveer zo uit:

Code:
PARAMETERS StartDatum DateTime, EindDatum DateTime;
SELECT Kadat.[VOLLEDIGE NAAM], Adres.ADRES, Adres.WOONPLAATS, Kadat.GEB_DATUM, [StartDatum] AS [Begin], [EindDatum] AS Eind
FROM Adres INNER JOIN Kadat ON Adres.GEZIN_ID = Kadat.GEZIN_ID
WHERE (((Kadat.GEB_DATUM) Between [StartDatum] And [EindDatum]))

Het gaat dus om de eerste regel (PARAMETERS...) en de laatste. En in de SELECT zie je de parameters dus terug als veld.
 
Dan zou je ze namelijk als veld moeten invoeren, en dat zie ik niet, Hoe kan ik dit voor elkaar krijgen?
Zoals herhaaldelijk gezegd moet je daarvoor een formulier maken. Ik neem aan dat je wel weet wat een formulier is. Hoe voer je anders je gegevens in?
Dus: leeg formulier aanmaken, twee velden en een knop erop en onder de knop de benodigde VBA code.
 
Zoals herhaaldelijk gezegd moet je daarvoor een formulier maken.
Dat hoeft echt niet; al is het (vind ik ook) wél aan te raden, omdat je vanaf een formulier de gegevens beter kunt ingeven. Bijvoorbeeld door twee tekstvakken te maken met daarop een DatePicker, zodat je de datums aan kunt klikken en niet in hoeft te typen.

Maar het hele proces kan net zo makkelijk zónder formulier, met twee inputboxen in je procedure die de twee datums vragen. Dat werkt dan hetzelfde als de parameters die je nu gebruikt. Peter kan nogal stellig zijn in zijn oplossingen, maar er zijn echt wel meerdere wegen die naar een bruikbare procedure leiden.
 
Zoals herhaaldelijk gezegd moet je daarvoor een formulier maken. Ik neem aan dat je wel weet wat een formulier is. Hoe voer je anders je gegevens in?
Dus: leeg formulier aanmaken, twee velden en een knop erop en onder de knop de benodigde VBA code.
Ik exporteer de gegevens vanuit een ander programma, middels een knop importeer ik deze in een tabel. De query haalt de gegevens uit deze tabel.
Zoals Octafish aangeeft heb ik de parameters toegevoegd dit werkt voor de selectie van start en einddatum. Nu moeten deze datums nog in de body van de mail...
Het maken van een selectie formulier lukt niet, moet ik eerst op onderzoek uit gaan hoe ik dat voor elkaar krijg 😕
 
Uiteraard is de email aangemaakt in vba
En zoals ik al zei: dat hoeft niet (dat formulier). En ik heb óók aangegeven hoe je die gegevens laat zien in je query. Dus wat is dan nog het probleem? Laat dan eens zien hoe je de mail ‘uiteraard’ met VBA maakt :).
 
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan