Avatar billede puppetmaster Nybegynder
08. december 2004 - 08:52 Der er 36 kommentarer og
2 løsninger

Filtrere data i formular

I de fleste af vore databaser, er søgeformularerne bygget på en tabel, dvs. Postkilden er navnet på en tabel.
Er det muligt at lave det så postkilden er RecordSource fra "hovedformularen"?
Hovedformularens navn:
Ordreseddel
Avatar billede terry Ekspert
08. december 2004 - 08:55 #1
not quite sure what you mean, can you explain please puppetmaster?
Avatar billede terry Ekspert
08. december 2004 - 08:58 #2
Do you want to change the recordsource in the search form?

That should be no problem, in the forms on open event

me.recordsource = "Postkilden"
Avatar billede puppetmaster Nybegynder
08. december 2004 - 08:59 #3
I have a main form, with a button on, that opens a search form. the search form lets you set e.g. a date range (guess you can call it an advanced filter)
Normally the main form has a table as it's "source" (Postkilde in Danish), but in this case it doesn't, it's built from a query, that changes every time a selection on the form, Ordrelinier, is made.
I would like for my search forms "source" to be .....what...
me!Ordrelinier......something....
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:00 #4
"Postkilden" is a property of the form.
Avatar billede terry Ekspert
08. december 2004 - 09:02 #5
You could also pass the recordsource FROM your main form to your search form in the OpenArgs paramater when you open the from, then set this in the On Open event.

something like this
DoCmd.OpenForm "YourForm", , , , , , Me.RecordSource

Then in the Search form

If Len(me.openargs) > 0 Then
Me.recordsource = Me.openargs
end if
Avatar billede terry Ekspert
08. december 2004 - 09:06 #6
I assume that you know which table the query is based on? Then you could use the method I describe to sentthe table name to the search form. But this may mean that the search form also needs to be changed because field names etc. dont have the same name.
Avatar billede terry Ekspert
08. december 2004 - 09:07 #7
Have you looked at search manager pro? Sounds like its something lik ethis you need!
http://www.databasecreations.com/prod_srchmgrpro.htm
08. december 2004 - 09:10 #8
Eller:

docmd.Openform "Din søgeformular"
Forms![Din søgeformular].recordsource = Me!recordsource
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:15 #9
Må kigge lidt på Terry's forslag om Search Manager Pro også, men forsøgte med dit forslag, thomas.
Satte en VedKlik event på knappen på min hovedformular, Ordreseddel:
  Forms![Transporter].RecordSource = Me!RecordSource
  DoCmd.OpenForm "Transporter"
Men fik en fejl:
"Kan ikke finde feltet "Recordsource"...."
08. december 2004 - 09:17 #10
sorry...skrivefejl:

docmd.Openform "Din søgeformular"
Forms![Din søgeformular].recordsource = Me.recordsource
Avatar billede terry Ekspert
08. december 2004 - 09:17 #11
I though about that Thomas but that will give the whole query and not just a table and thats what puppetmaster says (or at least I think he does) that he doesnt want.
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:18 #12
Rettede den til Me.RecordSource, så forsvandt fejlen, men linien
DoCmd.OpenForm "Transporter"
fremkalder nu en fejl:
"Formularen Transporter kan ikke findes".....den ER der.... :(
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:19 #13
Terry, I want the search form to "have" the same data as the main form, so Thomas is correct.
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:21 #14
Min fejl, det var IKKE DoCmd.OpenForm "Transporter" der fremkalder fejlen, der ER stadig Forms![Transporter].RecordSource = Me.RecordSource

Hvordan fortæller jeg at Transporter er underformular til Ordreseddel?
Avatar billede terry Ekspert
08. december 2004 - 09:25 #15
You need to open the main(search) form and then set the recordsource of the sub form

forms!YourMainSearchForm!TRansporter.form.recordsource
08. december 2004 - 09:28 #16
helt præcist burde det være sådan:
Forms!Ordreseddel!Transporter.form.Recordsource = Me.Recordsource
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:31 #17
DoCmd.OpenForm "Transporter"
  Forms!Ordreseddel!Transporter.Form.RecordSource = Me.RecordSource
Resulterer i: OpenForm handlingen blev annulleret

  Forms!Ordreseddel!Transporter.Form.RecordSource = Me.RecordSource
  DoCmd.OpenForm "Transporter"
Resulterer i: Kan ikke finde feltet "Transporter", der refereres til i udtrykket.
08. december 2004 - 09:33 #18
det skal nok være således:
DoCmd.OpenForm "Ordreseddel"
Forms!Ordreseddel!Transporter.Form.RecordSource = Me.RecordSource
Avatar billede terry Ekspert
08. december 2004 - 09:33 #19
!
what is the name of the MAIN (search form)?

Docmd.OpenForm "YourMainSearchForm"
Avatar billede terry Ekspert
08. december 2004 - 09:37 #20
I think we are getting all mixed up in the form names!
We need the name of your main form and if it has a sub form which contains the record source then we need taht forms name too.
Then we need the name of the MAIN search form and also the sub form name if it has one too!
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:39 #21
Main form: Ordreseddel
Search form: Transporter
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:40 #22
(Hvornår er det nu man bruger ! og hvornår .?)
08. december 2004 - 09:41 #23
Hvis der hele tiden kun er én formular åben (altså en hovedformular med en underfomular), så skal du ikke have nogen Docmd.Openform.

Så skal du bare skifte recordsorcen på underformularen med denne:

Forms!Ordreseddel!Transporter.Form.RecordSource = Me.RecordSource
08. december 2004 - 09:42 #24
! bruges KUN og altid, når der kommer et objekt bagefter

. bruges når der kommer alt andet en et objekt bagefter (dvs en egenskab eller en metode)
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:42 #25
terry, I might have explained it wrong! :( Sorry
I have a form (Ordreseddel) with some data. These data I need filtered. For this I want to open another form (Transporter), on which the user can set criterias
Avatar billede terry Ekspert
08. december 2004 - 09:43 #26
so there IS no sub form?
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:43 #27
The system is NOT a master-detail, pardon my use of the word "sub form".
Avatar billede terry Ekspert
08. december 2004 - 09:44 #28
So in fact you want to search on Transporter and then update the OrdreSeddel?

Forms!Ordreseddel.Recordsource = Me.recordsource
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:45 #29
Yes!
Avatar billede terry Ekspert
08. december 2004 - 09:48 #30
that was a bit "round the house" :o)
Avatar billede terry Ekspert
08. december 2004 - 09:48 #31
"round the houses"
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:50 #32
Oh....Oh! I guess I got it ALL wrong! :(
I DON'T need to "base" my search form on a recordsource at all, I just need to "read" the variables from the search form and set the form Ordreseddel's recordsource to the filterstring!
Avatar billede terry Ekspert
08. december 2004 - 09:52 #33
Sounds like you did, thats another problem entirely!
08. december 2004 - 09:53 #34
hmm:

docmd.Openform "Ordreseddel",,,Me.Filter
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:56 #35
Jeg takker mange gange for hjælpen, blev "lidt" forvirret, da en anden af mine databaser's søgeforme ALLESAMMEN baserer sig på en tabel.
Avatar billede puppetmaster Nybegynder
08. december 2004 - 09:56 #36
I would like to give you points too, terry.... ;)
Avatar billede terry Ekspert
08. december 2004 - 09:57 #37
that would be nice :o)
Avatar billede terry Ekspert
08. december 2004 - 09:59 #38
so I assume that you are setting the filter property on the search form?
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