Mailen vanuit een gefilterde lijst.

Status
Niet open voor verdere reacties.

Isabelle Sels

Gebruiker
Lid geworden
9 sep 2010
Berichten
55
Beste,

Wie kan mij even uit de nood helpen.
Ik heb ondertussen gevonden hoe ik rechtstreeks meerdere maar toch persoonlijke emails in een keer kan versturen vanuit een bepaalde query en dat werkt goed.

Nu zou ik het zelfde willen doen maar dan vanuit een formulier waarin filters zij toegepast.
Vb. Een tabel waarin alle honden van de hondenschool staan vermeld, ga ik filteren op de geboortedatum zodat ik een lijst krijg met alle honden die jarig zijn in een bepaalde maand. Dat lukt tot daar.
Nu wil ik vanuit die lijst alle honden (allé hun baasjes) een mailtje sturen voor hun verjaardag. Deze moet persoonlijk gericht zijn en mogen alleen de honden zijn die in die bepaalde maand jarig zijn.

Alvast bedankt voor uw reactie :d
 
Daarvoor zou ik een tijdelijke query maken, die je vanuit het formulier vult met de gefilterde records. De tijdelijke query gebruik je vervolgens in je mailprocedure, die je dan verder niet hoeft aan te passen. Blijft over de vraag: hoe maak ik van de filtering een tijdelijke tabel?
En een subvraag: kun je zelf een query maken met VBA?
 
Alvast bedankt voor uw snelle reactie.

Begrijp wat je bedoelt en hoe je het wil aanpakken.
Blijft dus voor mij inderdaad nog de vraag hoe maak ik een tijdelijke tabel?
En hoe maak ik een query met VBA?

Als je me hiermee nog zou kunnen helpen ben ik uit de nood.

Mercikes.
 
Daarvoor heb ik altijd een voorbeeldbestandje achter de hand ;)
Kijk maar eens in het formulier <Keuzelijst + Invoervak>.
 

Bijlagen

Beste OctaFish,

Bedankt voor je voorbeeld, ben al een heel stuk verder geraakt.
Kan nu vanuit mijn formulier een query aanmaken.

Alleen de filter lukt niet, daar ik met de filters van Access zelf werk. Dus niet met een veld.

Ik heb een hoofdformulier met daarin de knop voor het aanmaken van de query, die werkt. In dat hoofdformulier heb ik een subformulier met als Standaardweergave: Gegevensblad. Daarin worden verschillende filter gezet, en die filters heb ik nodig.

Kan je me hiermee even voorruit helpen?

Alvast bedankt.
 
Een filter dat op een subformulier staat kun je wel uitlezen met VBA. Dat ziet er dan ongeveer zo uit: sFilter=Me!Subformulier.Form.Filter
Dit filter kun je dan weer verder gebruiken.
 
Bij uitvoeren van de proceduren zonder sFilter loopt het goed.
Met filter, krijg ik een foutmelding:
Fout 3135 tijdens uitvoering:
JOIN-Bewerking bevat een syntaxfout.

Bij fout fout opsporing wordt de volgende regel geel gemarkeerd:
Set qdfNew = db.CreateQueryDef ("qTemp", strSQL)

Hier alvast mijn volledige procedure:

Private Sub Knop406_Click()

sFilter = Me![Subform Lijst Honden].Form.Filter

strSQL = "SELECT Honden.[Hond-Id], [Naam hond], [KL-Voornaam], [KL-Email], [Geboortedatum], [Actief], [KL-Email Nieuwsbrief], [Verjaardagskaart?], [KL-Achternaam]" & vbCrLf
strSQL = strSQL & "FROM Klanten INNER JOIN Honden ON Klanten.[Klant-Id] = Honden.[Klant-Id]" & vbCrLf
strSQL = strSQL & sFilter

'Dim t
't = InputBox("", "", strSQL)

Set db = CurrentDb()
On Error Resume Next
db.QueryDefs.Delete ("qTemp")
On Error GoTo 0
Set qdfNew = db.CreateQueryDef("qTemp", strSQL)

DoCmd.OpenQuery "qTemp"
End Sub

Bedankt voor je hulp.
 
Kun je de tekst geven die uit de inputbox rolt?
 
Hier de tekst vanuit de inputbox
SELECT Honden.[Hond-Id], [Naam hond], [KL-Voornaam], [KL-Email], [Geboortedatum], [Actief], [KL-Email Nieuwsbrief], [Verjaardagskaart?], [KL-Achternaam]
FROM Klanten INNER JOIN Honden ON Klanten.[Klant-Id] = Honden.[Klant-Id]
(Month([Subform Lijst Honden].[Geboortedatum])=10)
 
Er ontbreekt een woordje in je filter:
Code:
SELECT Honden.[Hond-Id], [Naam hond], [KL-Voornaam], [KL-Email], [Geboortedatum], [Actief], [KL-Email Nieuwsbrief], [Verjaardagskaart?], [KL-Achternaam]
FROM Klanten INNER JOIN Honden ON Klanten.[Klant-Id] = Honden.[Klant-Id]
[B][COLOR=red]WHERE [/COLOR][/B](Month([Subform Lijst Honden].[Geboortedatum])=10)
Dit komt doordat je het filter wel goed uit het subformulier haalt, maar verder nog niet geschikt hebt gemaakt voor je query. Dat kun je zo doen:
Code:
sFilter = "WHERE " & Me![Subform Lijst Honden].Form.Filter
 
Goede morgen,

Heb de aanpassing gedaan met volgend resultaat:

SELECT Honden.[Hond-Id], [Naam hond], [KL-Voornaam], [KL-Email], [Geboortedatum], [Actief], [KL-Email Nieuwsbrief], [Verjaardagskaart?], [KL-Achternaam]
FROM Klanten INNER JOIN Honden ON Klanten.[Klant-Id] = Honden.[Klant-Id]
WHERE(Month([Subform Lijst Honden].[Geboortedatum])=11)

Geen foutmelding meer, maar...
nog wel een melding:

Parameterwaarde opgeven: Subform Lijst Honden.Geboortedatum
Daar het om een subformulier gaat moet dan normaal ook niet het hoofdformulier vermeld staan?
Hoe kan ik dit nog oplossen?

Alvast bedankt
 
De query herkent het veld niet. Dat komt waarschijnlijk doordat de aanroep in de query niet helemaal klopt. Probeer deze eens:
HERE(Month(Forms![Subform Lijst Honden]![Geboortedatum])=11)
 
De query herkent het veld niet. Dat komt waarschijnlijk doordat de aanroep in de query niet helemaal klopt. Probeer deze eens:
Code:
WHERE(Month(Forms![Subform Lijst Honden]![Geboortedatum])=11)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan