Avatar billede PEMJO Nybegynder
26. januar 2011 - 10:18 Der er 9 kommentarer og
1 løsning

Formular : valgmulighed i et felt afhængigt af valgt værdi i et andet felt

Jeg har en formular, hvor jeg i 2 felter skal foretage listevalg, dels for at vælge forvaltning (felt 1) og dels for at vælge afdeling (felt 2).

Jeg vil gerne begrænse valgmulighederne i felt 2 ud fra mit valg i felt 1, forstået på den måde at jeg i felt 2 kun kan vælge blandt de afdelinger, der findes i den forvaltning, som jeg har valgt i felt 1. - HVORDAN GØR MAN DET ?

Windows 7
Access 2007
Avatar billede fdata Forsker
26. januar 2011 - 18:39 #1
Så lægger du en smule kode i AfterUpdate hændelsen for den første dropdown:

Private Sub Drop1_AfterUpdate()
  Me.Drop2.RowSource = "SELECT DinTabel.Felt1, DinTabel.Felt2 FROM DinTabel WHERE Afdeling=" & Me.Drop1.Value & ";"
End Sub

(ret selv control- og feltnavne)
Avatar billede PEMJO Nybegynder
31. januar 2011 - 15:21 #2
Hej fdata

Mange tak for svaret - som jeg har bøvlet noget med - uden at få det til at virke.

Her er koden - i den tilrettede form - som jeg har sat ind som en updatehændelse på det første dropdown-felt i formularen:

Private Sub Forvaltning_Stab_AfterUpdate()
  Me.Afdeling_Kompetencecenter.RowSource = "SELECT FD_Forvaltning_Afdeling.Forvaltning, FD_Forvaltning_Afdeling.Afdeling FROM FD_Forvaltning_Afdeling WHERE Forvaltning= " & Me.Forvaltning_Stab.Value & ";"
End Sub

Når jeg har indtastet/valgt en værdi i felt1(Forvaltning_Stab)og placerer cursoren i Felt2(Afdeling_Kompetencecenter), så får jeg fejlmeddelelsen: "Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "Forvaltning=Arbejdsmarked og Voksen"." - og jeg ser ingen liste med afdelinger ?? - Hvad gør jeg forkert ???

Det skulle egentlig også gerne virke tilsvarende, når der opdateres direkte i tabellen eller forespørgselen, som formularen trækker på. - Er det muligt ???
Avatar billede fdata Forsker
31. januar 2011 - 21:41 #3
Hm. Dine Forvaltning_Stab værdier er tilsyneladende tekststrenge. Så skal du have nogle apostroffer med:
  ... WHERE Afdeling='" & Me.Drop1.Value & "';"
(det er lidt svært at se; men der er en apostrof efter lighedstegnet og før semikolonet)

Din afsluttende kommentar er jeg ikke helt med på. Dropdowns og AfterUpdate hændelser er fænomener på formularer. Prøv lige at forklare, hvad det er du forestiller dig, "når der opdateres direkte i tabellen".
Avatar billede PEMJO Nybegynder
01. februar 2011 - 09:01 #4
Fantastisk fdata ! - 1000 tak for hjælpen. Et par apostrofer rigtigt placeret gjorde underværker. Nu fungerer det betingede listevalg i min formular.

Syntaksen blev således :

Private Sub Forvaltning_Stab_AfterUpdate()
  Me.Afdeling_Kompetencecenter.RowSource = "SELECT FD_Forvaltning_Afdeling.Afdeling, FD_Forvaltning_Afdeling.Forvaltning FROM FD_Forvaltning_Afdeling WHERE Forvaltning= '" & Me.Forvaltning_Stab.Value & "';"
End Sub

Tillægsspørgsmålet: - Er det muligt at lave tilsvarende på den tabel/forespørgsel, som formularen trækker på. Det jeg mener er, at i forespørgselen kan jeg indtaste direkte, og der har jeg de samme felter (Forvaltning, Afdeling)med liste valg,og her er det begge steder de fulde lister, som man kan vælge værdier i. - er det overhovedet muligt, i forespørgselen, at lade valget af afdeling, afhænge af den valgte værdi i feltet Forvaltning ? - eller er det udelukkende en mulighed, som man får gennem en formular ?
Avatar billede fdata Forsker
01. februar 2011 - 20:17 #5
Desværre skal du bruge en formular. Du kan ikke lægge kode på samme måde i en forespørgsel.
Avatar billede PEMJO Nybegynder
02. februar 2011 - 08:56 #6
OK. - Mit problem blev løst, og jeg lærte noget nyt. - Mange tak for hjælpen til fdata !
Avatar billede fdata Forsker
02. februar 2011 - 19:18 #7
Velbekomme - og tak for point ;o)
Avatar billede PEMJO Nybegynder
15. februar 2011 - 13:25 #8
Hej

En opfølgning til mit spørgsmål angående "valgmulighed i et felt afhængigt af valgt værdi i et andet felt"

Tabellen med forvaltninger og afdelinger er sorteret efter Forvaltning (s) og Afdelinger (s), og når der i Afdelingsfeltet i formularen åbnes for listen med de mulige valg af afdeling (uden først at have valgt forvaltning), så vises afdelinger sorteret korrekt efter forvaltning og afdeling.
Når der først er valgt forvaltning, så vises den delmængde af afdelinger der findes i den pågældende forvaltning; men sorteringen er røget ??

Kan der sættes noget kode ind, så afdelingerne kommer i alfabetisk rækkefølge
Avatar billede fdata Forsker
15. februar 2011 - 20:02 #9
Yep. Du skal bare tilføje
ORDER BY Felt1,Felt2,...

Altså noget i stil med:
Me.Afdeling_Kompetencecenter.RowSource = "SELECT FD_Forvaltning_Afdeling.Afdeling, FD_Forvaltning_Afdeling.Forvaltning FROM FD_Forvaltning_Afdeling WHERE Forvaltning= '" & Me.Forvaltning_Stab.Value & "' ORDER BY FD_Forvaltning_Afdeling.Forvaltning, FD_Forvaltning_Afdeling.Afdeling;"
Avatar billede PEMJO Nybegynder
16. februar 2011 - 09:06 #10
Tak igen fdata

Det kører bare. - Havde forsøgt med en ORDER BY; men fik problemer med syntaksen - kløjs simpelthen i plinger og dobbeltplinger .
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