Avatar billede iballan Praktikant
01. april 2009 - 09:33 Der er 18 kommentarer og
1 løsning

Filter på underformular

Hej

Jeg kan ikke få Makeiteasy's dynamiske søgestreng til at virke.

Jeg har en formular som indeholder to underformularer. Jeg vil gerne have mulighed for at filtrere begge underformularer på en gang. Kan i hjælpe mig?

http://www.morten-s.dk/filter_i_underformular.mdb
Avatar billede mugs Novice
01. april 2009 - 13:16 #1
Du behøver ikke at gå så vidt som til MakeITeasy udmærkede funktion. Du kan nøjes med denne, som er afprøvet og fungerer:

Private Sub Kommandoknap12_Click()
Me.Event08.Form.Filter = "Nummer =  " & Tekst4 & ""
Me.Event08.Form.FilterOn = True

Me.Event09.Form.Filter = "Nummer =  " & Tekst4 & ""
Me.Event09.Form.FilterOn = True
End Sub
Avatar billede iballan Praktikant
01. april 2009 - 16:56 #2
Perfekt tak
Avatar billede mugs Novice
01. april 2009 - 17:02 #3
Selv tak - Og tak for point.
Avatar billede iballan Praktikant
01. april 2009 - 18:48 #4
Det kan godt være at jeg var lidt for hurtigt alligevel.

Hvordan nulstiller jeg filteret igen hvis jeg sletter teksten i mit felt.

Har prøvet med sådan noget her:

If søgNummer Like "*0" Then

Me.Sidste_aar_regnearksmodel.Form.Filter = "Nummer =  " & søgNummer & ""
Me.Sidste_aar_regnearksmodel.Form.FilterOn = False

Me.Dette_aar_regnearksmodel.Form.Filter = "Nummer =  " & søgNummer & ""
Me.Dette_aar_regnearksmodel.Form.FilterOn = False


Else

Me.Sidste_aar_regnearksmodel.Form.Filter = "Nummer =  " & søgNummer & ""
Me.Sidste_aar_regnearksmodel.Form.FilterOn = True

Me.Dette_aar_regnearksmodel.Form.Filter = "Nummer =  " & søgNummer & ""
Me.Dette_aar_regnearksmodel.Form.FilterOn = True

End If

Men den nulstiller kun filteret  i formularen "Sidste_aar_regnearksmodel"
Avatar billede mugs Novice
01. april 2009 - 19:08 #5
Ikke afprøvet:

If IsNull(Me.Tekst4) Then
Me.Event08.Form.FilterOn = False
Me.Event09.Form.FilterOn = False
End If

Husk at 0 er tallet 0, medens udtrykket Null repræsenterer en tom streng.
Avatar billede iballan Praktikant
01. april 2009 - 19:57 #6
Den opdaterer igen kun den første form = Event08
Avatar billede iballan Praktikant
01. april 2009 - 19:58 #7
Det ser i øvrigt sådan ud:
Private Sub Tekst4_AfterUpdate()
If IsNull(Me.Tekst4) Then
Me.Event08.Form.FilterOn = False
Me.Event09.Form.FilterOn = False

Else


Me.Event08.Form.Filter = "Nummer =  " & Tekst4 & ""
Me.Event08.Form.FilterOn = True

Me.Event09.Form.Filter = "Nummer =  " & Tekst4 & ""
Me.Event09.Form.FilterOn = True
End If
End Sub
Avatar billede mugs Novice
01. april 2009 - 20:14 #8
KIS
Prøv denne:

DoCmd.ShowAllRecords
Avatar billede mugs Novice
01. april 2009 - 20:16 #9
Du skal selvfølgelig have betingelsen med i koden:

