Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
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
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.
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
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.
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.
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?
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!
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.
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?
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.