26. februar 2002 - 17:53Der er
6 kommentarer og 1 løsning
Filtrere via underformular
Jeg har en db med en hovedformular, som indeholder navn, adresse m.v. Heri er en underformular med et dataark, som viser forskellige kategorier, vedkommende er tilknyttet, forskellige udvalg o.lign.
Jeg ville gerne kunne filtrere hovedformularerne på basis af data i underformularen. Eksempelvis filtrer alle som har indtastet "bestyrelse" i deres underformular. Men der sker ingenting, når jeg søger eller filtrer i felterne på underformularen. Hvordan gør jeg?
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
If you filter on a field in the sub form then you STILL have all records on the main form but the sub form only shows the records meting the criteria you enter. IN other words if the first record on the main form has NO records on th esub form meeting th ecriteria then the first record will be visible in the main form but NO sub records wil lbe shown
Jeg har tidligere leget lidt med problemet. Jeg kom frem til at man kunne lægge følgende kode på underformularens "AnvendFilter"-hændelse:
Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer) Dim SQLStr As String SQLStr = "PersonID In (Select PersonID From Persontabel Where " & Me.Filter & ")" If Me.FilterOn And Me.Filter <> "" Then Me.Parent.Filter = SQLStr Me.Parent.FilterOn = True Else Me.Parent.FilterOn = False End If Me.FilterOn = False End Sub
PersonID og Persontabel skal selvfølgelig udskiftes med de respektive feltnavne og tabelnavne.
Tak til Terry, men det var ikke så meget et svar, men blot en anden beskrivelse af min problemstilling.
Thomas: jeg tror du har fanget mit problem. Men dit forslag virker ikke. Det er muligt, det er mig, som gør noget galt. Umiddelbart ville jeg tro koden skulle lægges på underformularen, når jeg markerer den i hovedformularens designvisning. Men da har jeg kun to hændelelsesmuligheder: ved indgang og ved udgang. Jeg har forsøgt mig med at lægge hele koden fra "Private Sub...." ind alligevel, men det virker ikke. Så har jeg forsøgt at lægge den ind i VedAnvendFilter-hændelsen i designvisning i direkte i den formular, jeg så senere benytter som underformular. Men det virker heller ikke. Jeg tænkte at jeg måske gør noget forkert i forhold til feltnavn og tabelnavne. Som personID har jeg forsøgt med både navnet på tekstboksen i hovedformularen og med feltnavnet i den underliggende forespørgsel til hovedformularen. Som Persontabel har jeg benyttet navnet på den underliggende forespørgsel til hovedformularen. Er det mon korrekt?
Når jeg forsøger at filtrere efter underformularen, får jeg følgende linie higlightet i debuggeren: Me.Parent.Filter = SQLStr Men den synes jeg ikke, der kan være noget galt i? mvh Lars
You say "Men der sker ingenting, når jeg søger eller filtrer i felterne på underformularen" but something DOES happen! and that is what I explain in my answer. Thomas's answer should work, but you will now see ALL the main forms records which meet the criteria BUT you will see ALL sub form records for each of these!
You have to open the SUB form indesign view to see its events!
Om jeg kunne få Thomas' model til at virke, så det viste alle hovedformularerne, som hver især igen viser alle deres respektive records i underformularen - sådan som Terry siger, Thomas' svar skulle gøre - så ville det være præcist hvad jeg gik efter. Men det er ikke lykkedes mig at få det til at virke, desværre. Nu har jeg i stedet lavet en forespørgsel byggende på de 3 tabeller som ligger til grund for hovedformular og underformular. Og så har jeg oprettet en kombinationsboks, som har den funktion, at den åbner denne forespørgsel med et udvalg poster baseret på kombinationsboksens indhold. Det opfylder de fleste af mine behov. Men det ville have været en fordel, om jeg ikke skulle åbne en ny forespørgsel, men blot kunne filtrere efter denne, så jeg beholdt min hovedformular med alle data tilgængelige for de poster jeg nu havde filtreret ud. Kan jeg omdanne min forespørgsel til et filter mon? Lars
Degnens->dukan evt prøve at sende databasen til mig, da det lyder som om du kan have lidt problemer med felter og placering af kode. Hvis du giver mig din email-adresse, kan jeg også prøve at sende dig et eksempel?
Jeg har forsøgt de forskellige forslag uden at det kom til at virke. Jeg har nu valgt en anden mindre fleksibel løsning, vi kan leve med et stykke tid. Vi er i en proces med at udarbejde en ny database helt fra bunden, hvor jeg vil se om jeg kan undvære funktionen. Derfor har jeg p.t. opgivet at få det til at virke, og lukker derfor spøgsmålet.
Tak for forsøget på at hjælpe, jeg er ked af, at det ikke virkede. Måske skyldes det, at jeg ikke har kunnet forklare problemet tilstrækkelig tydeligt.
Kærlig hilsen Lars
Synes godt om
Ny brugerNybegynder
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.