Avatar billede pemaje Nybegynder
20. november 2007 - 13:10 Der er 16 kommentarer og
1 løsning

kommandoknaps titeltekst eller navn som filter på underformular

Jeg har optegnet mit lager ved hjælp af en række kommandoknapper, som hver især udgør en hylderække. Jeg vil nu gerne anvende knappens navn, til at filtere informationerne i underformularen.

Jeg har forsøgt med en makro - Anvendfilter ([LOKATION_FS]![STED]="01"), men det kræver at jeg laver mange og er ikke særligt nemt at rette til.

mine knapper hedder 01, 02 .... 99
min underformular hedder LOKATION_FS_underformular og har STED som over- og underordnet felt, samt LOKATION_FS som postkilde
Den post jeg sammenligner med, hedder STED i LOKATION_FS.

Hvordan laver jeg en kode, hvor der ved tryk på en knap, sammenlignes knappens navn eller titeltekst med feltet STED i LOKATION_FS, hvorefter der i underformularen præsenteres de poster hvor STED = kommandoknap navn.

Hvis I har en idé, må den gerne skæres lidt ud, da jeg klart er novice ud i access.
Avatar billede nih Novice
20. november 2007 - 14:24 #1
Du skal lave en funktion i formular modulet f.eks.:
Private Function test()
  dim strFilter
  strfilter = "LOKATION_FS]![STED]='" & ActiveControl.Caption & "'"
  MsgBox strfilter

End Function

på dine knapper's vedklik angiver du så: =test()
Avatar billede nih Novice
20. november 2007 - 15:00 #2
Hvis filteret skal anvendes på den aktuelle form:

Private Function test()
  dim strFilter
  strfilter = "[LOKATION_FS]![STED]='" & ActiveControl.Caption & "'"
  me.filter = strfilter
  me.filteron = true

End Function

Niels
Avatar billede pemaje Nybegynder
20. november 2007 - 15:15 #3
Hej nih

Når jeg bruger denne:

Private Function STED()
  Dim strFilter
  strFilter = "[LOKATION_FS]![STED]='" & ActiveControl.Caption & "'"
  Me.Filter = strFilter
  Me.FilterOn = True

End Function

Får jeg fejlmeddelelsen:

Udtrykket ved klik gav en fejl........indeholder ugyldig syntax.
Avatar billede nih Novice
20. november 2007 - 15:38 #4
nu kender jeg ikke din db...

bygger din formular på forespørgslen: LOKATION_FS ???
og
er din kode i formularens modul ??? ellers skal functionen være public.
prøv evt. at undlade []
strFilter = "STED='" & ActiveControl.Caption & "'"

har du prøvet at debugge koden:
Private Function STED()
stop
.....

Ja - det var lige hvad jeg kunne finde på der kunne være ivejen
Niels
Avatar billede pemaje Nybegynder
20. november 2007 - 16:51 #5
Nu får jeg en 'invalid use of Me keyword' når den rammer Me.Filter. Nogen idé om hvorfor?

Ja min formular bygger på LOKATION_FS og min function er public.
Avatar billede terry Ekspert
20. november 2007 - 18:39 #6
If you are using

=STED() in the On Click Property change it to

=STED

Otherwise the fucntion must return a value which you can do by changing the function to

Private Function STED() as Boolean 'For example
Avatar billede terry Ekspert
20. november 2007 - 18:41 #7
I would also change teh function to public

Public Function Sted()
Avatar billede pemaje Nybegynder
20. november 2007 - 19:18 #8
Nu får jeg ingen fejlmeddelelser, men tilgengæld virker filtret ikke. burde det ikke være noget med Me.subform.form.Filter for at sætte filtret på underformularen??

Ellers gode hints Terry... takker!
Avatar billede terry Ekspert
20. november 2007 - 19:39 #9
If you want to set the sub form filter on then you need something like

Me.NameOfSubformControlGoesHere.Filter = ....

NameOfSubformControlGoesHere = The name of the sub form control on the main form. THis is normally the same as the form you are using as th esub form but it need not be.
Avatar billede pemaje Nybegynder
20. november 2007 - 19:47 #10
Hi Terry

I tried that allready.... by the way... I send You my Db for you to look through.
Got another prob that I need to solve... thanks alot for the help.

Peter
Avatar billede nih Novice
20. november 2007 - 20:22 #11
du kan også prøve at sende den til nih(at)stofanet.dk
Avatar billede nih Novice
20. november 2007 - 20:38 #12
Hi Terry
Jeg har nu altid brugt
      function test()
og senere kaldt den med
      =test()
uanset om test returnere en værdi eller ej - og det har ellers virket fint.
Det er et must hvis du kalder functionen fra en menuknap.
Avatar billede terry Ekspert
20. november 2007 - 21:02 #13
Hi Niels
Well I'm so old I cant remember what I normally do but I tried it here and it only worked with the suggestions I made here. If you say you have also used with () then I'm sure your right.
Avatar billede terry Ekspert
20. november 2007 - 21:10 #14
The main form has a record source which has a field named STED so I have renamed the function to SetFilter() (notice the () Niels :o) )and moved it back into the form code from a module so that me is recognised.
The sub form is linked through the field STED so by setting the main form filter to the chosen vale it automatically finds the related records in the sub form.
Avatar billede terry Ekspert
20. november 2007 - 21:11 #15
Peter, if it works then you can share the points as you like.
Avatar billede nih Novice
20. november 2007 - 21:43 #16
no points for me - Terry did the hard work :o)
Avatar billede terry Ekspert
21. november 2007 - 08:51 #17
Peter, to close the question you need to accept on eof the answers given.

BR
Terry
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