1: Voeg het veld toe op een formulier. Zet er een knop achter met de code:
Visual Basic:
1
2
3
4
5
6
7
| Private Sub cmdStuurEmail_Click()
On Error Resume Next 'Als de gebruiker het mail bericht annueleert
DoCmd.SendObject , , , Me!NaamVanEmailVeld
end sub |
2: uit de database halen. Deze stuurt naar alle mensen die door de query zijn opgehaald een email. Dit kan er ook 1 zijn als je de criteria juist meegeeft. Ik ga er van uit dat jouw tabel tblPersonen heet
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| Private sub StuurEmail()
on error resume next
with currentdb.openrecordset("SELECT * FROM MijnTabel WHERE VulCriteriumIn")
'Voorbeeld: "SELECT * FROM tblPersonen WHERE PersoonID = " & Variabele
'of: "SELECT * FROM tblPersonen WHERE PersoonID = 1"
Do While Not .EOF
DoCmd.SendObject , , , !NaamVanEmailVeld
.movenext
loop
.close
end with
end sub |
je kunt natuurlijk ook !NaamVanEmailVeld toewijzen aan een variabele, maar houdt er rekening mee dat als deze zn movenext doet, dat hij de eerste waarde overschrijft door de huidige. Eerst doen met de variabele wat je wil en daarna pas movenext.
je kunt ook kijken hoeveel records je op hebt gehaald (om te kijken of je de query goed hebt dus) door de volgende code toe te voegen onder de regel With currentdb... en de rest weg te halen.
Als je zonder criteria gewoon de hele tabel wil doorlopen is het
Visual Basic:
1
| with currentdb.openrecordset("tblPersonen") |
Meerdere criteria:
Visual Basic:
1
| with currentdb.openrecordset("SELECT * FROM tblPersonen WHERE persoonID = " & variabele & " AND Achternaam = Jansen") |
eventueel kun je ook de functie Dlookup/Dfirst gebruiken. Is eigenlijk niets meer dan een verkapte query
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| private sub Emailzoeken
on error goto fout
dim strMijnString as string
'Met sluistekens en quoutes
strMijnString = Dlookup("[Emailveld]","[tblPersonen]","[persoonID] = " & variable)
exit sub
fout:
msgbox err.number & " - " & err.description,vbokonly + vbCritical, "Fout: EmailZoeken"
End sub |
Dlookupjes zijn vaak echter traaaaag. In het vb venster kun je middels F1 meer informatie over deze functies opvragen.
Als je variable in een query tekst is (string) doe je het volgende:
Visual Basic:
1
2
| 'enkele quote, dubbele quote, ampersand, variabele naam, ampersand, dubbele quote, enkele quote, dubbele quote
with currentdb.openrecordset("SELECT * FROM tblPersonen WHERE Achternaam = '" & variabele & "'") |
Als je variable in een query tekst is (string) en je wil alles zoeken wat er op lijkt doe je het volgende:
Visual Basic:
1
| with currentdb.openrecordset("SELECT * FROM tblPersonen WHERE Achternaam like '*" & variabele & "*'") |
Alles voor en achter je variabele wordt als wildcard beschouwd. Variable = "jans", dan vindt ie "jans", "Mevrouw jans", "jansen", "Mevrouw Jansen" etc
[
Voor 37% gewijzigd door
Moirraine op 21-08-2009 17:58
. Reden: Verduidelijkt enzo ]