Probleem met relaties?

Status
Niet open voor verdere reacties.

RANG3D

Gebruiker
Lid geworden
3 jan 2016
Berichten
11
Hallo,

Ik ben nieuw met Access en probeer mezelf via het net wat aan te leren.
Ik weet niet of dat dit de juiste categorie is om dit op te vragen.

Probleem:
Ik heb een tabel 'Klanten' en een tabel 'Notities'.
In de tabel 'Klanten' zit enkel KlantID, Naam, Voornaam, ...
In de tabel 'Notities' zit NotitieID, Datum, Notitie.

Ik wil een formulier maken met de klant en zijn verdere gegevens en op dat formulier een subformulier met de notitie en datum van de notitie.
Al de voorgaande notities zouden zichtbaar moeten zijn als ik de klant open en ik zou ook telkens een nieuwe notitie moeten kunnen toevoegen.

Ik heb dit geprobeerd maar ik denk dat er een fout zit in de relatie tussen de 2 tabellen.
Moet er hier nog een tabel tussen?
Is mijn redenering hier fout?
Een klant kan meerdere notities hebben, toch?

Alvast bedankt voor de hulp! :)
 
Zo te zien vergeet je een veld in de tabel Notities. Daar moet namelijk en veld KantID in, anders kan je de 2 tabellen niet koppelen. Hiermee is ook je probleem opgelost.
Lees de Access cursus in de Handleidingen sectie er eens op na, waarin de techniek wordt uitgelegd.
 
Hallo OctaFish,

Bedankt voor je antwoord, maar ik doe blijkbaar nog iets verkeerd.
Ik heb een formulier "Notitie" (het subformulier) is ook een doorlopend formuliertje, hier stop ik dan mijn NotitieID, datum, notitie en KlantId veldjes in.
Dan het volgende formulier is "NotitieToevoegen", hierop komt het subformulier "Notitie" te staan en staan bovenaan de gegevens van de klant.

Als ik mijn klant kies, en een notitie toevoeg in het subformulier, zie ik in mijn tabel Notitie de klantID niet verschijnen van die klant.
De relatie staat nu wel juist. Moet de KlantID in de tabel Notities een speciaal soort van veld zijn of is korte tekst goed?

Alvast bedankt!
 
Ik snap je niet; normaal gesproken, en je vraag impliceert dat ook, maak je een (enkelvoudig) formulier op basis van Klanten en een doorlopend formulier Nototies op basis van een koppeling met het veld KlantID.
Ik wil een formulier maken met de klant en zijn verdere gegevens en op dat formulier een subformulier met de notitie en datum van de notitie.
Zou perfect moeten werken. Maar jij hebt het nu ineens over een doorlopend subformulier Notities met daarop weer een subformulier?
 
Laatst bewerkt:
Hallo OctaFish,

Sorry voor het late antwoord.
Bedankt voor de reactie.

Dus het zit zo:

Ik heb een formulier gemaakt op basis van de tabel Klanten (frmKlant), en ik heb een tweede formulier gemaakt op basis van de tabel Notities (frmNotities). Dit tweede formulier is een doorlopend formulier.
Het formulier op basis van de tabel Notities zou ik als subformulier willen zetten op het formulier op basis van de tabel Klanten.

Zo wil ik dan bij "Klant 1" (op frmKlant) per dag een notitie kunnen toevoegen op het subformulier (frmNotities) dat op frmKlant te zien is.

Is het misschien aan te raden hier wat screenshots van door te sturen of de database in zijn geheel?
Ik kan het niet zo heel goed uitleggen lijkt me. :confused:

Alvast hartelijk bedankt voor je reactie! :)
 
De database zelf is het handigst, want aan plaatjes kunnen we doorgaans niet zoveel zien, en in ieder geval niks knutselen. Maar wellicht hoeft dat hier niet, want de procedure die je beschrijft is behoorlijk standaard. Sterker nog: als je relaties goed liggen in het Relatievenster, en je maakt een formulier op basis van de tabel Klanten, dan zou Access al gelijk het subformulier Notities er voor je op zetten (weliswaar als tabelweergave).

Daarnaast is het net zo makkelijk om het zelf te doen, want je sleept dan in de ontwerpweergave van Klanten het formulier Notities naar de plek op Klanten waar je 'm hebben wilt, en Access zou 'm dan zelf gelijk moeten koppelen. Als dat niet gebeurt, dan is er iets niet helemaal in orde met de Relaties. In dat geval kun je de koppeling ook zelf leggen:
1. selecteer het subformulier Notities (vanuit het ontwerpvenster van Klanten)
2. open de eigenschappen van Notities en klik op het tabblad <Eigenschappen>
3. Je ziet twee koppelvelden: hoofdveld koppelen en subveld koppelen. Pak er één, maakt niet uit welke
4. Kies in het Hoofdveld het veld KlantID uit Klanten en in Subveld het veld KlantID uit Notities

That's it; nu zouden de 2 formulieren netjes gekoppeld moeten zijn en zie je bij de normale weergave bij elke klant de daarbij behorende notities. Sterker nog: omdat de formulieren gekoppeld zijn, zijn de tabellen dat ook en als je nu een nieuwe klant, of een nieuwe notitie invoert, krijg je gelijk de juiste KlantID in de tabel Notities.
 
Hey OctaFish,

Bedankt voor alweer de snelle reactie.

Ik krijg nu volgende fout, sorry voor de vele vragen:

De instelling voor de eigenschap hoofdvelden koppelen heeft volgende fout veroorzaakt: Het automatiseringsobject tblKlanten bevindt zich niet in het object.

Ik heb blijkbaar toch nog iets fouts gedaan?
Ik heb netjes jou stappen gevolgd.

Alvast bedankt voor de reactie! :)
 
Da's een vreemde; als je een formulier maakt op basis van de Klanten, dan mag je verwachten dat de tabel klanten ook aanwezig is als bron voor dat formulier. Dat heb je toch hoop ik wel gedaan?
 
Hey OctaFish,

Het is gelukt!!! :)
Dat was inderdaad de fout, ik heb de bron even overal weer opnieuw ingesteld en nu werkt alles naar behoren.

Bedankt voor al de hulp en de snelle reacties!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan