Avatar billede ds-zim Nybegynder
10. august 2000 - 14:29 Der er 18 kommentarer og
1 løsning

Apply Filter på underformular (Access2K)

Hvordan tildeler jeg et filter til en underformular ?
Filteret er defineret som flg;

Filter = Date - (Antal dage overskredet=7/14/30)

Mit problem er at dette valg bestemmes i formularhovedet, og i detaljesektionen er underformularen(dataarket), som jeg ønsker at tilføre filteret.
Jeg har prøvet docmd.selectobject men får fejlen at objektet ikke er åbent ?(!)
Avatar billede moses Praktikant
10. august 2000 - 15:02 #1
Hvis du har en hovedform, der hedder \"HovedForm\" og deri har du en Underform, der hedder ... ja rigtigt ... \"UnderForm\", så laver du følgende VBA kode i din Hovedform:

Me.Controls![UnderForm].Form.Filter = \"[FeltIUnderForm] > 1999/12/31\"
Me.Controls![UnderForm].Form.FilterOn = True

Avatar billede ds-zim Nybegynder
10. august 2000 - 15:16 #2
Hmm jeg får fejlen :
\"MS Access kan ikke finde feltet [underform] der refereres til i udtrykket\"
Det er ikke fordi jeg ikke har indsat det rigtige navn på underformularen ..
Avatar billede ds-zim Nybegynder
10. august 2000 - 15:20 #3
Æh, det var det vist alligevel *Blush*
Men det virker vist ikke helt efter hensigten, ihvertfald ser det ikke ud som om at der \"filtreres\" poster fra ..
Avatar billede moses Praktikant
10. august 2000 - 15:23 #4
Hvis du lige nøjagtig bruger mit eksempel, så er det er en ... der skal selvfølgelig stå:

#1999/12/31#
.
Avatar billede ds-zim Nybegynder
10. august 2000 - 15:31 #5
Æhh, det giver en type mismatch ?!?
Avatar billede ds-zim Nybegynder
10. august 2000 - 15:32 #6
Desuden skal det være periodebestemt !
Like,
Me.Controls![UnderForm].Form.Filter = \"[FeltIUnderForm] > Date - *
hvor * er 7 el. 14 el. 30
Avatar billede moses Praktikant
10. august 2000 - 15:34 #7
For ikke at blande forskellige problemstillinger ind i dette, så prøv lige at benytte et ganske almindeligt nummer-felt eller evt. et tekst-felt i din underform istedet for.

Husk at tekst-felter sorteres for hvert tegn:

Sorteret stigende:
\"1200\"
\"300\"
\"44
\"50000\"
\"56\"
Avatar billede ds-zim Nybegynder
10. august 2000 - 15:46 #8
Nu spiller det snart ! Der var ingen problemer med at filtrere på kundenummeret
Avatar billede moses Praktikant
10. august 2000 - 15:56 #9
DYYYGTIG !!!!!

Husk lige, at underformen \"forsvinder\", hvis den viser en enkelt form ad gangen og der ikke er nogen records tilbage efter filtreringen.

Avatar billede ds-zim Nybegynder
10. august 2000 - 16:01 #10
Æhh, nå .. Kan det være skyld i at der ingen resultater kommer ?
Jeg mener, filteret bestemmes af en valgbox(ramme) med 4 valg
Avatar billede ds-zim Nybegynder
10. august 2000 - 16:01 #11
ved filtrering på dato vel at mærke
Avatar billede ds-zim Nybegynder
10. august 2000 - 16:02 #12
Den lader til at æde den som den ser ud her;
    Me.Controls![RykkerSystem(OrdrerData)].Form.Filter = \"[Ordre Indsendt]\" < \"[Date - 7]\"
Dog har jeg poster med dato\'er mindre end 03-08-00, som ikke bliver vist ?!?
Avatar billede moses Praktikant
11. august 2000 - 08:02 #13
UPS - Den går ikke.

Nu ved jeg ikke helt, hvad du har af felter, men hvis du har bl.a. to felter:

[Ordre Indsendt] og [Date]
Og du vil filtrere, så du kun viser de ordrer, der er indsendt mere end 7 før datoen [Date], så skal du skrive følgende:

Me.Controls![RykkerSystem(OrdrerData)].Form.Filter = \"[Ordre Indsendt] < [Date] -7\"
Avatar billede ds-zim Nybegynder
11. august 2000 - 10:03 #14
Indrømmet, jeg er en cut\'n\'paste coder :)
Når jeg bruger dit ovenstående eksempel, spørger den efter en værdi til \'Date\' ?!?
Det løste jeg ved først at gemme værdien i en tekstbox med datatype datofelt.
Nu spiller det bare !!! Tak for tålmodigheden :))
Avatar billede moses Praktikant
11. august 2000 - 11:07 #15
Det er helt ok. Jeg står tit selv i dit sted, og så er jeg glad for at få en løsning eller bare et tip, der bringer mig videre.
Avatar billede ds-zim Nybegynder
11. august 2000 - 11:41 #16
Har du nogen idé om hvordan jeg laver det sådan, at når man dobbeltklikker på kundenavnet,
så åbnes en formular indeholdende data/stats på kunden. Umiddelbart ser mit forslag sådanne ud :

Private Sub Navn_DblClick(Cancel As Integer)

  Dim StdDocName As String
  Dim StdLinkCriteria As String
 
  StdDocName = \"LeverandørInfo\"
  StdLinkCriteria = \"Navn=\" & [940 - levarandører]![Navn]
  DoCmd.OpenForm StdDocName, acNormal, , StdLinkCriteria
   
End Sub

Fejlen jeg får er ved at gøre mig gråhåret !
\"Access kan ikke finde feltet \"|\" der bla bla bla *GrUmMe*
Avatar billede moses Praktikant
11. august 2000 - 12:14 #17
Private Sub Navn_DblClick(Cancel As Integer)

  Dim StdDocName As String
  Dim StdLinkCriteria As String
 
  StdDocName = \"LeverandørInfo\"
  StdLinkCriteria = \"[Navn] = \'\" & [Navn] & \"\'\"
  DoCmd.OpenForm StdDocName, acNormal, , StdLinkCriteria
   
End Sub

Jeg skal lige se, hvor mange af de der enkeltpinger, der egentlig bliver slugt af Eksperten.
Avatar billede moses Praktikant
11. august 2000 - 12:16 #18
Utroligt. Eksperten har ikke den fejl mere. Ovenstående skulle være korrekt, hvis du har et felt, i din nuværende form, der hedder [navn] og et felt i din Leverandør form, der også hedder [navn].
Avatar billede ds-zim Nybegynder
11. august 2000 - 14:03 #19
Moses, Ur da BOMB !!! :D
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