If IsNull(Me.Tekst4) Then
DoCmd.ShowAllRecords
End If
Avatar billede iballan Praktikant
16. april 2009 - 19:38 #10
Det spiller ikke med "If IsNull(...". Problemet er efterfølgende at jeg har 8 øvrige felter jeg gerne vil filtrere på. Og det var derfor jeg ville benytte Makeiteasy's funktion. Den plejer at virke perfekt på formularer uden underformularer. Hvis jeg sletter teksten i et af mine filterfelter, vil jeg gerne have at filteret på netop dette felt bliver slettet, det gør Makeiteasy....
Avatar billede mugs Novice
16. april 2009 - 19:55 #11
Problemet er vel netop, at du bruger underformularer. En underformular er normalt bundet til parentform med et felt, og når du skifter post i parentform, vil underformularen (childform) altid vise de poster der matcher parentform.

Hvis childform ikke er bundet til parentform, er der vel ikke nogen ide med childforms. Ligeledes er der jo ikke nogen kode der fortæller childform, at den nu skal filtrere på noget andet.

Er der ikke en anden option end childforms du kan bruge?
Avatar billede iballan Praktikant
16. april 2009 - 21:38 #12
Jeg er bare nødt til at have begge lister på samme skærmbillede og kunne lave det samme filter på begge forms. Jeg sidder og prøver at ændre SQL dataen med VBA, men den opdaterer ikke mine subforms før jeg har åbnet og lukket formularen.
Avatar billede mugs Novice
16. april 2009 - 21:50 #13
Kan du ikke køre en refresh på dine underformularer? Jeg har ikke Access på denne maskine, så jeg kan ikke afprøve det, men noget i denne stil:

Me.Navnet på din subform.Refresh
Avatar billede iballan Praktikant
17. april 2009 - 03:25 #14
Nej det kan jeg ikke, har også forsøgt det tidligere, har også forsøgt med noget requery.
Avatar billede mugs Novice
17. april 2009 - 10:09 #15
Det kan lade sig gøre, at filtrere en underformular efter Parentform. I dette eksempel har du feltet kundeemne på parentform og lkigeledes på childform:

Private Sub Kommandoknap31_Click()
Me!subform.Form.filter = "kundeemne =  '" & kundeemne & "'"
Me!subform.Form.FilterOn = True
End Sub
Avatar billede iballan Praktikant
30. april 2009 - 11:37 #16
Hej Mugs
Jeg har fået det til at virke nu. Er det muligt at få makeiteasy's funktion til at virke, da den jo også kan filtrere på flere felter samtidigt.

Når man kører makeiteasy's funktion skal man skrive "=AktiverFilter ([Form])" i Efter opdateringsfeltet, hvordan skal jeg skrive det, hvis jeg gerne vil starte funktionen i VBA?
Avatar billede mugs Novice
30. april 2009 - 12:01 #17
Nu skriver du ikke hvordan du vil have makeiteasy's funktion til at fungere.

Hvis du vil koble den sammen med din nuværende funktion tror jeg, det bliver noget rod. Hvis du vil bruge den på parentform, skal du jo have koblet childforms på med overordnede / underordnede felter.

Hvis det er en separat formular, kan jeg ikke se noget problem. Men udtrykket =AktiverFilter([form)] starter du jo netop funktionen med at kalde funktionen i søge feltets AfterUpdate event.
Avatar billede iballan Praktikant
30. april 2009 - 12:40 #18
Jeg vil med VBA lave noget a la:

=aktiverFilter([form])

Me!NavnPåSubform1.Form.Filter = Me!NavnPåMainForm.Form.Filter
Me!NavnPåSubform1.Form.FilterOn = True

Me!NavnPåSubform2.Form.Filter = Me!NavnPåMainForm.Form.Filter
Me!NavnPåSubform2.Form.FilterOn = True

Jeg vil altså aktivere filteret på min main form og efterfølgende pushe det ned på begge subforms....

Er det til at forså?
Avatar billede iballan Praktikant
30. april 2009 - 19:47 #19
Er der nogen der kan hjælpe mig med hvordan jeg skal skrive

=aktiverFilter([form])

i min VBA kode?
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