Avatar billede claus_sa Nybegynder
17. maj 2010 - 14:51 Der er 4 kommentarer

Felt afhængigt af andet felt...

Hej.
Ved ikke hvad jeg skal søge på for at se om dette spørgsmål tidligere er blevet stillet. Så here goes.

Forestil jer en database over fx. en bildatabase. Den skal indeholde oplysninger om en person, og hvilken bil han ejer. Databasen skal i forvejen have alle mærker og modeller indbygget, således man skal ind og finde bilen på nogle lister, hver gang man taster en ny person ind.

Jeg har én tabel der indeholder oplysninger på personen. Altså et ID (primær nøgle), navn, tlfnr. osv.

Vi går ud fra at hver person kun kan eje én bil, og derfor vil persontabellen også indeholde et felt med bilmærke og et felt med bilmodel.

Jeg har herefter en tabel for hhv. bilmærker og bilmodel.

Opsummeret og simplificeret:

Persontabel: personID (nøgle), Navn, Mærke, Model
Mærketabel: mærkeID (nøgle), Mærkenavn
Modeltabel: modelID (nøgle), Modelnavn, mærkeID (bruger jeg til at knytte mærket til netop denne model).

Mit spørgsmål er:

Når jeg indtaster en ny bruger (enten i formular eller direkte i tabellen), så skriver jeg Navn (ID er autonum..), og så vælger jeg mærket på en liste. Fx. Toyota. Når jeg så skal vælge hvilken model personen ejer, vil jeg gerne have at det kun er Toyotas modeller jeg kan vælge. Altså avensis, osv. Jeg vil altså gerne undgå at ting som 320i, 306, Punto, 911, osv, kommer frem som muligheder i model-kolonnen, når jeg vælger Toyota. De skal kun komme frem når jeg vælger hhv. BMW, Peugeot, Fiat, Porsche osv i mærke-kolonnen. Giver spørgsmålet mening og kan I hjælpe mig? :-)

Vh Claus
Avatar billede Slettet bruger
17. maj 2010 - 16:21 #1
Ja - spørgsmålet giver fint mening - det er sådan det skal laves - sådan næsten: Et godt design princip er ikke at gemme redudant data - drop mærke i persontabel
Avatar billede claus_sa Nybegynder
19. maj 2010 - 09:18 #2
Ja, det havde jeg også tænkt at gøre, men jeg tænkte at jeg gerne ville have mulighed for at indtaste bilmærke og bilmodel, også hvis jeg valgte at indtaste direkte i tabellen, og ikke via en formular. Men det er nok forkert tankegang, så jeg æder at indtastning skal ske via formular, og har derfor lavet designet som du foreslår. Det ændrer dog ikke min problemstilling:

Hvordan gør jeg sådan i en formular, at jeg KUN kan vælge bilmodeller ud fra det bilmærke jeg har valgt lige inden. Det skal altså være kategorisk umuligt eksempelvis at indtaste vælge "Punto" som model, hvis har valgt alt andet end FIAT under mærke. Selvom jeg synes jeg kobler id´erne på kryds og tværs osv, så kan jeg uden problem vælge alle modeller, fx "Punto" som model, selvom jeg vælger BMW i mærke.

Hjælp! :-)
Avatar billede Slettet bruger
20. maj 2010 - 12:33 #3
Prøv at google "cascading comboboxes"
Avatar billede andera Novice
09. juni 2010 - 14:32 #4
Lav en combo boks på Mærketabellen og en på Modeltabellen.

Ret i selecten på Modeltabel-comboen så MærkeID indgår i Where
clausen.

Det er nok nødvendigt at on change i Mærketabelcomboen indeholder en me.refresh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester