Afhankelijke Aanhef.

Status
Niet open voor verdere reacties.

a1mat

Gebruiker
Lid geworden
13 jul 2001
Berichten
208
Geachte Lezer.
De volgende vraag.
In een tabel en ook query heb ik de NAW gegevens staan van personen van een vereniging met afzonderlijk in een veld de aanhef: Mevr. en Dhr.
In rapporten heb ik een brief voor deze personen.
Nu wil ik graag deze brief, afhankelijk van de aanhef Mevr. of Dhr. beginnen met Geachte Mevrouw of Geachte Mijnheer gevolgd door de naam. ( Hetgeen in Word ook mogelijk is )
Mijn vraag is nu hoe moet ik dit aanpakken in Access om “Geachte Mevrouw” of “Geachte Mijnheer” voor de naam te krijgen afhankelijk van deze aanhef.
Wie kan mij hiermee op weg helpen. Ik werk met Windows XP en Access 2003.
Ik heb enige kennis van Access maar ik kan dit niet terug vinden in mijn boeken.( handboek Access 7)
Bij voorbaat mijn dank

Mathieu
 
Het kan heel simpel in een query, die je bijvoorbeeld als basis voor het rapport kunt gebruiken. Als de (rapport)brief is gebaseerd op een tabel, dan klik je in de eigenschappen van het rapport bij het tabblad Gegevens achter Recordbron op de knop met de 3 puntjes; dan wordt op basis van de tabel een query gestart. Zit er achter de recordbron al een query, dan wordt die geopend.
Vervolgens maak je een nieuw queyveld aan, met de volgende (grove) formule:

Aanhef:IIF([Geslacht]="M";"Geachte heer,""Geachte mevrouw")

Hierbij ga ik er voor het gemak maar van uit, dat er een veld Geslacht is. Als het veld niet bestaat, maar Aanhef wel, dan kun je dat uiteraard ook gebruiken. Dan moet er wel een andere naam worden verzonnen worden dan Aanhef.
Als de aanhef/geslacht ook lege waarden bevat, dan moet de formule nog worden aangepast, want in dat geval rolt er nu "Geachte mevrouw" uit.

Michel
 
Je bent me weer voor, maar dit was ook mijn gedachte...
Ook maar ff een simpel voorbeeldje gemaakt.

In het formulier kun je het rapport openen.
Het rapport wordt gevuld met query.
 

Bijlagen

M'n :cool: doet het weer...
 
Ik had t al gelezen -> in DLookup posting. :thumb:

Ach, het had toch weinig invloed op je reactie snelheid!
Toch vanaf 6 augustus zonder goede :cool:...
 
Hallo Michel en Greenery
Allereerst mijn dank voor uw reactie. Ik wil graag nog eens aangeven hoe de situatie in werkelijkheid nu is.
De basis voor mijn (rapport) brief is al reeds een query. Hierin is een veld “Aanhef”waarin via het formulier wordt aangegeven Mevr. of Dhr.
Een veld “Geslacht”is er niet. Ik kan geen nieuw query veld maken met b.v. de naam “Briefhoofd”omdat de velden afkomstig zijn van de tabellen. Of kan dat wel??
Mijn vraag: Hoe moet ik nu verder en wat is dan de nieuwe formule en waar moet ik die formule invoeren? Is dat bij criteria van het betreffende veld in de query? Dus er zijn nog wat vragen.
Ik heb ook de demo van Greenery uitgeprobeerd en daar zie ik in de query een hoeveelheid tekst.
Dat is volgens mij een stuk VBA hetgeen ik niet beheers. Als ik ook via het formulier zelf enkele namen toevoeg onder de nummers 3,4 en 5. en ik roep die dan op via Rapporten en parameter opgeven, dan is het briefhoofd niet aanwezig. Wel bij de nummers 1 en 2. Dus daar is nog iets niet juist, denk ik.
Of ik doe iets fout!
Wilt u mij nog weer eens verder helpen?
Bij voorbaat dank.

Mathieu
 
Hallo Mathieu,

Oke, ik zal het proberen duidelijk uit te leggen.

-Je opent jouw query.
-Nu na je laatste kolom op ontwerpweergave vul je een leeg veld in.
-Hier vul je het volgende in:
Code:
Briefhoofd:IIF([Aanhef]="Dhr.";"Geachte heer,""Geachte mevrouw")

Let wel: de formule vul je dus niet in bij criteria, maar bij veld.
Ow ja, het vinkje aanzetten anders wordt ie niet weergegeven.

Als je nu de query runt, zul je zien dat er bij Briefhoofd Geachte heer of mevrouw staat afhankelijk van Aanhef.
Dit veld Briefhoofd kun je dus uit je query halen voor je rapport en dus niet uit je tabel.
Zie voorbeeld.

-Volgende vraag - query VBA:
Ik heb in het voorbeeld geen gebruik gemaakt van VBA in een query.
Er staat bij criteria: [Forms]![FormNamen]![Id]
Dit betekend kortweg: op rapport info tonen waar Id van tabel gelijk aan Id in formulier.
Achter de knoppen zit overigens wel VBA code.

-Contact vraag:
Het klopt inderdaad dat voor 3,4 en 5 geen klantcontact info is aangemaakt. Als je de tabel Contact had bekeken, zou je daar alleen 1 en 2 in terug vinden. Ik had alleen niet de moeite genomen om een formulier voor contact aan te maken etc. En ik hoopte ook dat je dit zou begrijpen. Maar je hebt blijkbaar nog wat te lezen in je boek. ;)

Voor nu vergeet maar wat ik gemaakt heb.
Tip: Bekijk ook wat websites met uitleg over Access, er staan genoeg websites hiervoor op dit forum.
 

Bijlagen

Laatst bewerkt:
Hallo Greenery 80

Ik heb uitgevoerd zoals in uw tekst beschreven en het werkt prima.
Hartelijk dank voor de duidelijke uitleg.

Veel groetjes Mathieu.
 
Ik zal deze maal niet tutoyeren, is wel zo beleefd.

Zoals u wel kunt lezen, ben ik druk geweest met de duidelijke uitleg. Ik ben blij dat het u ook is opgevallen!

Tevens ben ik natuurlijk ook blij dat het u gelukt is. :thumb:
En ik zag dat u de vraag al op opgelost heeft gezet, dus alleen maar complimenten van mijn kant!
 
Afhankelijke Aanhef

Hallo Greenery80

Graag wil ik nog eens terug komen op uw oplossing, zoals in deze rubriek. Ik heb dit toegepast en ik plaats de achternaam aansluitend aan de langste aanhef (Geachte mevrouw).Dit houdt echter in dat tussen“Geachte heer” en achternaam een langere spatie ontstaat, wat niet mooi is en tevens zou ik achter de achternaam graag een komma hebben zoals dit in een officiële brief gebruikelijk is.
Is dit mogelijk met een nieuwe Trim formule om dit geheel mooi aansluitend achter elkaar te krijgen met komma.
Mijn kennis gaat niet zo ver dit voor elkaar te krijgen en daarom wil ik graag nog eens een beroep doen op uw hulp.

Bij voorbaat mijn dank

Mathieu
 
Waarschijnlijk heb je een apart tekstvak voor het briefhoofd gemaakt met de formule van Greenery en een apart tekstvak er naast gezet voor de achternaam.
Als dat zo is, werkt de Trim functie niet, omdat de waarden van het veld Achternaam toch al links zullen zijn uitgelijnd. De lengte van het veld Briefhoofd bepaalt dus de plaats van het tekstvak.
Er is wel een oplossing: alle naamvelden in één tekstvak zetten, dat je dan uiteraard nog steeds Briefhoofd kunt noemen. Dat ziet er dan ongeveer zo uit:

Briefhoofd:IIF([Aanhef]="Dhr.";"Geachte heer";"Geachte mevrouw") & " " & [Tussenvoegsel]+" " & [Achternaam] & ","

Hierbij ga ik er in het voorbeeld van uit, dat er een apart veld is voor tussenvoegsels. Dat hoeft uiteraard niet, je kunt de achternaam ook volledig in één naamveld opnemen, alleen sorteert dat m.i. wat minder prettig. Vandaar dat ik zelf tussenvoegsels altijd apart opsla.

Ik ga daar wat dieper op in, omdat tussenvoegsels (uiteraard) leeg kunnen zijn, en je normaal gesproken dan twee spaties tussen de aanhef en de naam zou kunnen krijgen als je spaties tussenvoegt met de Ampersand, zoals hier:

& " " & [Tussenvoegsel] &" " &

De volgende constructie met een Plus-teken negeert de tweede spatie, als het veld Tussenvoegsel leeg is:

& " " & [Tussenvoegsel] +" " &

De hele constructie kan dus zo in een tekstvak, en alles ziet er uit zoals het hoort.
 
Afhankelijke Aanhef

Hallo Michel
Dank je wel voor de snelle reactie.
Wegens afwezigheid morgen, ga ik het woensdag uitproberen.
Dan laat ik horen of het lukt.

Groetjes Mathieu
 
Afhankelijke Aanhef

Hallo Michel
Het werkt prima.
Mijn dank

Groetjes Mathieu.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan