Avatar billede mariemarker Nybegynder
05. februar 2008 - 19:26 Der er 13 kommentarer og
1 løsning

Filtrere poster i en formular, reference til felt

Det drejer sig om et adp-projekt.
Implicerede objekter:
Formular: Bestillinger med feltet "leverandoer" og kommandoknap0.
Formular: Bekraeft_bestil.
Min udfordring er, at få åbnet Bekraeft_bestil, så der kun ses poster, der har samme værdi i "leverandoer" som den aktuelle post i Bestillinger.
Postkilden til Bekraeft_bestil er en funktion, der har et kriterie, hvor et ja/nej-felt skal være nej (= 0). Dette parameter er der ingen problemer med.

Har forsøgt med en funktion og et parameter, men referencen til feltet fungerer ikke.
Har også forsøgt med forskellige former for filter, men også her er det referencen til feltet, der fejler. Har benyttet syntaxen [forms]![formularnavn]![feltnavn].
Er Access-projekter mere besværlige i den retning?

Håber, I kan klare ærterne... :-)
Avatar billede mugs Novice
05. februar 2008 - 19:37 #1
Jeg er ikke klar over, hvad et ad-projekt er. Men i Access kan du åbne en form der indeholder den værdi du ser i den formular du kommer fra med denne kode

DoCmd.OpenForm "Bekraeft_bestil"
Forms!Bekraeft_bestil!leverandoer.SetFocus
DoCmd.FindRecord Me!leverandoer
Avatar billede mugs Novice
05. februar 2008 - 19:41 #2
Ovennævnte kode fuinder den første forekomst af leverandoer. Men er der flere, kan det være en fordel at indsætte et filter, der filtrerer formularen efter den fundne leverandoer således:

Me.Filter = "leverandoer = '" & Me!leverandoer & "'"
Me.FilterOn = True
Avatar billede rickmarker Nybegynder
05. februar 2008 - 20:45 #3
Hej Mugs...

Nu filtrerer den da uden fejl, men det er forkert udvalg.
Jeg får ikke den leverandør, der er aktuel på formularen "Bestillinger".
Hvilken del af filter-koden giver referencen til Bestillinger?
Avatar billede mugs Novice
05. februar 2008 - 20:55 #4
Denne del skal åbne formularen "Bekraeft_bestil" og finde den første forekomst af leverandoeren:

DoCmd.OpenForm "Bekraeft_bestil"
Forms!Bekraeft_bestil!leverandoer.SetFocus
DoCmd.FindRecord Me!leverandoer

Når det er sket, indsættes kriteriet for filteret med denne:

Me.Filter = "leverandoer = '" & Me!leverandoer & "'"

og filteret sættes til On:

Me.FilterOn = True

Hvis du nøjes med den første del Docmd.openform o.s.v. finder den så den korrekte leverandoer.

Men iøvrigt: Hvem er du? Du har ikke oprettet spørgsmålet.
Avatar billede rickmarker Nybegynder
05. februar 2008 - 21:00 #5
Jeg kan godt forstå, at du spørger...
Jeg hedder Marie Marker, men min håbefulde kodegale-søn, Rick, loggede lige ind. Det så jeg ikke inden jeg svarede.

Prøver lige dit forslag af og vender flux tilbage... :-)
Avatar billede mugs Novice
05. februar 2008 - 21:40 #6
Prøv evt. i formularen bekraeft_bestil at sætte timeren til f.eks 1000 (1 sek), og ved TimerUdløb indtaster du denne

Me.Filter = "leverandoer = '" & Me!leverandoer & "'"
Me.FilterOn = True

Lidt klodset, men det fungerer her.
Avatar billede mugs Novice
05. februar 2008 - 21:58 #7
Denne er måske bedre:

Me.Filter = "leverandoer = '" & Me!leverandoer & "'"
Me.FilterOn = True
Me.TimerInterval = 0

Iøvrigt velkommen til eksperten.dk. Jeg vil råde dig til at læse dette link, som giver gode råd om, hvordan man gebærder sig her på sitet:

http://expfaq.dk/
Avatar billede rickmarker Nybegynder
05. februar 2008 - 22:08 #8
Yep! Det ser ud til at virke! Det er jo mageløst :-)

Tak for din velkomst! og tak for linket :-)
Avatar billede mugs Novice
05. februar 2008 - 22:14 #9
Hvis du har brugt timeren, så prøv at sætte timerintervallet ned til f.eks 200, så går det hurtigere med filtreringen.
Avatar billede rickmarker Nybegynder
05. februar 2008 - 22:19 #10
Timeren var ikke nødvendig her, men det kan være, den bliver nødvendig, når selve databasen skal i produktion (flere bruger, større net).
Avatar billede mugs Novice
05. februar 2008 - 22:24 #11
Når db skal på netværk, skal du huske at lave front- og backend. Det giver en hurtigere db og sparer netværkstrafik.

Hvis mit svar har hjulpet dig, vil jeg bede dig acceptere dette svar.
Avatar billede mariemarker Nybegynder
05. februar 2008 - 22:34 #12
Et adp-projekt er netop beregnet til at køre op mod en SQL-server eller lignende, så det kommer helt af sig selv :-)
Tak for svaret! Hermed accepteret!
Avatar billede mugs Novice
06. februar 2008 - 07:21 #13
OK - S¨blev jeg så klog. Du har dog ikke accepteret mit svar. Du kan se til venstre, at det stadig er muligt at lægge et svar, så spørgsmålet er åbent.

Du skal markere mit brugernavn til venstre i dit spørgsmål, og derefter trykke på accepter, først da er spørgsmålet lukket, og vil gå over i ekspertens vidensbase til gavn for andre brugere, der måtte have samme problem.
Avatar billede mugs Novice
06. februar 2008 - 09:06 #14
Tak for point :o)
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