24. april 2005 - 20:51Der er
7 kommentarer og 1 løsning
Kombineret filtrering af felter fra Hovedformular og Underformula
Hej..
Jeg har en hovedformular, hvor der befinder sig en underformular. Jeg har i underformularen et felt der hedder [VBilID]. Jeg kunne nu godt tænke mig at lave en filtrering, som foregår ved at jeg vælger det [VBilID] fra underformularen som jeg ønsker, og samtidigt vælger et eller flere felter fra hovedformularen. Mit resultat af filtreringen skal efterfølgende KUN være de Hovedformular-poster, som matcher de kriterier der er angivet i både hoved- og underformular.
Er der nogen som har et godt bud på hvordan dette løses?
Når jeg indsætter de ting jeg har, kommer min SQL til at se således ud:
tblVBil.Felt1 = 'X' And Læs.felt2 = 'Y' And tblVBil.VRmTrNo in (Select RmTrNo From Læs Where Læs.Felt3 = 'Z')
Men hvad med Felt1, Felt2 og Felt3 (og vel også X, Y og Z)?. Da det kan være meget forskelligt hvilke felter fra hovedformularen der bliver filtreret efter, så kan jeg jo ikke rigtigt sætte nogle specifikke navne på dem.
Jeg er ikke helt vildt dygtig til det her med at opbygge SQL og den slags, så skal nok have skåret det lidt ud i pap :)
Der er en lille fejl med felt2. Den skal også komme fra tblVBil:
tblVBil.Felt1 = 'X' And tblVBil.felt2 = 'Y' And tblVBil.VRmTrNo in (Select RmTrNo From Læs Where Læs.Felt3 = 'Z')
Således kommer det fra underformularen inde i parentesen.
Mht at styre det dynamisk, så er det et spørgsmål om at gå hvert kriterie-felt gennem og opbygge SQL'en del for del:
If not isnull(søgFelt1) then 'tekstfelt SQLStr = SQLStr & "Felt1 = '" & ME!søgFelt1 & "' And " endif
If not isnull(søgFelt2) then 'talfelt SQLStr = SQLStr & "Felt2 = " & ME!søgFelt2 & " And " endif
If not isnull(søgFelt3) then 'talfelt i subformen SQLStr = SQLStr & "VRmTrNo in (Select VRmTrNo From Læs Where Felt3 = " & ME!søgFelt3 & ") And " endif
'...
SQLStr = Left(SQLStr, Len(SQLStr)-5) 'Fjern det ekstra " And " i slutningen af strengen
Okay, jeg er nogen lunde med på hvor du vil hen. Jeg skal altså lave et stykke kode, som indeholder alle de nødvendige felter, angivet ud fra ovenstående, og hvor søgFelt1, søgFelt2 eller søgFelt3 er navnene på de felter som skal medtages. Når jeg udløser dette her stykke kode, hvad vil der så ske? fordi jeg er ikke helt klar over om det skal lægge på en kommandoknap eller om det skal være på en bestemt hændelse. Jeg er nemlig ikke helt med på, hvornår jeg fortæller den hvad de forskellige søgFelt1 skal være 12, hvis det nu var det jeg ønskede?
Jeg har simpelthen opgivet denne mulighed, da jeg kan se at den er alt alt for avanceret for mig, og den kommer til at tage mig for mange timer at få sat op.
Mange tak for den forsøgte hjælp, troede bare der var en nemmere 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.