Notinlist - hoe nieuw record aanmaken

  • Onderwerp starter Onderwerp starter jhdw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

jhdw

Gebruiker
Lid geworden
15 dec 2012
Berichten
166
Goedemiddag Access experts,

Voor mij is dit de eerste keer dat ik een vraag stel op dit forum. Ik heb er al wat problemen door kunnen oplossen.
Nu ben ik bezig met een database (Access 2010) waar ik in vast loop.
Ik beb een formulier "frm_nieuw" waar ik een probleem mee heb. Er staan 3 velden op die gevuld moeten worden.
Het eerste veld "merk" verschijnt direct. Als ik daar iets invul, dat niet in de lijst staat, dan kan ik dat voor elkaar krijgen.
Maar in het volgende veld "groep" lukt mij dat niet en het daarop volgende veld "model" geeft hetzelfde probleem.
Ik heb geen idee hoe ik dit kan oplossen. Voor de duidelijkheid doe ik er een gestripte versie bij.

Voor experts zal dit gesneden koek zijn, niet voor mij dus.

Alvast bedankt voor de moeite die jullie willen nemen.

Groetjes
Jan
 

Bijlagen

Allereerst welkom bij het forum!

Allereerst maar een foutje uit je formulier verhelpen:
Je hebt voor de keuzelijst Groep deze query als Rijbron:
Code:
SELECT tbl_groep.Groep, tbl_merk.Merk, tbl_groep.Merk_ID, tbl_groep.Groep_ID FROM tbl_merk INNER JOIN tbl_groep ON (tbl_merk.Merk_ID = tbl_groep.Merk_ID) AND (tbl_merk.Merk_ID = tbl_groep.Merk_ID) WHERE (((tbl_merk.Merk)=[Formulieren]![frm_nieuw]![kzl_merk])) ORDER BY tbl_merk.Merk;
Hoe fout hij ook is, je hebt hem zo nodig omdat je in je keuzelijst Merk de verkeerde waarde opslaat: namelijk de Merknaam. En niet de MerkID. En daar gaat het al fout: in een keuzelijst sla je altijd het Sleutelveld op. En dat is MerkID. Bovendien is dat veld ook gekoppeld aan de volgende tabel. Met die aanpassing ziet je keuzelijst er zo uit:
Code:
SELECT Groep, Merk_ID, Groep_ID FROM tbl_groep WHERE (Merk_ID=[Formulieren]![frm_nieuw]![kzl_merk]);
Zoals je ziet, is de tabel Merk niet meer nodig.
Wat bij Merk nog wel lukt (nieuw record toevoegen) zou nu niet lukken bij Groep, omdat daar een andere structuur nodig is.
En daar maak je volgens mij een tweede fout: de tabel [Groep] zit helemaal verkeerd. Die heb je nu tussen Model en Merk gekoppeld, maar dat is dus verkeerd (in ieder geval in mijn optiek). Groep gebruik je volgens mij om aan te geven of een model een Auto is, of een Fiets. Groep is dus afhankelijk van het model, en verder niks. Een model is een auto, of een model is een fiets. En meer smaken heb je niet.
Kijken we naar de tabel [Model], dan is ModelID daar de sleutel. Een model bevat een Merk (koppeling met Merk) en een Soort (koppeling met Groep). Verder zou ik van een model een versie vastleggen, en eventueel het jaar waarin dat uitkomt. Van de Golf zijn we nu bezig met versie 7, maar het ding heet nog steeds Golf. Toch zitten er onderdelen in die echt niet meer in het oermodel passen.
En daar gaat het volgende manco: de koppeling met [Onderdelen]. Hierin leg je een koppeling met ModelID, zodat je weet in welk model een onderdeel thuishoort. Het sleutelveld hier is dan OnderdeelID.
 
Ik heb je tabel zoveel als mogelijk aangepast, en bij Model een <Bij niet in lijst> gemaakt. Die werkt overigens bijna hetzelfde als de Merk keuzelijst, al moet je nu meer waarden opslaan.
 

Bijlagen

Goedemiddag Michel,

Bedankt voor de snelle reactie en de tijd die je al in het probleem gestoken hebt. Het is me wel duidelijk geworden dat ik met de relaties op het verkeerde spoor zat. Ik ben er echter nog niet uit hoe je in het formulier "frm_nieuw" een nieuwe groep kunt toevoegen, nadat je een merk gekozen hebt.
Zou je daar ook nog even naar willen kijken?

Alvast bedankt

Mvg
Jan
 
Dat doe je op dezelfde manier als bij Merk. Daarom heb ik dat voorbeeldje niet gemaakt. Al heeft dat niet zo heel veel zin, omdat de Modellen worden gefilterd op basis van Merk en Groep. Dus als een groep niet bestaat, is het onmogelijk om een model te hebben dat in die groep zit.
Een keuzelijst waarin je groepen toevoegt heeft dus alleen zin op een formulier waarin je nieuwe modellen toevoegt. In dat proces kies je een Merk, en een Groep. Als je dus een model hebt voor een niet-bestaande groep, dan kun je op zo'n moment een nieuwe groep aanmaken.
 
Hallo Michel,

Bedankt, ik kom er echter nog niet helemaal uit.
Ik heb al een tijdje zitten knutselen met een nieuw formulier "frm_nw_model". Het probleem zit 'm in het aanmaken /toevoegen van een nieuwe groep. Als je merk gekozen hebt, dan zie je in het volgende veld evt. de modellen waar nog geen groep voor aangemaakt is (een model zit maar in één groep). Daar kan ik al wel een nieuw model toevoegen. In het volgende veld kan ik het niet voor elkaar krijgen om een nieuwe groep aan te maken.

Zou je nog eens willen kijken waarom dat niet lukt.

Alvast bedankt

Groetjes
Jan
 

Bijlagen

Hallo Michel,

Ik had de database even in de kast gezet om er vanmorgen weer mee verder te gaan. Dat is maar goed ook want ik heb het probleem nog eens goed bekeken en gezien wat ik verkeerd deed. In de keuzelijst "groep" had ik nog de relatie met het merk staan en dat kon natuurlijk niet. Het antwoord van jou nog eens goed gelezen heeft ook goed geholpen!

In ieder geval bedankt voor de hulp en voor allen prettige kerstdagen en een voorspoedig (access) nieuwjaar.

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