Avatar billede Tago Juniormester
11. april 2011 - 17:24 Der er 6 kommentarer og
1 løsning

Indsnævre valg ved opslag i access

Sikkert et klassisk spørgsmål men jeg er alligevel kørt sur i det.

I fiskeverdenen har man arther der deles op i familier og igen i arter
Tabel 1 Arter
Tabel 2 Familier
Tabel 3 Varianter.

Har så laver en query der merger alle tabeller så langt så godt.


art            -    familie    -  Variant
---------------------------------------------
Petrochromis    -    polydon    -  Mupulungu
Petrochromis    -    polydon    -  Nkondwe   
Petrochromis    -    macrognathus -  Kipili
Petrochromis    -    famula      -  Ikola
Simochromis    -    Diagramma    -  Ikola
Sinochromis    -   
ect

Hvis jeg under art vælger Petrochromis så skal jeg kun se: polydon,Macrognathus og famula. Og vælger jeg polydon under art så skal jeg kun kunne vælge Mupulungu og Nkondwe i min dropdownbox.

Evt eksempel db vil være at foretrække men alt hvad der kan hjælpe modtages med kyshånd.
Avatar billede kjulius Novice
12. april 2011 - 00:41 #1
Du har ikke angivet tabel-opbygningen, så jeg har gættet lidt:

Arter:
Id
Navn

Familier:
Id
Navn
ArtRefId

Varianter:
Id
Navn
ArtRefId
FamilieRefId

I så fald ville du sætte "SELECT Navn FROM Arter ORDER BY Navn" ind i første drop-down kontrols Rækkekilde feltet (RowSource).

Den næste drop-down liste skulle så udfyldes med "SELECT DISTINCT f.Navn FROM Arter AS a INNER JOIN Familier AS f ON f.ArtRefId=a.Id WHERE a.Navn='" & Me.Drop1 & "' ORDER BY f.Navn"

Den sidste drop-down listes Rækkekilde vil så være udfyldt med "SELECT DISTINCT v.Navn FROM (Arter AS a INNER JOIN Familier AS f ON f.ArtRefId=a.Id) INNER JOIN Varianter AS v ON v.ArtRefId=a.Id AND v.FamilieRefId=f.Id WHERE a.Name='" & Me.Drop1 & "' AND f.Name='" & Me.Drop2 & "' ORDER BY v.Navn"


Ovenstående er ikke testet, men skal alene opfattes som inspiration til dine egne forsøg.
Avatar billede Tago Juniormester
12. april 2011 - 18:29 #2
Jeg kommer ikke rigtig nogen vegne, men nu starter vi helt simpelt

Tabel:Slægt
SlaegtID
Slaegt

Tabel:Art
ArtID
Slaegt

Hvor [Table Art].Slaegt er koblet til nøglen [Table Slaegt].SlaegtID

Mit Join ser således ud:
SELECT DISTINCT [Table Art].Art FROM [Table Slaegt] INNER JOIN [Table Art] ON [Table Slaegt].SlaegtID=[Table Art].Slaegt;

Forhåbentlig kan jeg herefter komme videre med den næste
Avatar billede Tago Juniormester
12. april 2011 - 18:30 #3
Der skulle naturligvis have stået:

Tabel:Slaegt
SlaegtID
Slaegt
Avatar billede kjulius Novice
12. april 2011 - 22:46 #4
Jeg er lidt forvirret mht. din tabelopbygning, må jeg tilstå.

Kunne du prøve at vise, hvad hvert enkelt felt i dine tabeller indeholder, så vil det muligvis blive klart for mig.
Avatar billede kjulius Novice
13. april 2011 - 01:07 #5
Undskyld, jeg har lige efterprøvet mit forslag. Det gik ikke så godt. Det er lang tid siden jeg har beskæftiget mig med Access, så jeg skal lige tænke lidt mere over dit problem.

Det er vist det man på engelsk kalder interdependent drop-down lists, men google har ikke mange hits på det.

Måske har andre nogle løsninger?
Avatar billede Tago Juniormester
13. april 2011 - 09:40 #6
Youtube gav et svar med dit udemærkede søgeord: interdependent drop-down lists, så nu skal jeg bare have overført Point til dig.

http://www.youtube.com/watch?v=pMiJHhjzC8Y&feature=related
Avatar billede kjulius Novice
13. april 2011 - 19:00 #7
Okay, det var da dejligt, at der var noget at hente på Youtube. Ikke lige det sted, jeg ville have troet man kunne hente hjælp. Men der kan man se...
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
Kurser inden for grundlæggende programmering

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