Avatar billede flashit Nybegynder
23. august 2005 - 19:59 Der er 26 kommentarer og
1 løsning

en form til mange quary's

Hej E

Håber i kan hjælpe med denne (også)

Jeg har en masse ”Queryes” som jeg skal benyttet som datasource, for en masse forms.

Men, kan man ikke have en form, som alt efter hvilken knap man trykker på, viser forskellige query?

Jeg kan nemlig spare 37 forms, hvilket jo ville være super fedt…

/jakob
Avatar billede terry Ekspert
23. august 2005 - 20:04 #1
sounds like a lot of forms you have need for!
If the queries return the same number of fields and the names are they same then yes, otherwise you would need to change variuos properties in code, whcih would end up taking just as long
Avatar billede mugs Novice
23. august 2005 - 20:04 #2
Du kan lave forespørgsler hvor du joiner dine tabeller. Herefter i din formular i egenskaben postkilde skifte postkilde:

Me.RecordSource = "Forespørgselns navn"

Men det fordrer, at du har samme felter i din formular.
Avatar billede mugs Novice
23. august 2005 - 20:05 #3
Men 37 formularer er mange. Hvad skal du bruge dem til?
Avatar billede flashit Nybegynder
23. august 2005 - 20:10 #4
da kunden vil have vist en masse resultater, fra en masse tabeller.
Avatar billede mugs Novice
23. august 2005 - 20:16 #5
Hvis du kan forklare lidt nærmere, kan vi måske anvise en anden måde at præsentere resultaterne på.

Vil en rapport udskrevet til skærm løse problemet?
Avatar billede flashit Nybegynder
23. august 2005 - 20:22 #6
Bare som et eks.

Jeg har 2 Query og 2 froms

På form 1 er der to knapper
Knap 1 åbner form2 med Query1 som datasource
Knap 2 åbner form2 med Query2 som datasource

Query 1 og to har intet tilfælles.

Det er bare det jeg er ude efter.

Det må man da kunne :-)
Avatar billede flashit Nybegynder
23. august 2005 - 20:24 #7
jeg kan ikke nøjes med en rapport, men skal senere have en masse rapporter.
Avatar billede mugs Novice
23. august 2005 - 20:25 #8
Kan du lave en slags startformular (Switchboard), hvor du har mulighed for at åbne forskellige formularer med kommendoen:

docmd.openform "formularens navn"
Avatar billede flashit Nybegynder
23. august 2005 - 20:26 #9
ja :-)
Avatar billede flashit Nybegynder
23. august 2005 - 20:27 #10
det er det jeg regner med at jeg skal bruge form1 til
Avatar billede mugs Novice
23. august 2005 - 20:32 #11
OK - Lad os starte ved begyndelsen og se om det er det rigtige.

Du skal have en startformular. Lav den ved at lave en formular der ikke har nogen postkilde, giv den navnet FRMstart Du skal ikke sætte knapper på den endnu. Men du skal sørge for, at databasen åbner med denne formular. Det gør du ved at lave en makro. Åbn db i databasevinduet > Fanen makro > Ny > Øverst vælger du handlingen Åbn Formular > Nederst i argumenter vælger du FRMstart > Tilbage til handlinger > På linie 2 skriver du Maksimer > Luk makroen > Giv den navnet autoexec.

Luk db og åbn den igen og kontroller at makroen fungerer.
Avatar billede flashit Nybegynder
23. august 2005 - 20:43 #12
er det ok, at jag bare har lagt formen ind i "StartUp".. Jeg kan nemlig íkke finde makro / ny, kun tolls/makor/run makro
Avatar billede mugs Novice
23. august 2005 - 20:43 #13
Et par gode råd (subjektivt, da jeg ikke har nogen dokumentation):

- Sørg for, at dine objektnavne er i eet ord.
- Lav en navnekonvention, så objekterne har forskellige prefix:
  Tabel1: TBL1
  Forespørgsel: QRY1
  Formularer: FRMxx
  Rapporter: RPTxx
- Giv objekterne sammenfaldende navne, så forespørgsler og tilhørende formularer    hedder det samme men med forskelligt prefix:
  TBLmedlem leverer data til QRYmedlem > FRMmmedlem > RPTmedlem


http://www.mvps.org/access/tencommandments.htm
Avatar billede mugs Novice
23. august 2005 - 20:46 #14
Jeg mener ikke du kan maksimere i StartUp. Du skal åbne databasen i databasevinduet, hvor du har Tabeller, Forespørgsler, formularer o.s.v. lodret i højre side. Der skal være en knap hvorpå der står "Makro". Lidt ovenover har du menuerne Afspil, Design og Ny. Tryk på ny.
Avatar billede mugs Novice
23. august 2005 - 20:48 #15
Du kan selvfølgelig maksimere formularen ved at indsætte kommendoen i formularens VedÅbning.

docmd.maximize
Avatar billede flashit Nybegynder
23. august 2005 - 20:50 #16
så er jeg med så lange.
Spændende :-)
Avatar billede mugs Novice
23. august 2005 - 20:52 #17
Med så længe? Kan du finde menuen til en ny makro?
Avatar billede flashit Nybegynder
23. august 2005 - 21:00 #18
der skulle have stået langt, men jeg her fået styr på mokroen. og det virker
Avatar billede mugs Novice
23. august 2005 - 21:05 #19
Så laver du dine forskellige formularer. Efter hver formular laver du en ny knap på din FRMstart. Denne skal åbne din nye formular med kommandoen.

docmd.openform "FRMxxx"

Lav f.eks en knap, der giver dig mulighed for at åbne en formular med en oversigt over dine rapporter:

docmd.openform "FRMrapporter"

På denne formular laven du knapper til hver rapport. Du skal først overveje, om du vil udskrive til skærm eller printer, hvorefter du laver knapper til hver rapport.

Hvis du vil udskrive med kriterier der hører til enformular, skal udskrivningsknappen placeres på formularen med det angivne kriterie.
Avatar billede flashit Nybegynder
23. august 2005 - 21:13 #20
når du siger at jeg skal oprette de nye formularer, mener du så at jeg skal oprette en formular og "trække" min query ind på denne, så Access opretter resten for mig?
Eller skal det bare være tomme forms, så det kun er navigationer som vi arbejder med?
Avatar billede mugs Novice
23. august 2005 - 21:24 #21
Du laver først den forespørgsel, der skal levere data til formularen. Du kan sagtens bruge en tabel som postkilde, men jeg foretrækker en forespørgsel, da det gør din db mere dynamisk og gør det nemmere at rette iden senere hen.

Når forespørgslen fungerer efter hensigten, åbner du db i databasevinduet > Fanen forespørgsler > Marker den relevante forespørgsel > Find ikonet for autoformular / autorapport på menulinien > Tryk på autoformular.

Access vil nu generere en simpel formular på baggrund af den markerede forespørgsel. Tilbage er der kun at formatere formularen og evt. skrive noget programmering.

Når du er færdig med din formular, kan du i formularfoden (Vis > Formularhoved / formularfod) indsætte en knap i foden med denne kommando.

docmd.close

der lukker det aktive objekt og vender tilbage til det sted du kom fra. Hvis du vil lukke alle aktive objekter og afslutte Access hedder kommandoen:

docmd.quit

Men en hel anden ting er, har du data i db og hvor stor er den?

Når du tilføjer og specielt sletter data vil db komme til at fylde en hel del. Når du sletter poster vil den tilovers blevne plads ikke blive frigivet før du komprimerer db. Det kan du gøre i menuen:

Funktioner > Databasefunktioner > Komprimer og reparer database

Eller du kan lade access gøre det hver gang du lukker db i menuen:

Funktioner > Indstillinger > Generelt og sætte checkmærke i "komprimer ved lukning". På den måde sikreed du, at db aldrig fylder mere end højst nødvendigt.

For et par uger siden har jeg fat i en bruger, der ikke kunne sende en db da den fyldte 123 Mb !!! Den den var komprimeret fyldte den 1,6 Mb!
Avatar billede flashit Nybegynder
23. august 2005 - 21:38 #22
så har jeg oprettet de knapper som skal til. og det virker :-)
Avatar billede mugs Novice
23. august 2005 - 21:40 #23
Selvfølgelig fungerer det :o)
Men hvilke knapper taler du om, og hvor langt er du kommet?
Avatar billede flashit Nybegynder
23. august 2005 - 21:45 #24
Jeg har oprettet knapper som viser forskellige forms, og knapper til at lukke formen igen.
Er det denne måde du vil gøre det på, og ikke prøve at kode en eller anden "smart" funktion som kan vise forskelligt indhold i samme form.
Avatar billede mugs Novice
23. august 2005 - 21:50 #25
Det er den måde jeg vil gøre det på (Og plejer at gøre).

Hvis du vil have en smart funktion, kan du gøre det som tidligere skrevet med at ændre formularens Recordsource. Men der får du det problem, at formularen altid skal indeholde de samme felter. Hvis der er et felt i formularen i den ene visning, skal det også findes i forespørgslen, ellers vil du få en fejl.

Men det burde ikke være det store problem. Hvor meget fylder db, og har du komprimeret, som jeg tidligere har foreslået?
Avatar billede flashit Nybegynder
23. august 2005 - 21:55 #26
Databasen er linket op mod en SQL database som fylder 20 mb. Så det er ikke noget særligt. Nej jeg har ikke komprimeret, men det gør jeg senere.

Men tusinde tak for hjælpen.
Avatar billede mugs Novice
23. august 2005 - 21:57 #27
Selv tak - Og 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