Zoekveld in een formulier krijgen

Status
Niet open voor verdere reacties.

Dicklz

Gebruiker
Lid geworden
13 mei 2014
Berichten
14
Hallo allemaal,

mijn naam is Dick en ik ben recentelijk met Access 2010 aan de gang gegaan om een database te ontwerpen voor een begraafplaats. Ik heb weinig ervaring met Access, maar heb in een grijs verleden met dBase 3 en 4 gewerkt.
Mijn probleem is het volgende: Mijn database bestaat uit twee tabellen: Een met het grafnummer en het type graf met eventueel een foto van het graf. De andere tabel bevat het grafnummer, de plaats in het graf (onder, midden of boven), de naam en overige details van de overledene. Om het eenvoudig te houden heb ik bedacht dat eerst de gegevens mbv een formulier in de eerste tabel worden ingevuld en daar met een ander formulier de tweede tabel. De voorwaarde is dat er geen gegevens kunnen worden ingevuld in tabel twee als het graf niet bestaat (dus in tabel 1 aanwezig is). Het vullen van de eerste tabel dmv een formulier is geen probleem, dat gaat vlekkeloos, het wijzigen echter niet. Dit is ook het probleem waar in bij het vullen van de tweede tabel tegenaan loop: Als het formulier geopend wordt, staat het eerste record ingevuld. Type ik een ander grafnummer in dan wordt het grafnummer in de eerste record gewijzigd en dat niet de bedoeling. Hij moet wanneer het grafnummer wordt ingevuld naar die betreffende record gaan en de gegevens van die record laten zien. Hoe kan ik dat voor elkaar krijgen. Ik heb de database bijgevoegd.

Ik hoop dat jullie mij kunnen helpen.
Alvast bedankt,


Dick


Bekijk bijlage test begraafplaats 1.rar
 
Laatst bewerkt:
Allereerst welkom bij HelpMij! Je hebt een heel verhaal, wat ik toch niet helemaal snap. Ik zie wel in je db dat je een formulier hebt gemaakt dat niet echt geschikt is voor wat je wilt. De query die je gebruikt is namelijk niet geschikt. Sowieso zou ik in jouw geval hebben gekozen voor een hoofdformulier (op basis van Graven) en een subformulier (op basis van Begraafplaats). In zo'n constructie blader je door de graven, en zie je in het subformulier de gekoppelde begraafplaatsrecords. Dat formulier wordt eigenlijk al automatisch (bijna) helemaal goed door Access gemaakt als je op basis van de tabel Graven de knop <Formulier> aanklikt in het menu <Maken>. Volgens mij heb je dan precies wat je nodig hebt.
 
Michel,

Ik heb je voorstel gevolgd en een formulier met subformulier gemaakt. Wanneer ik echter in het hoofdformulier het grafnummer wijzig en probeer iets in het subformulier in te vullen, krijg ik de boodschap: "De opgegeven wijzigingen zijn niet aangebracht in de tabel omdat daardoor dubbele waarden ontstaan in de index, primaire sleutel of relatie.
Wat doe ik fout?

Groet Dick
 
Een formulier is in beginsel (de jouwe dus ook) gebaseerd op een (of meer) tabel(len). De data die je ziet, is dus datgene wat al is ingevoerd. Standaard opent Access een formulier met het eerste record. Als je dan iets wijzigt, dan wijzig je dus de gegevens van het geselecteerde record (wat dus het eerste record zal zijn). Onderin het formulier zie je een navigatiebalk met bladerknopjes, en een getal dat aangeeft hoeveel records er zijn, en naar welk record je kijkt. Daarmee kun je bladeren.
Wat jij nu probeert, is het Autonummerveld van het eerste record te veranderen. Dat is sowieso al onmogelijk omdat autonummers gegenereerd worden door Access, maar ook niet wenselijk omdat het nummer vast al ergens aan een ander record vastzit. Om te bladeren kun je dus ofwel eigen knoppen maken (die een stuk groter zijn dan de navigatieknopjes) ofwel een zoeklijst maken waarin je zoekt.
 
Het zal waarschijnlijk worden veroorzaakt doordat ik de grafnummers geindexeerd heb zonder duplicaten. Hoe kan ik een zoeklijst in het formulier krijgen?
 
Je moet sowieso geen nieuwe waarde in een (sleutel)veld intypen, want je wilt helemaal geen waarde veranderen.
... Type ik een ander grafnummer in dan wordt het grafnummer in de eerste record gewijzigd en dat niet de bedoeling. Hij moet wanneer het grafnummer wordt ingevuld naar die betreffende record gaan ...
En dat doe je dus door een zoeklijst te gebruiken, of het Navigatievakje onderin het formulier (tekstvak tussen de knopjes) waarin je een recordnummer intypt. Maar beter is dus om met de wizard een keuzelijst met invoervak te maken. Kijk maar in bijgevoegd voorbeeld wat ik bedoel.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan