Ik heb een probleem met een Hoofdformulier en Subformulier

Status
Niet open voor verdere reacties.

janalleman123

Gebruiker
Lid geworden
19 mei 2011
Berichten
37
Ik heb gegevens in het hoofdformulier wat de volgende gegevens bevat

Adres
Postcode
Huisnummer
Plaats
Telefoonnummer



Hieronder een Subformulier met de mensen die er wonen.

Lidid Naam Achternaam Geboortedatum etc etc


Wat access nu doet is voor elk lid een apart formulier maakt waardoor er 4 formulieren komen te staan met elke keer dezelfde waarde. Ik heb de Hoofdformulier en Subformulier gekoppeld door middel van een kenmerk die ik heb verwerkt in de Query Kenmerk: ([Postcode])+([Huisnummer])

Het ziet er zo uit.

25g5frm.png


Wat ik wil is dat het Hoofdformulier 1 record per adres opgeeft heeft maar het subformulier mag wel meerdere records weergeven.

Hoe doe ik dit?
 
In je voorbeeldje heb je 5 adressen in je hoofdformulier.
Per adres staan in je subformulier netjes alle personen op dat adres.

MS Access maakt geen aparte formulieren maar geeft per formulier het aantal records (rijen) weer.

Tardis
 
Nee, dat snap ik.

Maar, wat ik nou wil is dat het Hoofdformulier maar 1 identiek Adres mag bevatten. En niet voor elk persoon die eronder staat ook in het hoofdformulier een apart record heeft.

Ik heb gegevens in het hoofdformulier wat de volgende gegevens bevat

Adres
Postcode
Huisnummer
Plaats
Telefoonnummer
Dit moet altijd vast staan en 1 malig in de Hoofdformulier voorkomen

De personen die op het adres wonen via een subformulier mogen meer records bevatten omdat er meer leden op 1 adres kunnen wonen.

Een-op-Veel relatie


Maar Access geeft 4 records in het hoofdformulier weer voor elk lid die op het adres woont.
Ik heb vernomen dat access dit altijd automatisch doet. Maar ik wil dit niet.

Nu kan ik een aparte tabel maken met alleen de adressen

Dus

Adres Postcode Huisnummer Plaats Telefoonnummer

En hiervan een Hoofdformulier maken.

En in het tabel waarin de leden staan een sub maken.
Alleen weet ik niet precies hoe ik ze aan elkaar moet koppelen in de relaties van access omdat het geen identiek veld bevat.
 
Laatst bewerkt:
Ok, duidelijk.
Maak een query waarmee je unieke adressen ophaalt.
Baseer vervolgens je hoofdformulier op deze query.

Tardis
 
je bedoelt dat ik DISTINCTROW moet gebruiken. (UniqueValues in het eigenschappenvenster) Alleen dan werkt het nog steeds niet.

Het is een ledenadministratie

Dus
Tabel Leden:naam,tussenvoegsel,Achternaam adres postcode plaats Telefoonnummer
Betalingen Afgelopen Jaren: Lidid Postcode Huisnummer Jaar

Hoofdformulier op basis van hieronder

Query: Adres Postcode Plaats Huisnummer [Kenmerk:([Postcode]) + ([Huisnummer])

Deze velden moeten vast staan. Hoe doe ik dit als UniqueValues niet werkt?


Subformulier op basis van hieronder
Query: Naam Achternaam Postcode Huisnummer

Soort lid: IIf(Year([geboortedatum])>Year(Date())-18;"Junior";IIf(Year([geboortedatum])>Year(Date())-45;"Senior";IIf(Year([geboortedatum])>Year(Date())-60;"Donateur";IIf(Year([geboortedatum])<Year(Date())-60;"Overigen"))))

Contributiebedrag: Som(IIf([Soort Lid]="Senior";"€ 50,00";IIf([Soort Lid]="Junior";"€ 30,00";IIf([Soort Lid]="Donateur";"€ 25,00";IIf([Soort Lid]="Overigen";"€ 15,00")))))
 
Wij weten zo niet welke query je gebruikt als basis voor je hoofdformulier; ik vermoed (en Tardis ook...) dat je een query gebruikt waar teveel velden in zitten, zodat je de adressen niet uniek terugkrijgt. En dat is wel de bedoeling, want in je hoofdformulier wil je alleen het adres zien. Ik denk dat je ook de namen van de personen in die query gebruikt, en die heb je in het hoofdformulier niet nodig. DISTINCT werkt dan ook niet, omdat je records toch wel uniek zijn (de combinatie van alle velden).
 
23u7910.png

Dit is de Query die ik gebruik als basis van het hoofdformulier.
Die heb ik weer geselecteerd uit het tabel Leden.

Tenzij ik een apart tabel maak met alleen de adressen dan werkt het wel.

145o49.png


Nu heb ik nog steeds meerdere records op 1 adres.
 
Je probleem is het veld Telefoonnummer; dat is persoonsgebonden (neem ik aan; elk lid zal toch zijn eigen telefoonnummer hebben, onafhankelijk van het adres). Dus 4 verschillende telefoonnummers levert 4 verschillende records op. Neem alleen de unieke adresgegevens op, dan werkt het.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan