Start med Access 7-97.pdf
Start med Access 7-97.pdf
Start med Access 7-97.pdf
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
32,-<br />
<strong>Start</strong> <strong>med</strong><br />
KnowWare<br />
<strong>Access</strong> 7/97<br />
Kåre Thomsen<br />
www.KnowWare.dk 1. udgave
2<br />
KnowWare<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 7/97<br />
Kåre Thomsen<br />
1. udgave, 2. oplag, mar. 1998<br />
© Copyright 1997, 1998 Kåre Thomsen og<br />
KnowWare, mm@knowware.dk – www.knowware.dk<br />
ISBN 87-90027-69-8<br />
Published by KnowWare<br />
KnowWare er en ide, en hensigt om at hjælpe! Et af formålene er at videregive letforståelig viden til en<br />
rimelig pris og der<strong>med</strong> vise, at det kan lade sig gøre i modsætning til, hvad mange forlag mener og gør - og<br />
hvis det bliver en succes, tvinges andre forlag til at gøre det samme!<br />
KnowWare startede April 1993 <strong>med</strong> det første PC-hæfte. De fleste af KnowWares hæfter er de mest solgte<br />
af sin slags. Flere af titlerne findes på stadig flere sprog.<br />
Bøger<br />
Else Brundbjerg: “Kvinden, Kætteren, Kunstneren Karen Blixen”, 300 s., 40,- (solgt over 24.000) – den<br />
eng. udgave fås til 60,- hos alle boghandlere<br />
Venlig hilsen Michael Maardt, KnowWare<br />
Sidste nyt, planlagte titler, diverse tips, meninger, liste over forhandlere, titler i andre lande osv. finder du<br />
på KnowWares homepage<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
www.knowware.dk
Øvelse 1: Adressekartotek ............................... 5<br />
At udvikle et system ......................................... 8<br />
Systemet FIRMA........................................ 8<br />
Sådan vil arbejdet skride frem....................... 9<br />
Planlægning................................................... 9<br />
Analyse af dine data ................................... 9<br />
Brain storm ............................................... 10<br />
Model over databasen............................... 10<br />
Planlægning af selve tabellerne ................ 11<br />
Kundekartoteket........................................ 11<br />
Fakturaer................................................... 12<br />
Øvelse 2: Oprette databasen og den første<br />
tabel ............................................................ 13<br />
Ekstra forklaringer om feltegenskaber...... 15<br />
Indtaste data i tabellen................................. 16<br />
Autoformular ............................................ 16<br />
Øvelse 3: Tabellerne til faktura .................... 18<br />
Tabellen fakturahovede............................... 18<br />
Tabellen Fakturalinje .................................. 19<br />
Øvelse 4: Relationer ....................................... 20<br />
Øvelse 5: Forespørgsel til sortering .............. 22<br />
Øvelse 6: Kombinere tabeller........................ 23<br />
Øvelse 7: En forespørgsel der kan regne...... 24<br />
KnowWare<br />
Øvelse 8: Et nyt og bedre kundekartotek......26<br />
Slette en post .............................................27<br />
Se posterne i tabelform..............................27<br />
Automatisk telefonopkald............................28<br />
Træt af skyerne?...........................................29<br />
Øvelse 9: Skærmbillede til fakturaer ............30<br />
Forbedring af formularen.............................31<br />
Øvelse 10: Sum i nyt felt .................................34<br />
Opsummerende forklaringer ........................35<br />
Øvelse 11: Kombinationsboks........................37<br />
Udskrift af en faktura ................................39<br />
Øvelse 12: Rapporter ......................................39<br />
Kundeliste ....................................................39<br />
Sortering og gruppering ............................40<br />
Rapport over fakturering..............................41<br />
Øvelse 13: Udskrift af én faktura ..................42<br />
Forespørgslen...............................................42<br />
Rapporten.....................................................44<br />
Knap til udskrift af faktura...........................46<br />
Øvelse 14: Systemets menu.............................47<br />
Menuformularen ..........................................47<br />
En makro, der automatisk åbner menuen.....49<br />
Genvejen til dit system.................................50<br />
Øvelse 15: Brevfletning i Word......................50<br />
Øvelse 16: Lav dit eget opslagsværktøj .........52<br />
Øvelse 17: En avanceret forespørgsel............54<br />
Efterord ........................................................56<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
2
3<br />
Forord<br />
Forord<br />
<strong>Access</strong> er både et program for ”almindelige” edb-brugere og et professionelt udviklingsværktøj.<br />
Det bruges til at udvikle databaser – det vi i daglig tale kalder ”systemer”. Du kan f.eks. udvikle<br />
dit eget fakturasystem eller et effektivt kartotek..<br />
Dette hæfte følger dig på vej som helt ny bruger af <strong>Access</strong>, udanset hvilken baggrund du<br />
starter <strong>med</strong>. Følger du hæftets øvelser fra først til sidst, vil du ende <strong>med</strong> at have udviklet et fakturasystem.<br />
Det kan bruges til at holde styr på kunder og fakturering. Ved at gennemgå øvelserne<br />
har du fået et eksempel, som forhåbentlig kan arbejde videre <strong>med</strong> selv - også selv om du ønsker<br />
dig et helt andet system.<br />
<strong>Access</strong> er “nemt”. Programmet inviterer til, at du bare sætter dig ved pc’en og går i gang. Og<br />
det skal du sådan set også bare gøre, for det er vældig sjovt. Du kan “nemt” lave tabeller,<br />
skærmbilleder og funktioner. Men hvis du vil udvikle et godt system, skal der en smule mere til:<br />
Planlægning og systematik. Derfor giver hæftet dig en introduktion til arbejdsmetoden i databaseudvikling.<br />
Det er op til dig selv, hvor meget du vil lægge i dette. Og det kommer selvfølgelig<br />
an på, hvor store ambitioner, du har <strong>med</strong> dit system.<br />
Hvad får du ud af hæftet?<br />
Du får overblik over, hvordan <strong>Access</strong> virker. Du vil desuden få et indblik i, hvordan du så at<br />
sige løser et problem – det vil sige, hvordan du kommer fra ”jeg ønsker mig et fakturasystem”<br />
til at se det for dig som en database. Du bliver dog ikke ekspert i databasedesign ved at læse<br />
dette hæfte. Vil du vide mere om design af relationsdatabaser, må du i gang <strong>med</strong> den tungere<br />
litteratur.<br />
Hæftets eksempel tager udgangspunkt i, at du laver et system til en enkeltstående pc. Vil du<br />
udvikle til flerbrugermiljøer, kommer du blandt andet ud i overvejelser om sikkerhed og vedligeholdelse.<br />
Disse emner berøres ikke her i hæftet, som alene er en introduktion til at udvikle<br />
selve systemet.<br />
Sådan bruger du hæftet<br />
<strong>Start</strong> <strong>med</strong> Øvelse 1 og kør derudaf. Når du er færdig <strong>med</strong> sidste øvelse, skulle du gerne have<br />
fremstillet dit fakturasystem – og forstået, hvordan du videre kan arbejde <strong>med</strong> programmet.<br />
Hvad skal du kunne på forhånd?<br />
Du behøver ikke have nogen forhåndsviden om (relations)databaser. Men: For at få et rigtig<br />
godt udbytte af hæftet, er det en fordel, hvis du er nogenlunde vant til at arbejde <strong>med</strong> mindst ét<br />
Office program i forvejen. Jeg forestiller mig, at du fx allerede bruger Word 97 og måske Excel.<br />
Hvis du trænger til at opdatere din viden, kan du finde KnowWare hæfter om både Word, Excel<br />
og Windows.<br />
Kåre Thomsen<br />
Jeg er 39 år og arbejder free-lance <strong>med</strong> edb-undervisning, systemudvikling og dokumentation.<br />
Lejlighedsvis holder jeg foredrag om brugergrænseflader, som jeg interesserer mig særligt for.<br />
Jeg har desuden skrevet et par hæfter om Excel. Sammen <strong>med</strong> min kollega Pia Hardy har jeg<br />
skrevet et øvehæfte om Windows 95.<br />
<strong>Access</strong> 7 eller <strong>Access</strong> 97?<br />
Du kan bruge dette hæfte, hvad enten du har <strong>Access</strong> 7 (også kaldet <strong>Access</strong> 95) eller <strong>Access</strong> 97.<br />
Nogle få kommandoer har forskelligt navn i de to versioner. I disse tilfælde står <strong>Access</strong> 7 kommandoen<br />
i parentes. Arbejdsmetoden til systemudvikling i de to versioner er den samme.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Forord<br />
God arbejdslyst<br />
Jeg ønsker dig god fornøjelse <strong>med</strong> dit kreative databasearbejde. Jeg har selv masser af fornøjelse<br />
af det. Lad mig advare dig: Hvis det går dig, som det er gået mig, kan du få flimmer for øjnene.<br />
Jeg bliver så optaget af processen, at jeg glemmer at holde pauser. Med røde, irriterede øjne og<br />
hovedpine som resultat. Det er simpelt hen umuligt at forlade skærmen, når man er “lige ved” at<br />
have løst sit problem. Så husk det nu: Rejs dig fra arbejdet hver halve time, kig ud på solskinnet<br />
- og lav øjne bøj, øjne stræk.<br />
Notation<br />
⇒ Der refereres til taster <strong>med</strong> speciel skrift.<br />
Eksempel: DELETE.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
Kåre Thomsen, september 1997<br />
⇒ Nogle gange skal du holde en tast nede, mens du trykker på en anden. Det vil for eksempel<br />
blive beskrevet således: Tryk CTRL+DELETE.<br />
⇒ Når du skal vælge en menukommando, står det også <strong>med</strong> speciel skrift, fx menukommandoen<br />
Filer, Åbn.<br />
⇒ Der refereres til navne, felter og værktøjer, du ser på skærmen, <strong>med</strong> en speciel skrifttype.<br />
Eksempel: Tilføj.<br />
⇒ Når du selv skal skrive noget, står det <strong>med</strong> speciel skrift. Eksempel: Tast: Firma.<br />
⇒ Når der er forskel på en menukommandoen i <strong>Access</strong> 97 og <strong>Access</strong> 7, står den sidstnævnte i<br />
parentes. Eksempel: Vælg menukommandoen Vis, Designvisning (Formulardesign). Det<br />
samme gælder værktøjsknapper: Klik på Visning (Forespørgselsvisning).<br />
4
5<br />
Øvelse 1: Adressekartotek<br />
I denne indledende øvelse lærer du følgende:<br />
Adressekartotek<br />
• en nem måde at oprette en database på<br />
• at oprette et adressekartotek til at holde styr på navne, adresser, telefonnumre og andre oplysninger<br />
om kunder, <strong>med</strong>lemmer eller kontakter<br />
Øvelsen er ment som en første smagsprøve for at lære <strong>Access</strong> at kende. Her arbejder du ved<br />
hjælp af indbyggede guider i <strong>Access</strong>. Denne første database er ikke en del af det fakturasystem,<br />
du siden kommer til at udvikle.<br />
Sæt dig godt til rette foran din pc og tænd for den. Efter opstarten af pc’en befinder du dig i<br />
Windows 95 programmets Skrivebord.<br />
Vælg <strong>Start</strong>-knappen i Windows 95’s Proceslinje nederst i skærmbilledet. Vælg menupunktet<br />
Programmer, og vælg herefter Microsoft <strong>Access</strong>.<br />
<strong>Access</strong> starter nu, og en første dialogboks beder<br />
dig tage stilling til, hvad du vil gøre. Vælg Tom<br />
database og klik OK.<br />
Tip: Hvis du vælger Guiden Database, vil systemet<br />
bede dig vælge en skabelon – f.eks.<br />
Adressekartotek – og ud fra nogle få retningslinjer,<br />
som du giver undervejs – oprette et helt<br />
system for dig.<br />
Du skal i den næste dialogboks tage stilling til, hvor databasen skal<br />
gemmes, og hvad den skal hedde. Udvælg den ønskede mappe, skriv<br />
det ønskede navn på databasen i feltet Filnavn (fx Adresser) – og<br />
klik på Opret.<br />
Dette er databasevinduet – kontroltårnet i dit system. Herfra kan du åbne, oprette, slette<br />
eller ændre alle systemets objekter. Dit databasesystem indeholder endnu ingen objekter.<br />
Ved at klikke på fanebladene vælger du, hvilken type objekt, du vil arbejde <strong>med</strong>: Tabel,<br />
forespørgsel, formular, rapport, makro eller modul.<br />
En database består af én eller flere tabeller – det er dem, der kan indeholde data. Derfor<br />
skal du starte <strong>med</strong> at oprette en tabel.<br />
Klik på knappen Ny.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Adressekartotek<br />
Vælg Guiden tabel og OK. Vent et øjeblik, mens guiden gør sig klar.<br />
Vælg knappen Privat (Personligt i <strong>Access</strong> 95) forneden i venstre side<br />
af dialogboksen. Vælg Adresser i kolonnen Eksempeltabeller.<br />
Vælg derefter AdresseID i kolonnen Eksempelfelter. Klik på værktøjet<br />
> for at få AdresseID over i kolonnen Felter i den nye tabel.<br />
Vælg nu Fornavn i kolonnen Eksempelfelter – og klik på ><br />
På samme måde vælger du felterne Efternavn, Adresse, Postnr, Bynavn og Telefon<br />
(privat). Klik til sidst på knappen Udfør.<br />
Værs’go! Din tabel er oprettet! <strong>Access</strong> har automatisk gemt den <strong>med</strong> navnet<br />
Adresser. Inden du begynder at indtaste data, er det en god idé at oprette en<br />
brugervenlig formular. Klik på listepilen ved værktøjet Nyt objekt... og vælg<br />
Autoformular.<br />
Så er din formular klar – men den skal først gemmes. Vælg Filer, Gem. I dialogboksen<br />
foreslår <strong>Access</strong> navnet Adresser. Klik på OK for at acceptere dette.<br />
Nu er du klar til at indtaste oplysninger.<br />
Udfyld skærmbilledet. Når du vil<br />
oprette én til, klikker du på værktøjet<br />
Ny post for neden i vinduet (findes også<br />
i værktøjslinjen).<br />
Ny post<br />
Trekanterne for neden i vinduet bruges til at blade i de indtastede navne.<br />
Du kan gå direkte til første eller sidste post, og du kan blade til næste eller forrige.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
6
7<br />
Adressekartotek<br />
Indtast nogle flere navne og adresser. Når du har nogle stykker, er du klar til at<br />
udføre en søgning. Klik på værktøjet Filtrer efter formular (eller vælg menukommandoen<br />
Poster, Filter, Filtrér efter formular).<br />
Formularen tømmes nu for oplysninger. Skriv: John i feltet Fornavn. Klik på<br />
værktøjet Anvend filter (eller vælg menukommandoen Filtrér, Anvend filter/sortering).<br />
Du kan nu blade i alle, der hedder John til fornavn.<br />
Slå filteret fra igen ved at klikke på værktøjet Fjern filter (eller ved at vælge<br />
menukommandoen Poster, Fjern filter/sortering).<br />
Til sidst skal du udskrive adresselisten – dvs. oprette en rapport. Først går du<br />
tilbage til databasevinduet på denne måde: Klik på værktøjet Databasevindue.<br />
Klik på fanebladet Rapporter – og på knappen Ny.<br />
Vælg Autorapport – tabelformat. Angiv i feltet<br />
for neden, at data kommer fra tabellen Adresser.<br />
Klik på OK. Din navneliste er nu klar til udskrift:<br />
Klik på værktøjet Udskriv (eller vælg menukommandoen<br />
Filer, Udskriv, OK).<br />
Gem rapporten ved at vælge menukommandoen<br />
Filer, Gem, OK. Her<strong>med</strong> accepterer du <strong>Access</strong>’<br />
forslag om at kalde rapporten Adresser.<br />
Gå tilbage til databasevinduet ved at klikke på værktøjet Databasevindue.<br />
Luk databasen <strong>med</strong> menukommandoen Filer, Luk.<br />
Åbn systemet igen <strong>med</strong> menukommandoen Filer, Åbn database. Vælg Adresser.mdb<br />
(eller blot Adresser - det kommer an på opsætningen i Windows 95) og klik på Åbn.<br />
Klik på fanebladet Formularer og dobbeltklik på Adresser. Du er nu klar til at oprette<br />
nye navne eller søge...<br />
Luk formularen igen <strong>med</strong> menukommandoen Filer, Luk.<br />
Du er nu tilbage i databasevinduet. Vælg fanebladet Rapporter. Dobbeltklik på Adresser.<br />
Din adresseliste vises nu - klar til udskrift. Luk adresselisten igen <strong>med</strong> menukommandoen<br />
Filer, Luk.<br />
Du er nu igen tilbage i databasevinduet. Luk databasen <strong>med</strong> menukommandoen Filer,<br />
Luk.<br />
Dette var en første introduktion til <strong>Access</strong>. Hvis du kun har brug for et meget enkelt system, er<br />
dette måske nok. Men vil du udvikle et ”rigtigt” system <strong>med</strong> flere sammenhængende tabeller og<br />
flere funktioner, skal det gribes an på en lidt anden måde. Det handler resten af hæftet om...<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
At udvikle et system<br />
At udvikle et system<br />
Inden vi kaster os over <strong>Access</strong>, skal vi gøre os klart, hvad vi vil lave. Så du må først læse lidt<br />
her, jeg skal nok gøre det kort.<br />
Jeg har lagt mærke til, at mange skriftlige vejledninger i brugen af <strong>Access</strong> - ikke mindst kursusmateriale<br />
fra diverse edb-firmaer - tager et meget teknisk udgangspunkt. Dvs. man lærer alt<br />
muligt om tabeller, joins, forespørgsler og referenciel integritet, inden man som nybegynder har<br />
den ringeste chance for at vide, hvad alle de fine ord skal bruges til. Det skyldes, at man kunne<br />
snakke fra nu af og til år 2000 om alle de professionelle faciliteter, <strong>Access</strong> byder på. Men jeg<br />
vælger altså en anden vej her: Vi starter <strong>med</strong> at tænke på målet, dvs. et system, vi vil fremstille,<br />
og så ser vi undervejs, hvad vi får brug for. Denne fremgangsmåde skulle gerne skåne dig for<br />
uforståelige forklaringer.<br />
Systemet FIRMA<br />
Her i hæftet vil vi som eksempel udvikle et system, som vi giver navnet Firma. Det skal holde<br />
styr på kunder og fakturaer. Firmaet kunne være et rengøringsfirma eller hvad som helst andet -<br />
selvfølgelig <strong>med</strong> visse justeringer for de enkelte firmaers vedkommende. Hvis du selv driver et<br />
lille firma, vil eksemplet være lige i øjet til dig. Hvis det er noget helt andet, du har brug for, vil<br />
eksemplet forhåbentlig alligevel være lærerigt. Principperne i systemet her vil kunne anvendes<br />
på alle mulige systemer.<br />
Databasesystemet Firma skal give dig følgende fordele:<br />
Du har alle dine kunder i et alfabetisk ordnet kartotek, hvor du nemt kan finde én eller flere<br />
frem, fx for at finde telefaxnummeret eller bruge navn og adresse til et brev i Word.<br />
Du skriver fakturaer på en meget nem måde: Du vælger kundenavnet i et “rullegardin”, så er<br />
du sikker på, at navn og adresse altid er korrekt. Moms, totalbeløb mv. regnes automatisk ud.<br />
Du kan <strong>med</strong> andre ord skrive en faktura meget hurtigt og være sikker på, at den bliver korrekt.<br />
Alle oplysninger om, hvad du har faktureret, er til at søge i. Du kan fx finde ud<br />
af, hvad du har tjent på en bestemt kunde eller i et bestemt postdistrikt.<br />
Når systemet er færdigt, opretter du en genvej på dit Skrivebord, så du altid hurtigt<br />
kan komme ind i det.<br />
Systemets menu skal være noget i denne stil - og det bliver noget af det sidste, du laver. Vi<br />
starter nemlig “indefra” - <strong>med</strong> at organisere data - og så arbejder vi os “udefter”.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
8
9<br />
At udvikle et system<br />
Fakturering Bruges til at indtaste og udskrive en faktura.<br />
Kunder Bruges til at oprette, ændre eller finde en kunde. “Kunde” skal forstås<br />
i videste forstand. Det kan også være leverandører og andre kontakter.<br />
Kartoteket vil kunne bruges til brevskrivning i Word. Herunder brevfletning,<br />
dvs. skrivning af enslydende brev til forskellige personer/firmaer.<br />
Faktureringsrapport Udskriver en rapport over din fakturering.<br />
Kundeliste Laver en alfabetisk udskrift af alle dine kunder <strong>med</strong> telefonnumre mm.<br />
Lyder det indviklet? Gå bare videre - og vend eventuelt tilbage hertil en anden gang.<br />
Sådan vil arbejdet skride frem<br />
For at du på forhånd har en fornemmelse af, hvordan vi vil gøre, skal du have en oversigt over<br />
arbejdets forskellige faser:<br />
1. Analysere data. Hvilke data skal der være i systemet, og hvordan hænger de sammen?<br />
2. Oprette tabeller. Tabellerne er så at sige selve databasen. Her ligger data delt fornuftigt op i<br />
overensstemmelse <strong>med</strong> den analyse, vi har lavet. Det vil være nemt for dig her, fordi du får<br />
svarene af mig, men det kan godt være, du får lidt at tænke over, den dag du vil lave noget,<br />
der er helt forskelligt fra hæftets eksempel. Man kan sige, at tabellerne indeholder dine data i<br />
en slags “rå” form, dvs. ikke sorteret og ikke tilstrækkeligt kombineret til at det (i mange tilfælde)<br />
vil være smart at bygge skærmbillederne og rapporterne direkte på dem.<br />
3. Derfor opretter vi derefter en række såkaldte forespørgsler ud fra dine tabeller. Forespørgslerne<br />
gengiver tabellerne i en “fordøjet”, dvs. ordnet og kombineret form, der gør det nemt<br />
for eksempel at opbygge skærmbilleder, hvor kundens navn og adresse kommer automatisk<br />
frem, når du indtaster kundenummer.<br />
4. Herefter er du klar til at lave de skærmbilleder, som du kommer til at se i det daglige som<br />
bruger af dit system. Et faktura-skærmbillede, et kunde-skærmbillede osv. Skærmbillederne<br />
kaldes formularer i <strong>Access</strong>.<br />
5. Rapporterne - for eksempel udskrift af din kundeliste - er det næste, der skal laves.<br />
6. Endelig samler vi det hele i en pæn menu, som den du så tidligere i dette afsnit.<br />
Kig det foregående grundigt igennem. Når du føler dig nogenlunde orienteret om, hvad vi skal i<br />
gang <strong>med</strong>, er du klar.<br />
Planlægning<br />
Hvis du vil i gang <strong>med</strong> at lave noget i <strong>Access</strong>, så læs dette kapitel hurtigt igennem i første omgang.<br />
Du kan altid vende tilbage til det senere!<br />
Analyse af dine data<br />
Det indledende besvær <strong>med</strong> at analysere dine data kommer du ikke uden om. Hvis ikke du har<br />
taget beslutningerne på forhånd, får du bare problemer siden hen.<br />
Kapitlet her er kun en smagsprøve, men hvis dine data ikke er for indviklede og komplekse, kan<br />
du sikkert overføre eksemplet på det, du selv vil lave.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
At udvikle et system<br />
Brain storm<br />
<strong>Start</strong> <strong>med</strong> en brain storm. Tag en blyant og et stykke papir, og skriv alt det op, der falder dig<br />
ind. Det er en god måde at få tankerne på gled på. En brain storm om det system, vi her vil udvikle,<br />
ville måske indeholde følgende stikord:<br />
• kunder<br />
• fakturaer<br />
• momsregnskab<br />
• telefonliste<br />
• brevskrivning<br />
Prøv at skrive ned, hvad du ønsker dig. Fx:<br />
• Det skal være nemt at skrive en faktura.<br />
• Brevfletning til bestemte kundegrupper skal være mulig, fx alle i postdistrikt 2610 Rødovre.<br />
• Det skal være muligt at søge på, hvad man har tjent i et bestemt tidsrum eller på en bestemt<br />
kunde - eller begge dele.<br />
- og så videre. På den måde får du i første omgang fastlagt, hvad du ønsker dig. Og du får noget<br />
at diskutere ud fra, hvis der er andre end dig selv involveret. Først når du er sikker på, at ønskerne<br />
er formuleret, går du videre.<br />
Model over databasen<br />
Du kan tegne en model over databasen, hvis du vil have styr på, hvilke data den skal indeholde<br />
eller behandle. Alle begreber eller “ting” - f.eks. kunde og faktura - tegner som kasser. Det lyder<br />
måske overflødigt, men prøv selv. Det giver overblik.<br />
Udtænk dernæst, hvordan de enkelte enheder hænger sammen.<br />
Eksempel: Kunder og fakturaer hænger sammen, fordi en faktura udskrives til en kunde, hvis<br />
navn mv. skal stå på fakturaen. De hænger desuden sammen på den måde, at til hver kunde kan<br />
der skrives mange fakturaer. Relationen kunde-faktura kaldes derfor en “én-til-mange relation”.<br />
Dette er den mest almindelige type af relation. Andre typer af relationer er én-til-én og mangetil-mange.<br />
Ekstra forklaring: Én-til-mange relationen er specielt interessant, fordi den giver dig mulighed<br />
for at registrere kunden én og kun én gang, og så genbruge oplysningerne om ham, hver gang<br />
du skal skrive en faktura. Ellers skulle du skrive kundens navn og adresse på hver eneste faktura,<br />
og så ville du<br />
• dels gemme de samme oplysninger mange gange,<br />
• dels have en risiko for at skrive hans navn og adresse forkert, hvilket ikke mindst ville gøre<br />
søgninger upålidelige.<br />
Denne tanke er én af hovedhjørnestenene i en relationsdatabase.<br />
På stregerne mellem kasserne angiver du et 1-tal tæt ved kassen <strong>med</strong> én-siden (her kunder) og et<br />
N tæt ved kassen <strong>med</strong> mange-siden (her faktura). Midt på stregen mellem kasserne tegner du en<br />
rombe, og inde i romben skriver du, hvilken forbindelse, de to enheder har <strong>med</strong> hinanden. Det<br />
kan være ord som “får”, “betaler”, “er afhængig af”, “afvikler” osv. Her kunne det være<br />
FAKTURA-UDSKRIVES TIL-KUNDE<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
10
11<br />
At udvikle et system<br />
“En faktura udskrives til en kunde, og til én og samme kunde kan der udskrives mange fakturaer.”<br />
Se på nedenstående tegning, hvordan modellen for vores system tager sig ud:<br />
Kig godt på tegningen her, og vend tilbage til den, hvis du i det følgende mister overblikket<br />
over vores system. Denne tegning viser i al sin enkelhed, hvad det hele går ud på.<br />
Det du får ud af tegningen er: Kunder i én tabel, fakturaer i en anden. Så har du hul på strukturen<br />
- selv om det er muligt, at du af praktiske grunde kommer til at opdele yderligere!<br />
Planlægning af selve tabellerne<br />
Tegningen i forrige afsnit kan selvfølgelig ikke umiddelbart omsættes til tabeller. Og her kommer<br />
du på lidt af en opgave, hvis du vil lave en database <strong>med</strong> mange forskellige slags data.<br />
Uden at vi skal fordybe os side op og side ned i problemet, skal du her have nogle<br />
tips/eksempler, som forhåbentlig giver dig så meget af idéen, at du kan komme til et tilfredsstillende<br />
resultat <strong>med</strong> dit eget.<br />
Kundekartoteket<br />
Lad os først tænke på kundekartoteket. Det er vel i og for sig nemt nok at afgøre, hvilke oplysninger,<br />
der skal ligge heri. Noget i retning af det, som er vist i rammen. Du kan selv lægge til og<br />
trække fra.<br />
I enhver relationsdatabase kræves entydighed<br />
<strong>med</strong> hensyn til identifikation af for eksempel<br />
en kunde i et kartotek, som er det vi<br />
vil lave her. Denne entydighed opnås ved,<br />
at vi udvælger et felt (eller en kombination<br />
af flere felter) som nøgle (primærnøgle).<br />
Hvis nøglen for eksempel er et navn, må<br />
der kun ligge én kunde <strong>med</strong> det navn i<br />
kartoteket. Derfor bruger man i praksis aldrig<br />
kundenavn som nøgle.<br />
Flere firmaer kan hedde det samme.<br />
Ofte er den mest praktiske nøgle et løbenummer.<br />
Tip! Brug aldrig hverken navn, adresse eller telefonnummer som nøglefelt. De er ikke éntydige,<br />
og de kan risikere at skulle ændres.<br />
Tip tip! Det korrekte ville være, kun at have postnr og ikke by <strong>med</strong> i denne tabel, og lade postnummer-by<br />
ligge i en tabel for sig. Det er nemlig også en én-til-mange relation: “Mange kunder<br />
har samme postnummer”. For at forenkle tingene, har vi ikke den opdeling <strong>med</strong> her i eksemplet.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
• KundeNr<br />
• Firmanavn<br />
• Adresse<br />
• PostnrBy<br />
• Telefon<br />
• Fax<br />
• Kontaktperson<br />
• Note
Fakturaer<br />
Forestil dig en faktura. Øverst står<br />
følgende oplysninger: Kundens<br />
navn og adresse, samt faktura dato,<br />
faktura nummer og kunde<br />
nummer. Længere nede er selve<br />
fakturalinjerne (det kunden skal<br />
betale), som indeholder oplysninger<br />
som: Tekst, antal timer (dette<br />
er et rengøringsfirma, der arbejder<br />
på timeløn), pris, total og moms.<br />
Nederst på fakturaen kommer så<br />
sum - den er ikke <strong>med</strong> på illustrationen.<br />
Men bemærk følgende: På<br />
hver faktura kan der være flere<br />
At udvikle et system<br />
FAKTURA<br />
The Shop Kunde Nr: 1<br />
Westend 3 Fakturanr: 97046<br />
9999 Solby Dato: 01.09.97<br />
Att: Julie Jensen<br />
Tekst Timer Pris Total Moms<br />
Rengøring 8 100,00 800,00 200,00<br />
Vinduespudsning 3 100,00 300,00 75,00<br />
fakturalinjer! Det lugter jo langt væk af en én-til-mange relation, og det er det også! Til hver<br />
faktura svarer i princippet flere fakturalinjer. Derfor skal der laves to tabeller til fakturaer: Én<br />
som vi kunne kalde fakturahovede, og én som vi kan kalde fakturalinje. Tabellen <strong>med</strong> fakturalinjer<br />
skal indeholde et fakturanummer, som viser, hvilken faktura, linjen hører hjemme i. Det<br />
lyder måske lidt kaotisk, men ved at opbygge skærmbilleder og rapporter rigtigt, får du det til at<br />
hænge smukt sammen på skærmen. Når du en gang skal udforme selve den fysiske faktura - den<br />
du printer ud på papir - tager du kun de oplysninger <strong>med</strong> i udskriften, du synes skal være der.<br />
Og dit resultat bliver måske noget à la det ovenfor viste.<br />
Tabellen Fakturahovede skal indeholde generelle oplysninger for fakturaen, og det er fx følgende<br />
felter:<br />
• FakturaNr (dette nummer er éntydigt, og kan derfor være nøgle).<br />
• KundeNr (som henviser til kundekartoteket og derfor kan “hente” kundens navn og adresse).<br />
• Dato.<br />
Tabellen Fakturalinje skal indeholde følgende felter:<br />
• FakturalinjeNr (nødvendig som nøgle) - printes ikke <strong>med</strong> på fakturaen.<br />
• Fakturanummer - til angivelse af, hvilken faktura, linjen hører hjemme på. Printes ikke <strong>med</strong><br />
ud på fakturaen.<br />
• Tekst<br />
• Antal<br />
• Pris<br />
Øvrige oplysninger som for eksempel Total og Moms skal ikke <strong>med</strong>. De kan jo regnes ud på<br />
baggrund af de oplysninger, der allerede er til stede. Tabellerne skal være minimale, de skal kun<br />
indeholde de oplysninger, der er absolut nødvendige. Videre udregninger kan foretages i forespørgsler,<br />
formularer eller rapporter.<br />
Dette var planlægning af din database. Uden dette stykke arbejde kan du ikke rigtig komme<br />
videre. Men lad os nu se på, hvad vi kan bruge al den planlægning til!<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
12
13<br />
Oprette databasen og den første tabel<br />
Øvelse 2: Oprette databasen og den første tabel<br />
I denne øvelse lærer du følgende:<br />
• at oprette en ny database<br />
• at oprette en tabel, som du selv definerer<br />
I hæftets første øvelse arbejdede du ud fra <strong>Access</strong> tabelguide. Det vil jeg ikke anbefale til systemudvikling<br />
generelt. Når først du ved, hvad du vil lave, er det ikke noget problem, selv at<br />
definere dine tabeller.<br />
Åbn <strong>Access</strong> ved at klikke på <strong>Start</strong>, Programmer, Microsoft <strong>Access</strong>. Vælg Tom database<br />
og OK. Vælg (C:\) i feltet Gem i og skriv: Firma i feltet Filnavn. Klik på Opret.<br />
Du er nu inde i det tomme databasevindue i din nye database. Fanebladet Tabeller er<br />
valgt, og du kan oprette en ny tabel: Klik på knappen Ny.<br />
Vælg Designvisning og klik på OK.<br />
Din markør står allerede klar i kolonnen Feltnavn.<br />
Måske husker du, at vores kundekartotek skal indeholde de<br />
felter, som er vist i rammen. Markøren står klar i kolonnen<br />
Feltnavn. Indtast: KundeNr (uden mellemrum). Tryk på EN-<br />
TER.<br />
Markøren er nu hoppet til feltet Datatype. Klik på listepilen i<br />
feltet, eller tryk på tasten F4. Vælg Autonummerering. Herved<br />
opnår du, at hver ny kunde, som indtastes, tildeles et løbenummer af systemet.<br />
Tip: Til feltet KundeNr kunne man måske også tænke sig datatypen Tal, som giver brugeren<br />
muligheden for at bestemme, hvilket kundenummer der skal tildeles. Envidere kunne<br />
man tænke sig datatypen Tekst, som giver brugeren mulighed for at give kunden et<br />
kundenummer, som også indeholder bogstaver.<br />
Tryk på ENTER. I kolonnen Beskrivelse skriver du: Kundenr - automatisk.<br />
Inden du går videre, skal du udnævne feltet KundeNr til at være<br />
nøgle i tabellen. Hvis feltet KundeNr udnævnes til nøgle (primær nøgle),<br />
vil der ikke være to kunder, som har samme kundenummer. Der er kun én<br />
primær nøgle i hver tabel! Klik på værktøjet Primær nøgle for at udnævne feltet til nøglefelt.<br />
NB: Alle tabeller skal have et felt, som udnævnes til primærnøgle. Det kan være praktisk<br />
at lade det første felt i tabellen være primærnøgle. Systemet sørger herefter for, at alle poster<br />
i tabellen har en unik værdi i dette felt.<br />
Tryk på ENTER igen - og du er nu klar til at oprette næste felt.<br />
I kolonnen Feltnavn taster du: Firmanavn<br />
Tryk ENTER. <strong>Access</strong> foreslår datatypen Tekst. For neden i vinduet kan du se, at <strong>Access</strong><br />
foreslår en længde på 50 tegn. Alt dette passer fint, så du kan gå videre til næste kolonne<br />
ved at trykke ENTER<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
• KundeNr<br />
• Firmanavn<br />
• Adresse<br />
• PostnrBy<br />
• Telefon<br />
• Fax<br />
• Kontaktperson<br />
• Note
Oprette databasen og den første tabel<br />
Skriv: Kundens navn i kolonnen Beskrivelse.<br />
På samme måde som Firmanavn opretter du felterne Adresse og PostnrBy. Opret også<br />
samme slags felter <strong>med</strong> navnene Telefon, Fax, og Kontaktperson.<br />
Tip! Hvis du midt i det hele vil indsætte eller slette linjer i dit tabel-design, bruger du<br />
knapperne Indsæt linje og Slet linje.<br />
Det sidste felt skal hedde Note. Her kan du indtaste bemærkninger om kunden, fx<br />
“Ønsker regelmæssig kontakt vedr. nye produkter” eller lignende. Her kan du overveje at<br />
lave et almindeligt tekstfelt - tekstfelter kan være op til 255 karakterer lange. Du kan også<br />
vælge datatypen Notat. Det betyder et tekstfelt af variabel længde, hvor du i princippet<br />
kan indtaste så meget tekst, du har lyst til. Hvilket naturligvis kan være en fordel, men du<br />
skal tage i betragtning, at systemet bliver langsommere, hvis der indtastes meget tekst. Vi<br />
vælger her at gøre feltet Note til typen Notat.<br />
Nu har du oprettet de felter, der skal bruges i kundekartoteket. Din færdige tabel ser sådan<br />
ud:<br />
Det er nu på tide at gemme<br />
den. Klik på værktøjet Gem<br />
(eller vælge menukommandoen<br />
Filer, Gem) for at få<br />
dialogboksen Gem som<br />
frem.<br />
<strong>Access</strong> mangler desværre en navngivningsfunktion, der fortæller om det er en tabel, en<br />
forespørgsel, en formular eller andet. Derfor anbefaler jeg dig at have en “navnepolitik”,<br />
der viser objektets type. Fx kan du kalde alle tabellerne noget <strong>med</strong> T_ som vist her. Lad<br />
os kalde denne tabel T_Kunde. Klik på OK, når du har indtastet navnet.<br />
Luk tabellen af ved at vælge menukommandoen Filer og Luk.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
14
15<br />
Ekstra forklaringer om feltegenskaber<br />
(kan springes over...)<br />
Oprette databasen og den første tabel<br />
Nederst i vinduet kan du vælge Feltegenskaber. For tekstfelter har du flg. muligheder:<br />
Feltstørrelse Antal anslag, brugeren maksimalt kan indtaste i feltet. Angives standard til 50.<br />
Kan højst være 255.<br />
Format Hvordan skal indholdet i feltet vises? Her kan du anvende en række allerede indbyggede<br />
formater. Ex:<br />
0,0 Talformat til visning af decimaltal. Altid en plads efter kommaet.<br />
0,0;[Red]\-0,0 Det samme, men negative tal er røde. \ angiver, at der kommer et<br />
fast tegn, fx en binde-streg eller et mellemrum. Efter semikolon<br />
står format for negative tal.<br />
000000\-0000 Vis tal som CPR-nummer.<br />
> Vis alle bogstaver som STORE bogstaver.<br />
Inputmaske Bruges til at styre indtastningen i et felt, sådan at du kun kan indtaste bestemte<br />
typer af data. Ex:<br />
000 Der må og skal indtastes 3 cifre.<br />
999 3-cifrede tal, men de behøver ikke indtastes.<br />
LL 2 bogstaver.<br />
LL\ 00\ 000 Nummerplade på dansk vogn.<br />
Titeltekst Hvis du indskriver tekst her, vil den blive brugt som titeltekst for feltet i formularer<br />
og rapporter. Hvis du ikke angiver noget, vil feltets navn blive brugt.<br />
Standardværdi Her indtastes en værdi, som på forhånd vil være udfyldt i feltet. Fx DK i et felt,<br />
der indeholder landekode, og hvor man oftest angiver DK. Værdien kan overskrives<br />
af brugeren.<br />
Valideringsregel Bruges til at styre brugerens indtastning. Hvis et talfelt kun må indeholde værdier<br />
større end eller lig <strong>med</strong> nul, skal valideringsreglen være: >=0<br />
Validerings- Den tekst, der kommer på skærmen, hvis valideringsreglen brydes.<br />
<strong>med</strong>delelse<br />
Obligatorisk Sættes denne værdi til Ja, skal feltet udfyldes. Brugeren bliver simpelt låst i feltet,<br />
indtil der er indtastet noget.<br />
TilladNulmængde Sættes denne værdi til Nej, må feltet ikke være tomt, men må gerne indeholde en<br />
tom tekststreng.<br />
Indekseret Sættes denne værdi til Ja, bliver søgning på feltet hurtigere. Til gengæld bliver det<br />
langsommere at indtaste nye værdier i feltet. Der findes to udgaver: Ja - dubletter<br />
tillades og Ja - ingen dubletter. Det vil i praksis være den førstnævnte, du bruger.<br />
Den anden vælges automatisk i det felt, der udpeges til at være nøgle.<br />
Tip! Du kan altid få disse forklaringer frem på skærmen ved at bruge Hjælp-funktionen. Placér<br />
markøren i linjen <strong>med</strong> den feltegenskab, du vil vide noget om, og tryk på tasten F1.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Oprette databasen og den første tabel<br />
Indtaste data i tabellen<br />
Tilbage i databasevinduet ser du nu dit tabelnavn T_Kunde. Du<br />
kunne nu vælge at gå videre <strong>med</strong> at få lavet den næste tabel.<br />
Men inden vi gør det, skal vi lige se lidt nærmere på mulighederne<br />
<strong>med</strong> en eksisterende tabel.<br />
Til højre i databasevinduet har du knapperne Åbn, Design og<br />
Ny. Åbn bruges, når du vil ind i tabellen og se eller indtaste<br />
data i den. Design bruges til at ændre tabellens opbygning. Det<br />
var designvisning, du var inde i, da du oprettede tabellen.<br />
Klik på knappen Åbn (eller dobbeltklik på T_Kunde). Nu ser tabellen sådan<br />
ud<br />
:<br />
Her kan du allerede begynde at taste data ind. Markøren står og venter på dig i feltet KundeNr.<br />
Tryk på ENTER og udfyld de øvrige felter. Feltet KundeNr udfyldes automatisk. Når du er<br />
færdig <strong>med</strong> én kunde, hopper markøren automatisk ned på næste linje, dvs. opretter en ny post.<br />
Klik på knappen Visning (Tabelvisning) i værktøjslinjen. Tabellen vises nu i<br />
designvisning. Det har du brug for, hvis du vil ændre dens opbygning.<br />
Klik igen på Visning (Tabelvisning). Den har skiftet udseende. Nu er du tilbage<br />
til tabellens indhold (dataarkvisning).<br />
Men - der skal et lidt mere brugervenligt skærmbillede til, for at dit daglige arbejde <strong>med</strong><br />
systemet bliver til at holde ud.<br />
Autoformular<br />
Klik på værktøjet Autoformular (Nyt objekt). Formularen oprettes og åbnes<br />
straks.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
16
17<br />
Oprette databasen og den første tabel<br />
Sådan ser formularen ud. Her kan du indtaste,<br />
søge og ændre kundeoplysninger. Det kan godt<br />
være, at du ønsker at ændre og forbedre skærmbilledet.<br />
Det kommer vi til senere.<br />
For at indtaste en ny kunde, klikker du på<br />
knappen Ny Post (den <strong>med</strong> *).<br />
Opret 3 kunder mere:<br />
Cleno<br />
Corso Pass. 8<br />
9999 Solby<br />
Tlf: 99 02 55 46<br />
Fax: 99 02 55 40<br />
Kontaktperson: Peter Topp<br />
Liberty<br />
Europa Pl. 5<br />
9999 Solby<br />
Tlf: 99 81 23 45<br />
Fax:<br />
Kontaktperson: Anne Duval<br />
Jumbo Toys<br />
Ming St. 90<br />
9999 Solby<br />
Tlf: 98 50 20 01<br />
Fax: 98 50 20 02<br />
Kontaktperson: Joe Kern<br />
Du kan blade i dem bagefter <strong>med</strong> tasterne PageUp og PageDown. Brugen af formularen<br />
blev i øvrigt beskrevet på side 6.<br />
Formularen skal gemmes. Vælg menukommandoen Filer, Gem<br />
Tast: FM_Kunde - klik på OK.<br />
Luk formularen igen ved at vælge<br />
menukommandoen Filer,<br />
Luk. Du kommer nu tilbage til<br />
tabellen. Også denne lukkes <strong>med</strong><br />
Filer, Luk. Du er nu tilbage i<br />
databasevinduet. Under fanebladet<br />
Tabeller har du din tabel T_Kunde, og under fanebladet Formularer har du formularen<br />
FM_Kunde. Klik skiftevis på fanebladene.<br />
I en senere øvelse kommer vi ind på, hvad du mere kan gøre <strong>med</strong> formularer.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Tabellerne til faktura<br />
Øvelse 3: Tabellerne til faktura<br />
I denne øvelse lærer du følgende:<br />
• at oprette to tabeller, der danner grundlag for ét skærmbillede<br />
• at bruge datatypen Tal i tabeller<br />
Fakturaer skal lagres ved hjælp af to tabeller: Én tabel til fakturahovede (Fakturanr, Kundenr,<br />
Dato), og én tabel til én eller flere linjer <strong>med</strong> fakturaens indhold.<br />
Tabellen fakturahovede<br />
Du står i databasevinduet. Hvis ikke, går du derind <strong>med</strong> menukommandoen Vindue,<br />
Firma - database. Klik på fanebladet Tabeller. Klik på knappen Ny. Vælg Designvisning<br />
og klik OK.<br />
Tabellen skal indeholde de oplysninger, som er til stede én gang på hver faktura. Det vil sige<br />
FakturaNr, KundeNr og Dato. De oplysninger, der kan optræde flere af på hver faktura, dvs.<br />
hvad kunden har købt, skal i en tabel for sig. Det laver du bagefter, og så får du det hele til at<br />
spille sammen til sidst.<br />
Tast: FakturaNr som feltnavn. Tryk ENTER. Vælg Autonummerering. Tryk<br />
ENTER. Skriv en kort tekst i feltet Beskrivelse. Klik på værktøjet Primær<br />
nøgle for at udnævne dette felt til nøgle. Tryk ENTER.<br />
Tast: KundeNr. Tryk ENTER. Nu er det vigtigt at vælge den<br />
rette datatype. Kundenummeret skal som datatype svare til<br />
det felt, der hedder KundeNr i tabellen T_Kunde. Her var<br />
det Autonummerering - hvilket svarer til datatypen Langt<br />
heltal (dobbelt heltal). Vælg: Tal i feltet. Tryk ENTER.<br />
Bemærk, at Langt heltal (dobbelt heltal) er valgt som feltstørrelse<br />
i listen over feltegenskaber. Klik i feltet Standardværdi.<br />
Slet nullet. Gå tilbage til feltet Beskrivelse for oven -<br />
skriv Kundenr - og tryk ENTER.<br />
Skriv: Dato. Tryk ENTER. Vælg Dato/klokkeslæt og<br />
tryk ENTER igen. Udfyld feltegenskaberne som vist på<br />
illustrationen. Som format vælges Kort datoformat, og i<br />
feltet Standardværdi skriver du:<br />
=Date()<br />
Det betyder, at standardværdi i feltet vil være dags dato.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
18
19<br />
Tabellerne til faktura<br />
Du er nu klar til at gemme dit tabeldesign. Vælg menukommandoen Filer, Gem. Tast:<br />
T_Fakturahoved og klik på OK. Vælg menukommandoen Filer, Luk for at lukke tabellen.<br />
Du kommer nu tilbage til databasevinduet.<br />
Tabellen Fakturalinje<br />
I denne tabel gemmes oplysninger om, hvad kunden har købt på hver faktura. Det skal i en separat<br />
tabel, fordi der kan være mange fakturalinjer på én faktura.<br />
Klik på knappen Ny. Vælg Designvisning og klik OK.<br />
Tabellen Fakturalinje skal indeholde følgende: FakturalinjeNr (primær nøgle), FakturaNr<br />
(så det er éntydigt, hvilken faktura, linjen hører hjemme på), FakturaTekst (hvad kunden<br />
har købt), Antal (antal enheder af det købte) og Pris pr. enhed. Dette er de nødvendige<br />
oplysninger. Udregning af total og moms hører ikke hjemme her!<br />
Feltegenskaberne i tabellen kan se sådan ud:<br />
FakturalinjeNr Feltet har datatypen Autonummerering, og det er udnævnt til primær nøgle.<br />
Du behøver ikke gøre noget ved feltegenskaberne.<br />
FakturaNr Her er det vigtigt at få det korrekt.<br />
Feltet henviser jo til fakturanummeret i<br />
tabellen T_Fakturahovede.<br />
Datatype er Tal. Feltet, der henvises<br />
til, er af datatypen Autonummerering.<br />
Det svarer til feltstørrelsen Langt heltal<br />
(Dobbelt heltal). Sæt Obligatorisk<br />
(Påkrævet) til Ja - det ville jo være<br />
absurd at indtaste fakturaoplysninger,<br />
som ikke hører hjemme på nogen faktura!<br />
Indekseret kan sættes til Ja - dubletter tillades.<br />
FakturaTekst Her er der ikke noget videre at gøre. Jeg har sat feltstørrelsen<br />
til de 50, systemet selv foreslår, men om<br />
det er nok, afhænger af, hvem der skal bruge systemet.<br />
Antal Feltet Antal har datatypen Tal, og under Feltstørrelse<br />
angiver du Reelt tal. Det betyder<br />
decimaltal. Det kunne jo være, at rengøringsfirmaet<br />
solgte halve og kvarte timers service.<br />
Slet nullet ved Standardværdi - systemet skal ikke selv foreslå noget i dette<br />
felt.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Tabellerne til faktura<br />
Pris Pris har formatet Valuta. Antal Decimaler er 2<br />
- dvs. alle beløb vises <strong>med</strong> 2 decimaler. Slet nullet<br />
ud for Standardværdi - feltet skal formodentlig<br />
udfyldes <strong>med</strong> noget andet end nul.<br />
Vælg menukommandoen Filer, Gem. Tast: T_Fakturalinje. Klik på OK. Luk tabellen<br />
<strong>med</strong> menukommandoen Filer, Luk.<br />
Nu er du færdig <strong>med</strong> at oprette tabellerne i dit fakturasystem.<br />
Øvelse 4: Relationer<br />
I denne øvelse lærer du:<br />
• at oprette relationer mellem tabeller<br />
• at sørge for sikkerhed (referentiel integritet)<br />
Jeg har nævnt flere gange, at vi ville få tabellerne til at hænge sammen. Det skal vi til at arbejde<br />
på nu. I <strong>Access</strong> har du et nemt og overskueligt skærmbillede, hvor du sammenkæder tabellerne<br />
på en sådan måde, at der for eksempel ikke kan oprettes fakturaer på et kundenummer, som<br />
(endnu) ikke eksisterer.<br />
Tabellen T_Kunde hænger sammen <strong>med</strong> tabellen T_Fakturahoved på den måde, at feltet KundeNr<br />
stemmer overens i de 2 tabeller. Når man på et fakturahovede skriver et kundenummer, er<br />
der ikke tvivl om, hvilken kunde, det drejer sig om.<br />
Tabellen T_Fakturahoved hænger sammen <strong>med</strong> tabellen T_Fakturalinje på den måde, at feltet<br />
FakturaNr stemmer overens i de 2 tabeller. Fakturanummeret i en fakturalinje siger entydigt,<br />
hvilken faktura, linjen hører hjemme i.<br />
Du behøver ikke oprette relationerne som vist i det følgende. Du kan godt få tabellerne til at<br />
“spille sammen” alligevel ved hjælp af forespørgsler, som du senere vil få at se. Når jeg alligevel<br />
råder dig til at gøre det, skyldes det sikkerhed. Referentiel integritet giver en vis beskyttelse<br />
mod urigtige oplysninger i din database. Desuden bliver det nemmere at lave forespørgsler senere.<br />
Takket være dine oprettede relationer vil det være meget nemt at se, hvordan tabellerne hænger<br />
sammen. Det får du også at se senere.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
20
21<br />
Tabellerne til faktura<br />
Sådan åbner du relationsbilledet: Klik på værktøjet Relationer (eller vælg menukommandoen<br />
Funktioner, Relationer). Det tomme relationsbillede åbnes.<br />
Klik på værktøjet Vis tabel (kun i <strong>Access</strong> 97). Vælg T_Kunde og klik på Tilføj.<br />
Vælg T_Fakturahoved og klik på Tilføj. Vælg til sidst T_Fakturalinje og<br />
klik på Tilføj. Klik på Luk.<br />
Du er nu klar til at<br />
markere <strong>med</strong> musen,<br />
hvordan relationerne<br />
skal være. Peg på<br />
KundeNr i T_Kunde<br />
<strong>med</strong> musmarkøren.<br />
Træk <strong>med</strong> musknappen<br />
- og slip på KundeNr<br />
i T_Fakturahoved.<br />
Tip: Relationer trækkes altid fra et nøglefelt (markeret <strong>med</strong> fed skrift) til et tilsvarende<br />
ikke-nøglefelt i en anden tabel!<br />
I et specielt vindue opfordres du til at<br />
specificere relationen nærmere. Afkryds<br />
Gennemtving referentiel integritet og<br />
klik på Opret.<br />
Hvad er referentiel integritet?<br />
Referentiel integritet betyder, at systemet<br />
sørger for, at data i de to tabeller svarer til<br />
hinanden. 1) Der vil ikke kunne oprettes<br />
fakturaer til et kundenummer, som endnu<br />
ikke findes. 2) En kunde kan ikke slettes,<br />
hvis systemet indeholder én eller flere<br />
fakturaer til kundenummeret. Ønskes kunden slettet, skal fakturaerne slettes først!<br />
Træk på samme måde en relation fra<br />
FakturaNr i T_Fakturahoved til<br />
FakturaNr i T_Fakturalinje. Vælg<br />
Gennemtving referentiel integritet i<br />
dialogboksen - og Opret.<br />
Tip: Hvis du vil slette en relation,<br />
klikker du på dens symbol (den fede, knækkede streg) og trykker på DELETE.<br />
Tip tip: Hvis du vil ind i dialogboksen for at ændre relationens egenskaber, dobbeltklikker<br />
du på den fede, knækkede streg.<br />
Gem relationsdefinitionen <strong>med</strong> menukommandoen Filer, Gem. Luk billedet <strong>med</strong> Filer,<br />
Luk.<br />
Vi kunne beskæftige os meget mere <strong>med</strong> relationer. Men dette er, hvad du behøver nu. Som sagt<br />
findes der andre typer af relationer end én-til-mange, men dem kommer vi ikke yderligere ind<br />
på i dette hæfte..<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Forespørgsel til sortering<br />
Øvelse 5: Forespørgsel til sortering<br />
I denne øvelse lærer du:<br />
• at oprette en forespørgsel<br />
• at bruge en forespørgsel til at præsentere en tabel sorteret<br />
Forespørgsler bruges til mangt og meget. Dels bruges de til at vise udvalgte data fra én eller flere<br />
tabeller. Dels bruges de - som i det følgende eksempel - til at vise alle data i tabellen på en<br />
redigeret måde. I dette tilfælde sorteret.<br />
Denne forespørgsel skal vise kunderne sorteret i alfabetisk orden efter kundenavn. I tabellen<br />
opbevares de for indeværende i stigende orden efter kundenummer.<br />
Klik på fanebladet Forespørgsler i databasevindet. Vælg Ny, Designvisning og OK.<br />
Vælg T_Kunde under fanebladet Tabeller. Klik på Tilføj og på Luk.<br />
Dobbeltklik på<br />
KundeNr. Herved<br />
indsættes feltet i<br />
gitterværket for<br />
neden. Dobbeltklik<br />
på alle felter ét efter<br />
ét, således at de<br />
alle overføres.<br />
Tip: Felterne kan<br />
også overføres ved<br />
at du trækker dem<br />
ned og slipper på<br />
gitterværket i den<br />
ønskede kolonne.<br />
Klik i rækken Sorter i kolonnen Firmanavn (Ordet Sorter står<br />
helt ude til venstre). Vælg Stigende.<br />
Gem forespørgslen <strong>med</strong> menukommandoen Filer, Gem. Tast:<br />
FS_KundeAlfabetisk og vælg OK.<br />
Vælg menukommandoen Vis, Dataarkvisning (Dataark) eller klik på værktøjet<br />
Visning (Forespørgselsvisning). Nu ser du resultatet af forespørgslen. Kunderne<br />
er sorteret i alfabetisk orden efter firmanavn.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
22
23<br />
Forespørgsel til sortering<br />
Den opstilling, du nu kommer ind i, ligner til forveksling din tabel. Og du kan bruge den som<br />
om den var en tabel, dvs. du kan indtaste nye data. Forespørgslen er en slags “briller”, der er<br />
lagt oven på tabellen (i dette tilfælde må man vist nærmest sige, at der er vinduesglas i brillerne).<br />
Men tabellen kan opdateres gennem forespørgslen - og det kan du udnytte senere, når du<br />
laver nye skærmformularer.<br />
Gå tilbage til designbilledet ved at vælge menukommandoen Vis, Designvisning<br />
(Forespørgselsdesign) eller klikke på værktøjet Visning<br />
(Forespørgselsvisning).<br />
Luk forespørgslen ved at vælge menukommandoen Filer, Luk.<br />
Øvelse 6: Kombinere tabeller<br />
I denne øvelse lærer du:<br />
• at oprette en forespørgsel, der får flere tabeller til at spille sammen<br />
Tabellerne T_Fakturahoved og T_Kunde skal spille sammen i det færdige system. Det skal være<br />
sådan, at når du indsætter kundenummeret på en faktura, henter den selv kundens navn og<br />
adresse. Det kan den gøre takket være de relationer, du definerede i øvelsen Relationer.<br />
Klik på fanebladet Forespørgsler i databasevindet. Vælg Ny, Designvisning og OK.<br />
Vælg T_Fakturahoved under fanebladet Tabeller. Klik<br />
på Tilføj. Vælg derefter T_Kunde, Tilføj og Luk.<br />
Som du ser, fremgår det af stregen mellem tabellerne,<br />
hvordan de er relateret til hinanden. Det er vigtigt, at du<br />
har den “styrende” tabel til venstre.<br />
Nu skal vi have data fra disse to tabeller til at arbejde<br />
sammen. Dobbeltklik på: FakturaNr, KundeNr i den<br />
venstre tabel - og så går du over i højre tabel - Firmanavn,<br />
Adresse, PostnrBy - og så tilbage i venstre tabel<br />
igen - Dato. Dit gitterværk ser nu sådan ud:<br />
Der er endnu ingen data lagt ind, men du kan godt prøve at “køre” forespørgslen alligevel.<br />
Vi kan jo prøve at indtaste noget! Vælg menukommandoen Vis, Dataarkvisning<br />
(Dataark).<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Forespørgsel til sortering<br />
Vi indtaster nu en faktura, selv om det er absurd. Det bliver nemlig en faktura uden varer!<br />
Det er bare for at se, hvordan det virker. Senere lægge vi fakturalinjer på, så kunden får<br />
noget at betale for! Tryk ENTER under FakturaNr. Dette felt er en tæller, og opdateres<br />
derfor af systemet. Under KundeNr taster du 1 og trykker ENTER. Resten kom frem af<br />
sig selv! Det skulle dine relationer bruges til.<br />
Men som sagt, der er ikke meget ved en faktura uden varer. Så vi lader dette stå, og venter på<br />
chancen for at udfylde faktura nummer 1 senere.<br />
Gem forespørgslen ved at vælge menukommandoen Filer, Gem. Tast:<br />
FS_Fakturahoved og klik på OK. Luk forespørgslen <strong>med</strong> menukommandoen Filer,<br />
Luk.<br />
Øvelse 7: En forespørgsel der kan regne<br />
I denne øvelse lærer du følgende:<br />
• at oprette forespørgsler <strong>med</strong> felter, som udledes af felter i den underliggende tabel<br />
• at få en forespørgsel til at udføre beregninger<br />
Vi skal også lave en forespørgsel, der forbedrer lidt på tabellen T_Fakturalinje. Vi lægger ikke<br />
moms og total ind i en tabel, for de kan nemlig udledes af andre oplysninger. I en forespørgsel<br />
er det til gengæld helt normalt at have udregninger. Når du senere bruger denne forespørgsel til<br />
at bygge en formular over, vil moms og total blive regnet automatisk ud på skærmen.<br />
Vælg fanebladet Forespørgsler i databasevinduet. Vælg Ny, Designvisning og OK. Klik<br />
på T_Fakturalinje, Tilføj og Luk.<br />
Dobbeltklik på<br />
alle tabellens<br />
felter ét efter<br />
ét, så de overføres<br />
til gitterværket.<br />
Kør lidt mod højre ved hjælp af det vandrette rullepanel. Du skal hen efter<br />
Pris og oprette et par resultatfelter mere.<br />
Stil markøren i feltet lige efter Pris. Indtast: Total: Pris*Antal<br />
Tryk ENTER<br />
Kommentar: * er gangetegn.<br />
Kommentar: Husk det er kolon efter Total<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
24
25<br />
Forespørgsel til sortering<br />
Det vil også være smart, hvis du angiver, at formatet i dette resultatfelt skal være Valuta.<br />
1. Højreklik i feltet <strong>med</strong> udregningen.<br />
2. Vælg Egenskaber.<br />
3. Vælg Valuta i feltet Format.<br />
4. Luk egenskabs-vinduet.<br />
Klik i det næste tomme felt mod højre.<br />
Indtast: Moms: Total*0,25<br />
Kommentar: Husk det er normalt komma som decimaltegn. Dette er angivet i programmet<br />
International. Det finder du ved at klikke på <strong>Start</strong>-knappen. Vælg Indstillinger,<br />
Kontrolpanel og International. Under fanebladet Valuta kan formatet ses eller ændres.<br />
Også på dette felt højreklikker du, vælger Egenskaber og sætter Format til Valuta på<br />
samme måde som før.<br />
Gem forespørgslen ved at vælge menukommandoen Filer, Gem. Tast: FS_Fakturalinje<br />
og klik på OK.<br />
Skal vi prøve, om den virker? Vælg menukommandoen Vis, Dataarkvisning (Dataark).<br />
Nu prøver vi at lægge en enkelt fakturalinje ind på faktura nr. 1 - selv om det stadig virker<br />
noget usammenhængende.<br />
Tryk ENTER i feltet FakturalinjeNr.<br />
Tast: 1<br />
Tryk ENTER.<br />
Skriv: Rengøring og tryk ENTER.<br />
Tast: 2 og tryk ENTER.<br />
Tast: 100 og tryk ENTER<br />
Vupti! Total og moms er udregnet automatisk. Lad være <strong>med</strong> at indtaste mere lige nu.<br />
Luk din forespørgsel ned <strong>med</strong> menukommandoen Filer, Luk. Du er nu færdig <strong>med</strong> forespørgsler<br />
i denne omgang, selv om der kunne siges meget mere om emnet.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Forespørgsel til sortering<br />
Øvelse 8: Et nyt og bedre kundekartotek<br />
I denne øvelse lærer du følgende:<br />
• at oprette formularer<br />
• at søge i formularen<br />
• at se formularen i dataarkvisning<br />
• at sortere data i formularen<br />
• at indsætte et værktøj til automatisk telefonopkald<br />
Du har allerede oprettet formularer i tidligere øvelser. Det gik hurtigt og nemt <strong>med</strong> autoformularer.<br />
Denne gang benytter du guiden formular. Den hjælper dig, men du får selv mere indflydelse<br />
på formularens udformning.<br />
I databasevinduet vælger du fanebladet Forespørgsler. Klik på FS_KundeAlfabetisk, så<br />
den er markeret. Denne forespørgsel kan du bruge til at bygge en formular over.<br />
Vælg menukommandoen Indsæt, Formular.<br />
Vælg Formularguide (Guiden Formular).<br />
Bemærk, at forespørgslen<br />
FS_KundeAlfabetisk er valgt i feltet Marker<br />
den tabel eller forespørgsel, hvor objektets<br />
data kommer fra. Klik OK.<br />
Klik på symbolet >> for at anvende alle forespørgslens<br />
datafelter i formularen. Felterne<br />
overføres til kolonnen Valgte felter. Klik på<br />
Næste.<br />
Vælg Enkeltkolonne. Klik på Næste. Guiden foreslår nu forskellige færdigstrikkede<br />
layouts til dit skærmbillede. Du kan klikke på dem ét for ét og se til<br />
venstre i vinduet, hvordan de ser ud. Skyer er især populær blandt piloter,<br />
præster og meteorologer. Standard er mere kedelig, men til gengæld skal din<br />
skærm ikke bruge tid på at opdatere al den grafik. Vælg alligevel Skyer, det<br />
giver stemning. Klik på Næste.<br />
Formulartitlen skal være:<br />
FM_Kundekartotek. Klik til sidst på Udfør.<br />
Formularen er klar til brug. Se på side 6,<br />
hvordan formularen anvendes.<br />
Lav en søgning efter firmaet Liberty. <strong>Start</strong> <strong>med</strong> at klikke på værktøjet Søg (eller<br />
vælge menukommandoen Rediger, Søg).<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
26
27<br />
Skriv: Liberty i feltet Søg<br />
efter. Klik i feltet Søg på<br />
og vælg En del af feltet.<br />
Sørg for, at der ikke er hak<br />
i feltet Kun aktuelt felt<br />
(Aktuelt felt). Klik på<br />
Find første. Klik på Luk.<br />
Kunden er fundet!<br />
Forespørgsel til sortering<br />
Undervejs lagde du måske mærke til, at du har forskellige muligheder for at søge. Hvis du har<br />
mange data, betaler det sig at klikke i feltet Firmanavn, før du aktiverer Søg. Du sætter markering<br />
<strong>med</strong> Kun aktuelt felt, og sparer derved <strong>Access</strong> for en masse arbejde.<br />
Slette en post<br />
Lad mig lige advare dig på forhånd: I et system som dette, hvor kundekartoteket hænger sammen<br />
<strong>med</strong> fakturering, går man ikke bare sådan rundt og sletter kunder. Er der lagt blot én faktura<br />
ind på kunden, får du ikke lov at slette den, takket være de relationer, du oprettede tidligere<br />
(<strong>med</strong> påtvunget referentiel integritet). Kundenummeret på fakturaen skal henvise til en post i<br />
kundekartoteket! Men: Hvis du har fulgt hæftet bogstaveligt, er der ikke lagt nogen faktura ind<br />
på andre kunder end The Shop. Men du kunne jo slette Liberty, som du netop søgte frem...<br />
Klik på den lodrette bjælke til venstre i skærmbilledet. Herved markeres den.<br />
Tryk på tasten DELETE.<br />
Bekræft at posten skal slettes. Eller fortryd.<br />
NB! Når du har bekræftet, og posten er slettet, kan du ikke fortryde sletningen.<br />
Se posterne i tabelform<br />
Hvis du vil se mange kunder på skærmen ad gangen, vælger du menukommandoen Vis,<br />
dataarkvisning (Dataark) eller klikker på den lille listepil ved værktøjet Visning<br />
(Formularvisning) - og vælger Dataarkvisning (Dataark).<br />
Du kan ændre kolonnebredden<br />
ved at<br />
placere markøren på<br />
den lodrette streg<br />
mellem to overskrifter<br />
i den grå linje. F.<br />
eks. mellem overskrifterne Firmanavn og Adresse. Markøren ændres til en dobbeltpil,<br />
og du kan trække kolonnens bagkant mod højre eller venstre.<br />
Gå tilbage til formularvisning ved at vælge menukommandoen Vis, Formularvisning<br />
(Formular).<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Forespørgsel til sortering<br />
Vise posterne sorteret på en anden måde<br />
Hvis du pludselig får brug for at have posterne sorteret efter noget andet end firmanavn, gør du<br />
følgende:<br />
Du er tilbage i formularvisning. Klik i det felt, der skal sorteres ud fra, for eksempel<br />
KundeNr. Klik på symbolet Sorter stigende (eller vælg menukommandoen<br />
Poster, Sorter, Sorter stigende).<br />
Når du er færdig <strong>med</strong> at lege <strong>med</strong> din formular, lukker du den af <strong>med</strong> menukommandoen<br />
Filer, Luk.<br />
Den nye sortering bliver ved <strong>med</strong> at gælde - også efter, at formularen har været lukket. Også<br />
selv om formularen bygger på forespørgslen FS_KundeAlfabetisk. Derfor kan du <strong>med</strong> rette<br />
spørge, hvorfor du overhovedet skulle oprette en sorterende forespørgsel. Som systemudvikler<br />
er det dit valg, på hvilket niveau en sortering skal oprettes - tabel, forespørgsel, formular eller<br />
rapport. I dette fakturasystem får du for øvrigt brug for FS_KundeAlfabetisk i en senere opgave<br />
- så arbejdet er ingenlunde spildt.<br />
Automatisk telefonopkald<br />
Når du bruger dit kundekartotek til at slå et telefonnummer op, er det smart, hvis du også kan få<br />
<strong>Access</strong> til at ringe op til kunden. Det skal du nu oprette et værktøj til. Det virker kun, hvis du<br />
har modem! Hvis ikke, springer du denne del af opgaven over.<br />
Åbn formularen FM_Kundekartotek i designvisning.<br />
Klik på værktøjet Værktøjskasse (eller vælg menukommandoen Vis, Værktøjskasse),<br />
hvis værktøjskassen ikke allerede vises.<br />
Klik på værktøjet Kontrolelementguider. Knappen skal “trykkes ind”, hvis den<br />
ikke allerede er “inde” (vises <strong>med</strong> en lysere farve).<br />
Klik på værktøjet Kommandoknap. Klik et passende sted i formularen, for<br />
eksempel tæt ved feltet Telefon. Guiden starter nu.<br />
Vælg Diverse og Autoopkald.<br />
Klik på Næste.<br />
Klik på Næste for at acceptere billedet Telefon1.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
28
29<br />
Navngiv knappen:<br />
KommandoknapAutoopkald<br />
Klik på Udfør.<br />
Knappen er nu indsat på formularen.<br />
Gem formularen <strong>med</strong> Filer, Gem.<br />
Gå til formularvisning <strong>med</strong> værktøjet<br />
Visning (Formularvisning).<br />
Sådan ringer du til en kunde: Klik i det<br />
felt, der indeholder telefonnummeret.<br />
Klik på telefonknappen.<br />
Klik på OK for at acceptere nummeret.<br />
Vent.<br />
Løft røret, og klik på Samtale.<br />
Se på side 54, hvordan du hurtigt kan slå<br />
op på en ønsket kunde.<br />
Træt af skyerne?<br />
Er du træt af de dumme skyer på din formular?<br />
Forespørgsel til sortering<br />
Åbn formularen FM_Kundekartotek i designvisning. Formularen<br />
skal være markeret. Hvis den ikke er markeret, klikker du på<br />
den lille firkant i dens øverste, venstre hjørne. Formularen er<br />
markeret, når firkanten indeholder en lille sort firkant som vist<br />
på billedet. Formularen er automatisk markeret, hvis du netop<br />
har åbnet den - og ikke klikket på noget endnu.<br />
Vælg menukommandoen Formater, Autoformat. Vælg Standard og OK. Luk formularen<br />
<strong>med</strong> Filer, Luk.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Skærmbilleder til fakturaer<br />
Øvelse 9: Skærmbillede til fakturaer<br />
I denne øvelse lærer du følgende:<br />
• at oprette en formular <strong>med</strong> underformular<br />
• at ændre i en formular<br />
Du skal nu oprette en ny formular, som indeholder en anden formular: Nemlig en fakturahovede-formular,<br />
som indeholder en formular <strong>med</strong> fakturalinjer. På den måde kan vi få fakturahovedet<br />
til at hænge sammen <strong>med</strong> fakturalinjerne på skærmen.<br />
I databasevinduet klikker du på fanebladet Forespørgsler. Klik på FS_Fakturahoved, så<br />
den er markeret.<br />
Vælg menukommandoen Indsæt, Formular. Vælg Guiden formular og klik på OK.<br />
Klik på symbolet >> for at overføre alle forespørgslens felter til den nye formular.<br />
Der skal også data <strong>med</strong> fra forespørgslen<br />
FS_Fakturalinje. Vælg FS_Fakturalinje i feltet Tabeller/forespørgsler.<br />
Overfør felterne FakturaTekst, Antal, Pris, Total og Moms. Altså ikke FakturalinjeNr<br />
og FakturaNr. De har betydning for sammenkædning af data, men du behøver ikke se<br />
dem på skærmen. Fakturanummeret fremgår jo af fakturahovedet.<br />
Du kan overføre felterne enten ved at dobbeltklikke på dem ét for ét, eller ved at bruge<br />
knappen ><br />
Klik på Næste. <strong>Access</strong> foreslår, at der oprettes en formular <strong>med</strong> underformular styret af<br />
FS_Fakturahoved. Det er OK, så du vælger igen Næste.<br />
Vælg Tabelformat som layout til underformularen. Klik på Næste.<br />
Vælg Farverigt2 - og klik Næste.<br />
Udfyld feltet Formular <strong>med</strong> titlen:<br />
FM_Fakturahoved<br />
- og feltet Underformular <strong>med</strong>:<br />
FM_FakturalinjeUnderformular<br />
- og klik på Udfør. Vente et øjeblik. Din ny formular<br />
åbnes.<br />
Hvis du har fulgt de tidligere øvelser, er der allerede oprettet en faktura. Den<br />
vises i formularen nu. Nu er du klar til at oprette en ny faktura: Vælg menukommandoen<br />
Poster, Dataindtastning (eller klik på værktøjet Ny post i<br />
værktøjslinjen).<br />
Tryk ENTER for at komme til feltet KundeNr. Tast: 2 og tryk ENTER. Hele den øverste<br />
del af fakturaen er nu udfyldt. Kundens navn og adresse kom automatisk frem. Tryk<br />
ENTER 4 gange. Markøren står nu i feltet FakturaTekst.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
30
31<br />
Skærmbilleder til fakturaer<br />
Tast: Rengøring og tryk ENTER. Tast: 5 og tryk ENTER. Tast: 120 og tryk ENTER.<br />
Tryk 2 gange mere på ENTER. Udfyld på samme måde 3 timers vinduespudsning til<br />
samme timepris.<br />
Hvis du vil udfylde en faktura mere, skal du enten klikke i ét af fakturahovedets felter, før<br />
du vælger menukommandoen Poster, Dataindtastning - eller klikke på det nederste af<br />
Ny post-symbolerne - der skal nemlig oprettes et nyt fakturahovede, ikke blot en ny<br />
fakturalinje.<br />
Forbedring af formularen<br />
Formularen kan blive meget bedre. Vi vil gå ind og gøre følgende:<br />
• Tilretning af størrelse på formular og felter.<br />
• Kundenavn og -adresse i låste felter, så markøren hopper forbi.<br />
• Bedre skærmfarver.<br />
• Totalbeløb for neden på skærmbilledet.<br />
Gå ind i design-visning for at ændre formularen. Vælg menukommandoen Vis,<br />
Designvisning (Formulardesign) eller klik på værktøjet Visning<br />
(Formularvisning).<br />
Sådan ser formularen ud i<br />
designvisning. Gør den<br />
bredere ved at trække<br />
bagkanten mod højre.<br />
Klik på den hvide underformular.<br />
Herved markeres<br />
den <strong>med</strong> objekthåndtag.<br />
Gør også underformularen<br />
bredere ved at<br />
trække i objekthåndtaget<br />
midt på dens højre kant.<br />
Klik på værktøjet Visning<br />
(Formularvisning) for at checke resultatet og gå tilbage til designvisning igen.<br />
Flyt datofeltet<br />
op til højre på<br />
fakturahovedet<br />
således: Markér<br />
feltet ved klik.<br />
Placér markøren<br />
nær overkanten<br />
af feltet<br />
- markøren ændres til en flad hånd (den må ikke være en hånd, der peger). Træk feltet til<br />
ønsket position.<br />
Tip: Den pegende hånd bruges til at flytte et felt uafhængigt af titlen eller omvendt. Placér<br />
markøren i øverste venstre hjørne af objektet (felt eller titel) for at ændre markøren til<br />
hånden, der peger.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Skærmbilleder til fakturaer<br />
Giv fakturahovedet en anden bundfarve: Klik et neutralt sted i fakturahovedet<br />
(det gule område, hvis du har farveskærm). Klik på listepilen ved værktøjet<br />
Fyld- og baggrundsfarve (Baggrundsfarve). Vælg en stærk gul, den<br />
er så livsbekræftende. Gem formularen ved at klikke på værktøjet Gem<br />
(eller menukommandoen Filer, Gem).<br />
Tip: Hvis du vil tilbage til standardformatet igen, vælger du menukommandoen Formater,<br />
Autoformat.<br />
Næste forbedring er at låse felterne FirmaNavn, Adresse og PostnrBy. Klik på disse 3<br />
felter - hold SHIFT nede, mens du klikker på de to sidstnævnte (den tast, der bruges til<br />
store bogstaver). Alle felterne er nu markeret <strong>med</strong> håndtag.<br />
Højreklik et sted ovenpå disse 3 markerede objekter. Vælg<br />
Egenskaber. Vælg fanebladet Data. Aktiveret skal være<br />
Nej, og Låst skal være Ja. Luk egenskabsvinduet igen.<br />
Titlen FM_Fakturalinje lige over underformularen kan<br />
undværes. Klik på den, så den markeres <strong>med</strong> objekthåndtag -<br />
og tryk DELETE.<br />
Underformularen skal også forbedres. Dobbeltklik midt i det<br />
hvide. Herved åbnes underformularen i designvisning. Hvis<br />
det ikke lykkes, klikker du en enkelt gang et neutralt sted i den øverste del af formularen<br />
(det gule område) - og dobbeltklikker igen midt i underformularen.<br />
Træk bjælken Formularfod lidt nedad<br />
(du trækker i overkanten af bjælken).<br />
Markér felterne ved navn Antal i både<br />
detaljesektion og formularhoved ved<br />
at trække musmarkøren hen over begge<br />
felter <strong>med</strong> musknappen nede. <strong>Start</strong><br />
nedefra i det neutrale område lige under<br />
Antal i detaljesektionen. Begge<br />
felter er nu markeret <strong>med</strong> objekthåndtag.<br />
Placér musmarkøren på det midterste objekthåndtag i højre side af ét af<br />
de to markerede felter. Markøren forvandles til en vandret dobbeltpil.<br />
Træk mod venstre således at begge felter forkortes.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
32
33<br />
Skærmbilleder til fakturaer<br />
Forkort felterne Pris, Total og Moms på samme måde. Flyt disse tre felter mod venstre,<br />
så der ikke er for meget luft imellem dem.<br />
Gå helt ud til højre i formularen og træk bagkanten mod venstre. Træk eventuelt bjælken<br />
Formularfod lidt op igen.<br />
Markér felterne Total og Moms uden at markere etiketterne i Formularhoved <strong>med</strong>. Disse<br />
felter skal låses, for her har brugeren ikke noget at gøre. Højreklik oven på ét af de markerede<br />
felter. Vælg Egenskaber. Vælg fanebladet Data og sæt Aktiveret til Nej og Låst<br />
til Ja. Luk egenskabsvinduet igen.<br />
Gem og luk underformularen: Filer, Gem og Filer, Luk.<br />
Der er plads nok til at gøre<br />
underformularen lidt højere.<br />
Den er stadig markeret <strong>med</strong><br />
objekthåndtag. Ellers klik en<br />
ekstra gang i det hvide. Træk<br />
opad i objekthåndtaget <strong>med</strong><br />
på underformularens højrekant, så den kommer op under PostnrBy. Pas på, at du ikke<br />
kommer til at flytte (<strong>med</strong> den flade hånd). Markøren skal være en lodret dobbeltpil, når<br />
du trækker.<br />
Træk på samme måde et par centimeter nedad i underkanten af underformularfeltet.<br />
Gem formularen ved at klikke på værktøjet Gem (eller <strong>med</strong> menukommandoen Filer,<br />
Gem).<br />
Gå tilbage til formularvisning <strong>med</strong> Vis, Formularvisning (Vis, Formular).<br />
Fakturaen er nu klar til brug. Der mangler dog især én ting: Totalt fakturabeløb.<br />
Inden vi ordner dét, kunne du måske lige fakturere kunde nr. 4 for:<br />
Rengøring, 6 timer (timepris: 110 kr.)<br />
Vinduespudsning, 3 timer (timepris 130 kr.)<br />
Luk derefter fakturaen <strong>med</strong> Filer, Luk.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Øvelse 10: Sum i nyt felt<br />
I denne øvelse lærer du:<br />
• at oprette et nyt felt på en formular<br />
• at kode en udregning<br />
Sum i nyt felt<br />
Der mangler fakturabeløb på fakturaen! Der kan jo være mange ydelser (mange fakturalinjer),<br />
og skærmen skal vise, hvor meget hele fakturaen lyder på.<br />
Summen opdaterer tallene i underformularen (<strong>med</strong> fakturalinjerne). Derfor skal du igen ind og<br />
ændre i underformularen.<br />
I databasevinduet vælger du fanebladet Formularer. Klik på<br />
FM_FakturalinjeUnderformular og på Design. Den åbnes nu i designvisning.<br />
Træk i underkanten af bjælken Formularfod. Herved<br />
oprettes et område, hvor du kan indsætte objekter,<br />
som altid vil være til syne nederst i underformularen.<br />
(Sådan trækker du: Placér markøren på nederste kant<br />
af formularfod-bjælken. Når markøren ændres til en<br />
lodret, gennemskåret dobbeltpil, holder du musknappen<br />
nede og trækker et par centimeter nedad.)<br />
Klik på værktøjet Værktøjskasse (eller vælg menukommandoen<br />
Vis, Værktøjskasse) for at få værktøjskassen frem - hvis denne<br />
særlige værktøjslinje ikke allerede vises.<br />
Klik på værktøjet Tekstboks. Klik et sted i formularfodens grå område. Der<br />
tegnes nu et felt.<br />
Klik på titlen Tekst10 (muligvis et andet tal),<br />
klik dernæst inde i feltet, så du får en indsætningsmarkør.<br />
Skriv Fakturabeløb og slet<br />
Tekst10.<br />
Klik på, og dernæst i, feltet Ubundet, så du får en indsætningsmarkør ind i dette felt.<br />
Skriv: =sum(Total+Moms)<br />
Tryk ENTER<br />
<strong>Access</strong> sætter feltnavnene ind i kantede parenteser.<br />
Dette felt leverer summen af alle totaler og al moms på fakturaen<br />
- dvs. fakturabeløbet.<br />
Resultatet i det nye felt <strong>med</strong> formlen skal vises i formatet Valuta. Højreklik på feltet.<br />
Vælg Egenskaber. Vælg fanebladet Formater. Klik i feltet Format og vælg Valuta<br />
(kan gøres ved at taste: v). Luk egenskabsvinduet igen.<br />
Fakturabeløbet skal være fremhævet på skærmbilledet. Klik på værktøjet Fed, mens feltet<br />
endnu er markeret.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
34
35<br />
Sum i nyt felt<br />
Gem og luk formularen <strong>med</strong> Filer, Gem og Filer, Luk.<br />
Åbn og maksimér FM_ Fakturahoved.<br />
Nu er det en svir at lægge fakturaer ind. Opret en faktura som den viste til kunde<br />
nummer 2.<br />
Ja, ja, det er sandt. Hvordan skal du kunne vide, hvilket kundenummer de enkelte har,<br />
når du har oprette 5000 kunder? Det ser vi på i næste øvelse...<br />
Opsummerende forklaringer<br />
Formularens forskellige dele<br />
Formularen består af 3 dele: et formularhoved, en detaljedel og en formularfod.<br />
De vandrette bjælker viser tydeligt, hvad der er hvad.<br />
I formularhovedet har du formularens titel.<br />
I området Detalje har du selve formularens indhold. Det vil sige alle felter og deres titeltekster.<br />
Du har desuden et specielt felt - det store - som indeholder underformularen.<br />
Du kan ændre formularens bredde ved at trække i den lodrette linje til højre.<br />
Flytte et kontrolelement<br />
Et kontrolelement får “håndtag”, når du klikker på det. Når musemarkøren derefter føres ind<br />
over kontrolelementet, ændres den til en “flad hånd”. Tryk musknappen ned, og hold den nede,<br />
mens du trækker kontrolelementet derhen, hvor du vil have det. Hvis det er en tekstboks, vil titelteksten<br />
flytte <strong>med</strong>. Hvis du vil flytte den ene af de to uafhængigt af den anden, skal du pege i<br />
kontrolelementets øverste, venstre hjørne. I stedet for en “flad hånd” bliver markøren til en<br />
“pegende hånd”, som vil trække den ene af de to ting <strong>med</strong> sig.<br />
Tip! Du kan også få den “flade hånd” til at komme frem ved at klikke midt på et umarkeret<br />
kontrolelement og holde musknappen nede.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Sum i nyt felt<br />
Tip! Du kan godt markere flere kontrolelementer på én gang. Træk musemarkøren - <strong>med</strong> musknapen<br />
holdt nede - hen over alle de kontrolelementer, du vil markere.<br />
En anden måde at gøre det på er at klikke på kontrolelementerne enkeltvis, mens du holder<br />
SHIFT-tasten nede.<br />
Ændre et kontrolelement<br />
Når kontrolelementet er markeret, kan du også foretage alle mulige andre ændringer: Størrelse,<br />
farve, egenskaber osv.<br />
Størrelse Træk i kontrolelementets håndtag. Hvis du ønsker, kontrolelementet skal<br />
tilpasses sit indhold, giver du kommandoen Formater, Størrelse, Tilpas til<br />
indhold.<br />
Slette Du sletter et markeret kontrolelement ved at trykke på tasten DELETE.<br />
Skrifttype Angiv ønsket skrifttype og -størrelse i boksene øverst på skærmen. Desuden<br />
har du mulighed for Fed og Kursiv, samt justering.<br />
Farve Klik på symbolerne Fyld og baggrundsfarve (Baggrundsfarve) og Skrift<br />
og forgrundsfarve (Forgrundsfarve) for at ændre farver.<br />
Låse kontrolelementer<br />
Du låser et felt i formularen ved at højreklikke på feltet og vælge Egenskaber (eller<br />
klikke på værktøjet Egenskaber efter at have markeret feltet). Vælg fanebladet Data.<br />
Aktiveret: Nej betyder, at markøren ikke hopper ind i feltet.<br />
Låst: Ja betyder, at der ikke kan skrives noget i feltet.<br />
Du kan lukke egenskabesvinduet igen ved at klikke på værktøjet Egenskaber en gang til.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
36
37<br />
Øvelse 11: Kombinationsboks<br />
I denne øvelse lærer du følgende:<br />
Kombinationsboks<br />
• at oprette et drop-down felt til at vælge kunde i på fakturaen<br />
• at bruge guiden i <strong>Access</strong>-værktøjskassen<br />
Selv om din fakturaformular allerede nu kan fungere til indtastning, mangler der en nem måde<br />
at vælge kunde på. Når du har oprettet mange kunder, kan du ikke huske kundenumrene. Derfor<br />
skal du kunne vælge kunde i et drop-down felt, også kaldet en kombinationsboks.<br />
I databasevinduet vælger du fanebladet Formularer. Åbn FM_Fakturahoved i designvisning.<br />
Slet feltet Kundenummer (både titel og felt skal slettes).<br />
Fremkald værktøjslinjen Værktøjskasse, hvis den ikke allerede er fremme. Du<br />
kan også hente værktøjslinjen <strong>med</strong> menukommandoen Vis, Værktøjskasse.<br />
Klik på værktøjet Kontrolelementguider. Knappen skal “trykkes ind”, hvis den<br />
ikke allerede er “inde” (vises <strong>med</strong> en lysere farve).<br />
Klik på værktøjet Kombinationsboks. Klik lige under feltet FakturaNr (ikke<br />
titlen helt ude til venstre). Nu starter guiden sit arbejde.<br />
<strong>Access</strong> foreslår, at kombinationsboksen<br />
skal slå værdierne op i en tabel eller forespørgsel.<br />
Det er netop sagen, så du vælger<br />
Næste.<br />
Det er bedst, hvis du kan vælge firmanavn<br />
i en alfabetisk liste. Derfor vælger<br />
du Forespørgsler (for neden i Vis) og<br />
FS_KundeAlfabetisk.<br />
Klik på Næste.<br />
Udvælg felterne KundeNr og Firmanavn<br />
ved at klikke 2 gange på ><br />
Klik på Næste.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Kombinationsboks<br />
Sådan vil kombinationsboksen præsentere kunderne i<br />
listen. Hvis du vil ændre kolonnebredderne, trækker du<br />
i de lodrette streger i overskriftslinjen. Klik på Næste.<br />
<strong>Access</strong> beder dig vælge, hvilket felt, der indeholder<br />
data, du vil gemme. Det skal være KundeNr. Klik på Næste.<br />
Vælg Gem værdien i dette felt og<br />
vælg KundeNr i listen.<br />
Klik på Næste.<br />
Tast: KundeNr som etiketnavn.<br />
Klik på Udfør.<br />
Højreklik på det ny felt og vælg Egenskaber. Klik på fanebladet Andre. Klik i feltet<br />
Navn. Skriv: KundeNr (det er en god idé at give feltet et navn, du let kan genkende - det<br />
vil du se, når du om lidt ændrer på tabulatorrækkefølgen).<br />
Luk egenskabsvinduet igen.<br />
Gem formularen <strong>med</strong> Filer, Gem og gå i formularvisning <strong>med</strong> Vis, Formularvisning<br />
(Formular).<br />
Nu vises formularen <strong>med</strong> den første faktura, der er indtastet. Tryk en gang på ENTER.<br />
Hov, hvad skete der? Markøren hoppede ikke til kundenummer! Det er fordi et nyt felt<br />
altid automatisk placeres sidst i tabulatorrækkefølgen. Gå tilbage til designvisning <strong>med</strong><br />
Vis, Designvisning (Formulardesign).<br />
Vælg menukommandoen Vis, Tabulatorrækkefølge.<br />
Klik én gang på den grå firkant til venstre for navnet KombinationsboksKundeNr.<br />
Herved markeres navnet.<br />
Træk derefter firkanten opad - og slip den lige efter FakturaNr.<br />
Klik på OK.<br />
Gem formularen <strong>med</strong> Filer, Gem. Gå i formularvisning <strong>med</strong> Vis, Formularvisning<br />
(Formular). Nu er du klar til at lægge fakturaer ind!<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
38
39<br />
Kombinationsboks<br />
Udskrift af en faktura<br />
Du kan indtil videre udskrive en faktura således (i en senere opgave opretter du en rapport, som<br />
giver en “rigtig” faktura).<br />
Klik på den lodrette bjælke til venstre i skærmbilledet. Herved markeres bjælken,<br />
det vil sige posten, og det vil igen sige fakturaen.<br />
Vælg menukommandoen Filer, Udskriv<br />
Vælg knappen Det markerede (Markerede poster).<br />
Klik på OK.<br />
Øvelse 12: Rapporter<br />
I denne øvelse lærer du:<br />
• at oprette rapporter<br />
• at ændre rapporter<br />
Selv om du kan se dine kunder på skærmen i formularen FM_Kunder (som også kan vises i tabelformat<br />
<strong>med</strong> kommandoen Vis, Tabelvisning), er det nyttigt at kunne udskrive en liste på<br />
papir. Sidst i øvelsen opretter du en rapport over al din fakturering.<br />
Kundeliste<br />
I databasevinduet går du ind under fanebladet Forespørgsler. Du kan lige så godt starte<br />
<strong>med</strong> at udpege den forespørgsel, rapporten skal bygge på. Klik på FS_KundeAlfabetisk.<br />
Vælg menukommandoen Indsæt, Rapport. Vælg Guiden Rapport og klik OK.<br />
Udvælg alle felter på nær Note ved at klikke 7<br />
gange på ><br />
Klik på Næste.<br />
Klik på Næste en gang mere, da du ikke i denne<br />
rapport har brug for grupperingsniveauer.<br />
Vælg Firmanavn som sorteringsnøgle 1. Klik på<br />
Næste.<br />
<strong>Access</strong> foreslår Tabelformat og Stående papirretning.<br />
Det er OK, så du klikker igen på Næste.<br />
Vælg for eksempel Kompakt som layout. Klik på Næste.<br />
Tast: Kundeliste som titel. Klik på Udfør.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Sådan ser din rapport ud -<br />
klar til print.<br />
Kombinationsboks<br />
Klik på værktøjet Luk for at se den i designvisning.<br />
Rapportdesign er bygget sådan op:<br />
• Rapporthoved: Indeholder elementer, der kun skal stå i<br />
starten af rapporten.<br />
• Sidehoved: Elementer, der skal stå øverst på hver side.<br />
• Detaljesektion: Fortløbende data.<br />
• Sidefod: Elementer, der skal stå nederst på hver side.<br />
• Rapportfod: Elementer, der kun skal stå til sidst i rapporten.<br />
Luk rapporten <strong>med</strong> Filer, Luk.<br />
Tilbage i databasevinduet vælger du fanebladet rapporter. Her ses din rapport. Du kan<br />
køre rapporten ved at dobbeltklikke på den (eller klikke og vælge Vis).<br />
Rapporten er gemt under navnet Kundeliste. Hvis du vil ændre den navn, højreklikker du<br />
på den, og vælger Omdøb. Indtast nyt navn og tryk på ENTER.<br />
Sortering og gruppering<br />
Hvis du klikker på værktøjet<br />
Sortering og gruppering (i<br />
designvisning), kommer du<br />
ind i et vindue, hvor du kan ændre på<br />
måden, kunder sorteres på. Du kan fx<br />
beslutte, at kunderne først skal sorteres<br />
efter PostnrBy - og indenfor hvert<br />
postnr efter Firmanavn. Hvis du ønsker<br />
det, skal det stilles op som vist på<br />
billedet. Du lukker vinduet igen<br />
ved at klikke på symbolet Sortering og<br />
gruppering.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
40
41<br />
Rapport over fakturering<br />
Kombinationsboks<br />
Vælg fanebladet Forespørgsler i databasevinduet. Klik på FS_Fakturalinje. Vælg menukommandoen<br />
Indsæt, Rapport. Vælg Guiden rapport og OK.<br />
Udvælg felterne FakturaNr, Fakturatekst, Total og Moms. Klik på Næste.<br />
<strong>Access</strong> foreslår, at der grupperes efter FakturaNr.<br />
Det accepterer du ved at klikke på Næste.<br />
Næste billede er opsummering og sortering.<br />
Det kan du springe over nu ved igen at klikke på<br />
Næste.<br />
Vælg Blok og klik på Næste. Vælg Erhvervsmæssig (Merkantilt) og klik på Næste.<br />
Tast: Fakturering som titel. Klik på Udfør.<br />
Sådan ser din rapport ud - pæn og nydelig. Det er en udmærket rapport, hvis du er ligeglad <strong>med</strong>,<br />
hvad der er solgt og momset totalt. Men det er du ikke ligeglad <strong>med</strong>!<br />
Vælg menukommandoen Vis, Designvisning (Rapportdesign).<br />
Træk nedad i nederste kant af bjælken Rapportfod, så der bliver<br />
plads til et indsætte et felt til en afsluttende hovedtotal.<br />
Hvis værktøjslinjen Værktøjskasse ikke allerede vises, fremkalder<br />
du den <strong>med</strong> menukommandoen Vis, Værktøjskasse (eller knappen<br />
Værktøjskasse).<br />
Klik på værktøjet Tekstboks. Klik i rapportfoden, der hvor hovedtotalen for<br />
salg skal indsættes. Indsæt en tekstboks mere, som skal være hovedtotal for<br />
moms.<br />
Lav titlerne om til Salg<br />
hovedtotal og Moms hovedtotal.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Kombinationsboks<br />
Klik på, og derefter i, det første af felterne <strong>med</strong> teksten Ubundet.<br />
Skriv: =sum(Total)<br />
Tryk ENTER<br />
Aktivér værktøjet Fed for at ændre feltet til fed skrift, mens den endnu er markeret. Højreklik<br />
på feltet, vælg Egenskaber og fanebladet Formater. Vælg Valuta i feltet Format.<br />
Luk egenskabsvinduet igen.<br />
Gå på samme måde ind i det andet felt <strong>med</strong> teksten Ubundet.<br />
Skriv: =sum(Moms)<br />
Tryk ENTER<br />
Aktivér værktøjet Fed for at ændre feltet til fed skrift, mens den endnu er markeret. Højreklik<br />
på feltet, vælg Egenskaber og fanebladet Formater. Vælg Valuta i feltet Format.<br />
Luk egenskabsvinduet igen.<br />
Gem rapporten. Se resultatet ved at klikke på værktøjet Vis udskrift (eller vælge<br />
menukommandoen Vis, Vis udskrift). Nu er der hovedtotaler på. Det er op<br />
til dig selv at rette videre på rapporten, hvis du ikke er tilfreds <strong>med</strong> udseendet.<br />
Øvelse 13: Udskrift af én faktura<br />
I denne øvelse lærer du følgende:<br />
• at oprette en rapport, der kun udskriver en enkelt post<br />
• mere om tilretning af rapporter<br />
At udskrive en faktura giver et særligt problem: Den skal nemlig kun udskrive én bestemt post,<br />
nærmere betegnet den aktuelle faktura. Derfor er der 3 led i denne opgave: 1) Oprette en forespørgsel,<br />
som passer til rapporten. 2) Oprette rapporten. 3) Oprette en knap i fakturaformularen,<br />
der bestiller en udskrift af den faktura, der ses på skærmen.<br />
Forespørgslen<br />
I databasevinduet klikker du på fanebladet Forespørgsler. Klik på FS_Fakturalinje og<br />
på knappen Ny. Vælg Guiden Simpel Forespørgsel<br />
og OK.<br />
Udvælg felterne FakturaNr, FakturaTekst, Antal,<br />
Pris, Total og Moms.<br />
Bliv i vinduet - klik ikke på Næste!<br />
I feltet Tabeller/Forespørgsler vælger du nu forespørgslen<br />
FS_FakturaHoved.<br />
Udvælg felterne KundeNr, Firmanavn, Adresse,<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
42
43<br />
Kombinationsboks<br />
PostnrBy og Dato på samme måde som før. Klik på Næste. Klik endnu en gang på næste<br />
for at acceptere <strong>Access</strong>’ forslag.<br />
Indtast titlen: FS_UdskrivFaktura. Klik på Udfør.<br />
Du har nu oprettet en forespørgsel,<br />
som indeholder alle<br />
de oplysninger, du har brug<br />
for på en faktura: Fakturanummer,<br />
kundeoplysninger,<br />
dato, ydelse, antal, pris og moms.<br />
Du mangler blot at ændre designet sådan, at den kun viser én faktura ad gangen.<br />
Gå i designvisning <strong>med</strong><br />
Vis, Designvisning (Forespørgselsdesign).<br />
Gør eventuelt feltet<br />
FakturaNr lidt bredere (træk i den<br />
korte, lodrette streg i den grå overbjælke).<br />
Klik i feltet Kriterier.<br />
Skriv: =Forms!FM_Fakturahoved!FakturaNr og tryk ENTER<br />
Forklaring: Forms betyder: Slå værdien op i en formular.<br />
! er skilletegn.<br />
FM_Fakturahoved er navnet på den formular, værdien skal findes i.<br />
FakturaNr er navnet på det felt i formularen, værdien står i.<br />
Med andre ord: Værdien i forespørgslens felt skal svare til den aktuelle værdi i formularen<br />
FM_FakturaHoved. Det kan du benytte dig af, når du senere opretter en knap, der kalder rapporten<br />
direkte fra faktura skærmbilledet.<br />
Husk: Navnet på formular og felt skal være skrevet helt i overensstemmelse <strong>med</strong> de navne, de<br />
pågældende elementer har i systemet. Hvis du ikke har fulgt bogen til punkt og prikke her til,<br />
kan det være andre navne hos dig.<br />
Gem forespørgslen. Prøv nu at køre den <strong>med</strong> menukommandoen<br />
Vis, Dataarkvisning (Dataark). Da <strong>Access</strong><br />
ikke lige nu “kigger” i en åben forespørgsel ved<br />
navn FM_Fakturahoved, spørges der efter fakturanummer.<br />
Hjælp systemet lidt, ved at bede om alle fakturalinjer<br />
fra faktura nr. 1. Klik derefter på OK.<br />
Nu vises den eller de linjer, som indgår på faktura nr. 1 - og det er lige præcis det, du har<br />
brug for - alle fakturalinjer fra én bestemt faktura! Luk forespørgslen igen <strong>med</strong> Filer,<br />
Luk.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Kombinationsboks<br />
Rapporten<br />
I databasevinduet vælger du forespørgslen FS_UdskrivFaktura. Vælg menukommandoen<br />
Indsæt, Rapport.<br />
Vælg Designvisning og OK. Denne gang skal du opbygge rapporten helt manuelt.<br />
Vælg Vis, Rapporthoved/rapportfod for at kalde disse sektioner frem. Så er du klar til<br />
arbejdet!<br />
Giv rapporten lidt mere bredde ved at trække bagkanten af det hvide lidt mod højre.<br />
Klik på værktøjet Etiket (hvis værktøjskassen ikke er fremme, vælger du Vis,<br />
Værktøjskasse). NB: Knappen ser lidt anderledes ud i <strong>Access</strong> 95.<br />
Klik i det hvide område under bjælken Rapporthoved - skriv: Faktura og tryk<br />
på ENTER. Vælg skriftstørrelse 16 og Fed. Vælg menukommandoen Formater, Størrelse,<br />
Tilpas til indhold<br />
.<br />
Træk ned i øverste kant af bjælken Sidehoved for at få mere plads i rapporthovedet.<br />
Klik på værktøjet Tekstboks. Klik i venstre side af rapporthovedet. Vælg<br />
skriftstørrelse 12. Højreklik på Ubundet og vælg Egenskaber. Vælg fanebladet<br />
Data. Vælg Firmanavn i feltet Kontrolelementkilde. Luk egenskabsboksen<br />
igen. Tilpas størrelsen af feltet <strong>med</strong> Formater, Størrelse, Tilpas til indhold.<br />
Kopier det nyoprettede felt, mens det stadig er markeret.<br />
Det nemmeste er at bruge tastkombinationen<br />
CTRL+C og umiddelbart derefter CTRL+V. Du kan<br />
også bruge menukommandoerne Rediger, Kopier og<br />
umiddelbart derefter Rediger, Sæt ind.<br />
Træk det nederste<br />
af de to<br />
felter (det<br />
markerede)<br />
over i højre side<br />
af rapporten.<br />
Du bruger “den flade hånd” til at trække <strong>med</strong>.<br />
Klik på titlen Tekst1 i venstre side. Tryk på tasten DELETE. Kun titlen må forsvinde.<br />
Firmanavn bliver stående. Ryk derefter Firmanavn helt ud til venstre. Feltet er nu markeret<br />
<strong>med</strong> objekthåndtag.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
44
45<br />
Kombinationsboks<br />
Mens Firmanavn i venstre side stadig er markeret, kopierer du feltet ved at tryk Ctrl+C<br />
og derefter CTRL+V 2 gange. Kopier på samme måde feltet i højre side 2 gange.<br />
Lav titlerne Tekst1 om til henholdsvis Kundenr, Fakturanr<br />
og Dato.<br />
Højreklik på det øverste felt <strong>med</strong> Firmanavn i højre side.<br />
Vælg Egenskaber og fanebladet Data. Vælg KundeNr i<br />
feltet Kontrolelementkilde.<br />
Tilpas på<br />
samme måde<br />
kontrolelmentkilde<br />
for alle<br />
de andre felter.<br />
Feltet<br />
øverst i venstre side er i orden: Firmanavn. Feltet under det skal være Adresse, og under<br />
det PostnrBy. I højre side skal det være Kundenr, Fakturanr og Dato.<br />
Gem rapporten <strong>med</strong> navnet Faktura.<br />
Klik i det<br />
hvide område<br />
under bjælkenSidehoved.<br />
Indsæt<br />
ved hjælp af<br />
værktøjet<br />
Etiket teksterne: Fakturatekst, Antal, Pris, Total og Moms. Skriftstørrelse skal være 12<br />
og det skal være <strong>med</strong> Fed.<br />
Indsæt ved<br />
hjælp af<br />
værktøjet<br />
Tekstboks<br />
felter i detaljesektionen.<br />
Brug højreklik og Egenskaber til at vælge kontrolelementkilde: Fakturatekst, Antal,<br />
Pris, Total og Moms. Skriftstørrelse skal være 12. Etiketter slettes for alle fem felter. For<br />
Pris, Total og Moms sætter du følgende egenskab: Under fanebladet Formater i egenskabsvinduet<br />
vælger du Standard ved Format.<br />
Tip: Du kan indstille egenskaber for alle tre felter på én gang. Marker alle felterne først<br />
ved at trække hen over dem <strong>med</strong> musmarkøren (start trækket uden for felterne) eller ved<br />
at markere det første, og dernæst klikke på de to næste <strong>med</strong> SHIFT-tasten holdt nede. Gå<br />
derpå ind i egenskaber via højreklik oven i ét af elementerne.<br />
Klik i området Sidefod. Indsæt en tekstboks <strong>med</strong> værktøjet<br />
Tekstboks. Vælg igen skriftstørrelse 12, og brug kommandoen<br />
Formater, Størrelse, Tilpas til indhold. Titlen laver du om til:<br />
Side og Ubundet overskriver du <strong>med</strong>: =Page<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Kombinationsboks<br />
Indsæt også en etiket <strong>med</strong> “dit eget” firmanavn og adresse et passende sted i sidefoden.<br />
Hvis du vil have linjeskift inde i etiketten, trykker du SHIFT+ENTER.<br />
Klik i området under bjælken Rapportfod. Indsæt<br />
en tekstboks, stadig skriftstørrelse 12 og <strong>med</strong><br />
Fed og størrelse tilpasset indhold. Titel skal være<br />
Fakturabeløb.<br />
Ubundet erstattes <strong>med</strong>: =sum(Total+Moms)<br />
Højreklik på feltet, vælg Egenskaber og fanebladet<br />
Formater. Under Format vælges Standard.<br />
Selv om rapporten godt kunne blive pænere (det vil jeg overlade til dig selv) er<br />
den nu klar til brug. Gem den <strong>med</strong> værktøjet Gem (eller Filer, Gem) og prøv at<br />
køre den. Klik på værktøjet Vis udskrift. Tast: 1 og klik på OK. Rapporten vises<br />
nu - og er klar til udskrift. Du er sikkert fristet til at gå i designvisning og<br />
rette lidt på felter og titler, så de står i pæne kolonner...<br />
Hvis din rapport er blevet for bred i forhold til<br />
A4-papir, får du en advarsel. Sker det, går du<br />
tilbage i designvisning og gør den smallere.<br />
Gå ud af rapporten igen <strong>med</strong> Filer, Luk.<br />
Knap til udskrift af faktura<br />
Når du kører rapporten direkte fra databasevinduet,<br />
“ved” <strong>Access</strong> ikke, hvilket fakturanummer, den skal vælge. Du lagde nemlig ind i forespørgslen<br />
(side 44), at den skulle aflæse fakturanummeret på formularen FM_Fakturahoved. Sidste led er<br />
derfor at oprette en knap, der bestiller udskriften direkte fra formularen.<br />
I databasevinduet vælger du fanebladet Formularer. Klik på<br />
FM_Fakturahoved og vælg Design. Kald værktøjskassen frem (Vis, Værktøjskasse),<br />
hvis den ikke allerede er fremme. Aktivér knappen Kontrolelementguider,<br />
hvis den ikke allerede er aktiveret, det vil sige “trykket ind”, det<br />
vil sige lys i bundfarven.<br />
Klik på værktøjet Kommandoknap. Klik et sted i fakturahovedet, for eksempel<br />
lige under Dato. Nu starter guiden.<br />
Vælg Rapporthandlinger og Vis udskrift af rapport<br />
(Vis rapport).<br />
Klik på Næste.<br />
Vælg Faktura. Klik på Næste.<br />
Udfyld feltet tekst <strong>med</strong>: Udskriv faktura<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
46
47<br />
Klik på Næste.<br />
Navngiv knappen:<br />
KommandoknapUdskrivFaktura<br />
Klik på Udfør.<br />
Kombinationsboks<br />
Gem formularen <strong>med</strong> Filer, Gem.Gå til formularvisning<br />
<strong>med</strong> Vis, Formularvisning. Blad<br />
til en faktura, du vil udskrive - og klik på den<br />
ny knap. Fakturaen vises nu. Når du lukker fakturaen, vender du tilbage<br />
til formularen. Dit system er nu funktionelt set klar til brug!<br />
Øvelse 14: Systemets menu<br />
I denne øvelse lærer du følgende:<br />
• at arbejde <strong>med</strong> en tom formular fra bunden<br />
• at oprette en menu til systemet<br />
• at oprette en makro<br />
Når du i det daglige skal bruge et system som dette, skal du kunne gå direkte ind i systemet via<br />
en genvej på Skrivebordet. Systemet bør automatisk vise dig en menu, hvor du via knapper kan<br />
vælge dig ind i formularer og rapporter.<br />
For at opbygge dette, starter du <strong>med</strong> at oprette selve menuen. Næste trin er en makro, der automatisk<br />
kalder menuen, når systemet startes. Til sidst opretter du genvejen på Skrivebordet.<br />
Menuformularen<br />
I databasevinduet vælger du fanebladet Formularer. Klik på knappen Ny og vælg Designvisning<br />
og OK. Udvid bredde og højde af det grå område, så der bliver plads til din<br />
menu.<br />
Fremkald værktøjskassen, hvis den ikke allerede er fremme (Vis, Værktøjskasse).<br />
Aktivér Kontrolelementguider, hvis den ikke allerede er aktiveret.<br />
Klik på værktøjet Etiket. Klik for oven i formularen og skriv: Fakturasystem<br />
Tryk SHIFT+ENTER<br />
Skriv: Happy Cleaning (eller vælg et andet firmanavn).<br />
Tryk ENTER<br />
Vælg skriftstørrelse 12, Fed og klik på værktøjet Centreret.<br />
Vælg menukommandoen Formater, Størrelse, Tilpas til indhold.<br />
Klik på værktøjet Kommandoknap. Klik et sted i venstre side af formularen.<br />
Guiden starter nu.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Kombinationsboks<br />
Vælg Formularhandlinger og Åbn formular.<br />
Klik på Næste.<br />
Vælg FM_Fakturahoved og Næste. Accepter i<br />
næste trin Åbn formularen og vis alle posterne ved igen at klikke på Næste.<br />
Klik i feltet Tekst og skriv: Fakturering<br />
Klik på Næste.<br />
Navngiv knappen:<br />
KommandoknapFakturering<br />
Klik på Udfør.<br />
Indsæt på samme måde en<br />
knap, der åbner formularen<br />
FM_Kundekartotek.<br />
I højre side af formularen<br />
kan du indsætte knapper,<br />
der viser rapporterne Fakturering<br />
og Kundeliste<br />
(vælg Rapporthandlinger<br />
og Vis rapport og gå<br />
ellers frem som i det første<br />
eksempel).<br />
Der skal også være en knap til at afslutte systemet <strong>med</strong>. Klik på værktøjet Kommandoknap<br />
og klik et sted nedenunder de fire andre knapper. Vælg Program og Afslut program.<br />
Klik på Næste 2 gange. Tast: KommandoknapAfslutProgram. Klik på Udfør.<br />
Gem menuen <strong>med</strong> navnet FM_Menu.<br />
Gå i formularvisning <strong>med</strong> Vis, Formularvisning (Formular).<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
48
49<br />
Du kan nu gå ind i de forskellige dele af dit<br />
system via menuen.<br />
Når du lukker for eksempel faktureringsbilledet<br />
igen, kommer du “hjem” til menuen.<br />
Tip: På faktureringsbilledet og kundebilledet<br />
kan du indsætte knapper til at lukke billedet.<br />
Vælg Formularhandlinger og Luk<br />
formular i kommandoknapguiden.<br />
Kombinationsboks<br />
En makro, der automatisk åbner<br />
menuen<br />
Ud over at du kan oprette funktionsknapper, som du gjorde i kapitlet Menu, kan du også oprette<br />
makroer, der udfører rækker af handlinger. Du kan fx oprette en makro, der åbner 3 formularer<br />
på én gang. Du kan indlægge bib, <strong>med</strong>delelsesbokse og meget andet i dine makroer.<br />
Her i hæftet ser du kun toppen af isbjerget. Vi opretter en enkelt makro. Det er en lidt speciel<br />
makro, der skal afspilles automatisk, når databasen åbnes. Det klares ved, at makroen gemmes<br />
<strong>med</strong> navnet AUTOEXEC. En makro, der hedder sådan, afspilles automatisk, når du går ind i dit<br />
system.<br />
I databasevinduet vælger du fanebladet Makroer. Klik på Ny. Du får nu et vindue frem,<br />
hvor du kan definere makroens enkelte handlinger.<br />
Klik i det øverste felt i kolonnen Handling.<br />
Vælg ÅbnFormular i den alfabetiske<br />
liste. Tryk ENTER for at gå videre til<br />
næste felt. Skriv: Åbner hovedmenu.<br />
Klik forneden i vinduet i feltet<br />
ud for Formularnavn. Vælg<br />
FM_Menu.<br />
Det var makroens første handling! Du kunne sådan set godt nøjes <strong>med</strong> denne ene. Men din menu<br />
vil se pænere ud, hvis den straks bliver maksimeret - dvs fylder hele skærmen ud. Så det<br />
lægger vi også ind i makroen.<br />
Klik i feltet lige under Åbn formular.<br />
Vælg Maksimer i listen. Tryk EN-<br />
TER for at gå videre til næste felt.<br />
Tast: Maksimerer skærmbilledet<br />
Så er din makro færdig. Vælg menukommandoen Filer, Gem.<br />
Tast: Autoexec<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Kombinationsboks<br />
(Det er vigtigt, at du angiver navnet rigtigt. Ellers åbner den ikke automatisk, når du går<br />
ind i systemet.)<br />
Så kan du godt gå ud af makrobilledet igen: Filer, Luk.<br />
Tilbage i databasevinduet vælger du menukommandoen Filer, Luk for at gå ud af dit databasesystem<br />
- uden at afslutte <strong>Access</strong>. Vælg menukommandoen Firma og 1 for at åbne<br />
samme database igen. Menuen åbnes nu automatisk.<br />
Genvejen til dit system<br />
Hvis du er vant til at bruge Windows 95, kender du sandsynligvis også til at oprette genveje.<br />
For alle tilfældes skyld gives her kort en beskrivelse af, hvordan du opretter en genvej til systemet.<br />
<strong>Start</strong> <strong>med</strong> at vælge kommandoen Filer, Afslut for at afslutte systemet helt. Afslut eller<br />
minimér alle andre programmer, så du kan se Skrivebordet (Desktoppen) i Windows 95.<br />
Højreklik på <strong>Start</strong>-knappen. Vælg Stifinder (Explorer). Stifinder skal være<br />
vindue, det må altså ikke være maksimeret. Gå ind i C-drevet og finde databasen<br />
Firma.mdb (eller Firma). Træk filen <strong>med</strong> højre musknap ud på skrivebordet.<br />
Slip musknappen og vælg Opret genvej(e) her. Luk Stifinder. Du<br />
kan nu kommer direkte ind i dit ny system ved at dobbeltklikke på genvejen.<br />
Øvelse 15: Brevfletning i Word<br />
I denne øvelse lærer du følgende:<br />
• at foretage en brevfletning i Word direkte fra dit system<br />
• at filtrere kunderne, så du kun sender til en udvalgt gruppe<br />
Når du nu har registreret alle dine kunder i systemet, er det praktisk at du kan brevflette, hvis du<br />
får brug for at sende det samme brev til alle kunderne, eller til en udvalgt gruppe. Brevfletning<br />
bygger normalt på en forespørgsel.<br />
I denne øvelse opretter du et brev til alle de kunder, hvis faxnummer du ikke har i systemet.<br />
I databasevinduet klikker du på fanebladet<br />
Forespørgsler. Højreklik på<br />
FS_KundeAlfabetisk og vælg Kopier. Højreklik<br />
et sted i det hvide og vælg Sæt ind.<br />
Skriv: FS_Brevfletning og klik på OK.<br />
FS_KundeAlfabetisk er lige til at bruge, hvis du vil skrive til alle kunder. Men i dette tilfælde<br />
skal der kun oprettes et brev til dem, hvor feltet Fax er tomt. Det går vi ind og<br />
fortæller forespørgslen FS_Brevfletning, inden brevfletningen køres.<br />
Åbn FS_Brevfletning i designvisning. Kør ved hjælp af rullepanelet mod højre til feltet<br />
Fax.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
50
51<br />
Kombinationsboks<br />
Klik i rækken Kriterier. Skriv NULL. Tryk ENTER. I feltet ændres det<br />
indtastede til Is Null (Is Nulværdi).<br />
Gem forespørgslen <strong>med</strong> Filer, Gem. Luk <strong>med</strong> Filer, Luk.<br />
I databasevinduet skal FS_Brevfletning være markeret. Klik på listepilen<br />
ved værktøjet OfficeLinks. Vælg Brevfletning <strong>med</strong> Microsoft Word.<br />
Du får nu valget mellem at<br />
oprette et nyt dokument eller<br />
brevflette ét, du allerede<br />
har skrevet. Her er der ikke<br />
på forhånd skrevet noget<br />
brev, så du vælger Oprette et nyt dokument og sammenkæde dataene <strong>med</strong> det. Klik<br />
derefter på OK.<br />
Word viser nu en helt nu værktøjslinje. I stedet for at skrive kundens navn øverst i brevet,<br />
klikker du på værktøjet Indsæt fletfelt. Vælg Firmanavn.<br />
Tryk ENTER for at gå ned på en ny linje. Klik igen på Indsæt fletfelt. Vælg Adresse.<br />
Tryk ENTER. Indsæt på samme måde PostnrBy.<br />
Tryk 2 gange på ENTER. Skriv: Att.:<br />
Indsæt fletfeltet Kontaktperson. Tryk 2 gange på ENTER.<br />
Vælg menukommandoen Indsæt, Dato og klokkeslæt. Afkryds Opdater automatisk,<br />
hvis du ønsker et felt, der altid viser dags dato. Vælg et passende format og klik OK.<br />
Tryk ENTER 3 gange og skriv: Kære (husk et mellemrum). Indsæt fletfeltet Kontaktperson.<br />
Tryk ENTER 2 gange. Skriv:<br />
Da vi ikke har registreret Deres faxnummer, beder vi Dem<br />
venligst <strong>med</strong>dele os det. De vil herefter månedligt modtage<br />
en fax <strong>med</strong> oplysninger om vore produkter og tilbud.<br />
Med venlig hilsen<br />
Happy Cleaning<br />
Toni Schmidt<br />
Klik på værktøjet Flet til nyt dokument. Der oprettes nu et nyt dokument, klar<br />
til udskrivning. Det indeholder et brev til hver af de kunder, der opfylder betingelsen<br />
i forespørgslen FS_Brevfletning.<br />
Luk Word igen <strong>med</strong> Filer, Afslut.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Kombinationsboks<br />
Øvelse 16: Lav dit eget opslagsværktøj<br />
I denne øvelse beskrives:<br />
• oprettelse af værktøj til hurtigt opslag i kundeformularen<br />
• makro<br />
Når du skal slå op på en kunde, er det udmærket at foretage en søgning som beskrevet tidligere i<br />
hæftet. Desværre kan det føles lidt tungt i daglig brug. Derfor opretter du her en kombinationsboks,<br />
hvor du hurtigt kan foretage et alfabetisk opslag på en kunde.<br />
Princippet er, at du på formularen FM_Kundekartotek opretter en formularfod <strong>med</strong> en ubundet<br />
kombinationsboks. Den foretager et opslag i forespørgslen FS_KundeAlfabetisk. En makro<br />
foretager derefter en søgning, som bringer den ønskede kunde frem <strong>med</strong> alle detaljer.<br />
I databasevinduet vælger du fanebladet Formularer. Åbn FM_Kundekartotek i designvisning.<br />
Udvid formularfoden ved at trække nedad i underkanten af bjælken Formularfod (vælg<br />
menukommandoen Vis, Formularhoved/formularfod hvis bjælken ikke er der).<br />
Kald værktøjskassen frem, hvis den ikke allerede er fremme (Vis, Værktøjskasse).<br />
Klik på værktøjet Kontrolelementguider, så det ikke er aktivt<br />
(knappen må ikke være trykket ind, dvs. lys).<br />
Klik på værktøjet Kombinationsboks.<br />
Klik i formularfoden,<br />
så boksen indsættes.<br />
Lav titlen om til:<br />
Opslag<br />
Gør kombinationsboksen<br />
lidt længere.<br />
Højreklik på Ubundet og vælg Egenskaber.<br />
Gå ind under fanebladet Formater. Sæt værdien Antal<br />
kolonner til: 2 (det betyder, at kombinationsboksen skal<br />
vise 2 kolonner, nemlig KundeNr og Firmanavn).<br />
Gå ind under fanebladet Data. Vælg<br />
FS_KundeAlfabetisk i feltet Rækkekilde.<br />
Gå ind under fanebladet Andre. Tast: OpslagKunde<br />
i feltet Navn. Dette navn skal du huske.<br />
Det er elementets navn, og det skal makroen bruge,<br />
når den skal “se”, hvad den skal søge efter.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
52
53<br />
Kombinationsboks<br />
Luk egenskabsvinduet. Gem formularen <strong>med</strong> Filer, Gem. Gå til formularvisning <strong>med</strong><br />
Vis, Formularvisning (Formular).<br />
Klik på listepilen ved din ny kombinationsboks. Boksen viser nu alle kunder i alfabetisk<br />
orden. Der sker blot ikke noget, når du vælger én. Vi mangler makroen til at søge kunden<br />
frem. Luk formularen <strong>med</strong> Filer, Luk.<br />
I databasevinduet vælger du fanebladet Makroer. Klik på knappen Ny.<br />
Vælg: GåTilKontrolelement i feltet Handling. Tryk på ENTER. Skriv: Gå til KundeNr<br />
Klik i feltet Kontrolelementnavn. Skriv: KundeNr<br />
Denne del af makroen flytter fokus til feltet<br />
KundeNr.<br />
Klik i feltet Handling på næste linje. Vælg SøgEfterPost. Tryk på ENTER.<br />
Skriv: Søger efter opslagsværdien.<br />
Klik i feltet Søg efter for neden i skærmbilledet.<br />
Skriv: =OpslagKunde<br />
Tryk på ENTER. Feltnavnet sættes nu i<br />
kantede parenteser.<br />
OpslagKunde er det navn, du gav den ny<br />
kombinationsboks. Det er værdien heri,<br />
makroen skal søge efter.<br />
Makroen er nu klar til brug. Vælg<br />
menukommandoen Filer, Gem.<br />
Tast: FindKunde og klik OK. Luk<br />
makrobilledet <strong>med</strong> Filer, Luk.<br />
I databasevinduet vælger du fanebladet Formularer. Åbn FM_Kundekartotek i designvisning.<br />
Højreklik på Ubundet i formularfoden. Vælg Egenskaber. Gå ind under fanebladet<br />
Hændelse.<br />
Klik i feltet Efter opdatering. Vælg FindKunde.<br />
Det vil sige, at makroen FindKunde aktiveres, i samme øjeblik, der er valgt en værdi i<br />
kombinationsboksen. Og hvad gør makroen? Den hopper op i feltet KundeNr og foretager<br />
en søgning efter kunden <strong>med</strong> det nummer, som er valgt i kombinationsboksen. Hokus<br />
pokus!<br />
Gem formularen og gå i formularvisning for at afprøve<br />
din nye, lækre facilitet.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Kombinationsboks<br />
Når du klikker på listepilen i den ny kombinationsboks,<br />
ses alle firmanavne alfabetisk i listen.<br />
Klik på et navn - og kunden søges frem.<br />
Hvis du netop har oprettet nye navne, skal du bruge<br />
menukommandoen Poster, Opdater for at få dem<br />
<strong>med</strong> i opslagslisten.<br />
Øvelse 17: En avanceret forespørgsel<br />
I denne øvelse lærer du følgende:<br />
• at oprette en forespørgsel <strong>med</strong> opsummering<br />
• at sætte parameter på en forespørgsel<br />
Hvis du laver en forespørgsel, som bygger på fakturalinjer, kan du få <strong>Access</strong> til at opsummere<br />
totalerne for hver faktura.<br />
Parameter vil sige, at systemet spørger dig, hvad der skal vises. I denne opgave opretter du en<br />
forespørgsel, der beder dig oplyse, for hvilken periode, du vil se fakturaer.<br />
I databasevinduet vælger du fanebladet Forespørgsler. Klik på FS_Fakturalinje - den<br />
skal du nu bygge en ny forespørgsel over. Vælg menukommandoen Indsæt, Forespørgsel.<br />
Vælg Guiden Simpel Forespørgsel og klik på OK.<br />
Vælg felterne FakturaNr og Total.<br />
Klik ikke på Næste.<br />
Vælg FS_Fakturahoved i feltet Tabeller/Forespørgsler.<br />
Vælg feltet Dato.<br />
Klik på Næste.<br />
Vælg Opsummering (Resume). Klik derefter<br />
på Opsummeringsindstillinger<br />
(Resumeindstillinger).<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
54
55<br />
Kombinationsboks<br />
Afkryds Sum for feltet Total. Klik på OK.<br />
Klik på Næste og på Næste én gang til (du<br />
skal ikke have datogruppering).<br />
Tast: FS_FakturalinjeOpsummering som<br />
titel til forespørgslen. Klik på Udfør.<br />
Her ses din forespørgsel <strong>med</strong> opsummering for hver<br />
faktura.<br />
MEN: Lad os sige, at du i det daglige vil bruge den på<br />
den måde, at du kun ønsker at se opsummeringerne for<br />
en enkelt dato ad gangen.<br />
Gå i designvisning <strong>med</strong> menukommandoen Vis,<br />
Designvisning (Forespørgselsdesign).<br />
Forespørgslen ser lidt<br />
anderledes ud end de<br />
foregående. Der er indsat<br />
gruppering og sum.<br />
Klik i linjen Kriterier i<br />
feltet Dato.<br />
Skriv: [Hvilken dato?]<br />
NB: De kantede parenteser laver du ved at holde ALT GR-tasten nede og trykke på tasterne<br />
<strong>med</strong> tegnene [ ]<br />
Det, der står i kantet parentes, præsenteres for dig som spørgsmål, når du kører forespørgslen.<br />
Når du så indtaster noget, indsættes det som kriterium.<br />
Gem forespørgslen <strong>med</strong> Filer, Gem. Klik på værktøjet<br />
Visning (Forespørgselsvisning). I et vindue får du nu<br />
spørgsmålet: Hvilken dato?<br />
Indtast den ønskede dato - og klik på OK.<br />
Tip: Hvis du ikke skriver noget årstal, betyder det “i år”.<br />
Forespørgslen viser dig nu totaler for den ønskede dato.<br />
Gå tilbage til designvisning. Det kan gøres endnu mere raffineret ved, at du kan indtaste<br />
både en startdato og en slutdato, så du kan se faktureringen for et tidsinterval.<br />
Slet den foregående parameter. Skriv i stedet:<br />
Between [<strong>Start</strong>dato] And [Slutdato]<br />
Gem forespørgslen <strong>med</strong> Filer, Gem. Klik på værktøjet<br />
Visning (Forespørgselsvisning).<br />
Indtast første dato. Tryk ENTER. Indtast sidste dato. Tryk<br />
ENTER. Forespørgslen viser nu alle fakturatotaler for den pågældende<br />
periode.<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
Efterord<br />
Efterord<br />
Når du er nået her til, er det flot klaret! Du har nu sat dig ind i de vigtigste dele af systemudvikling<br />
<strong>med</strong> <strong>Access</strong>. Selvfølgelig ved du ikke alt om dette effektive værktøj. Men følger du bogens<br />
arbejdsform fremover, undgår du forhåbentlig at gå i de faldgrupper, som jeg desværre alt for<br />
ofte ser: Ustrukturerede databaser <strong>med</strong> uovervejet tabelopdeling, manglende primærnøgler og<br />
ingen etablerede relationer.<br />
Jeg er godt klar over, at hæftet ikke er gennemgået på et par timer. For mange vil det have været<br />
et ret svært stof. Alle forsøgspersoner har udtalt, at de måtte svede godt og grundigt for at komme<br />
igennem det. Men sådan er det: Systemudvikling tager den tid, systemudvikling tager. Selv<br />
<strong>med</strong> <strong>Access</strong> kommer det hele ikke af sig selv.<br />
Jeg håber, du <strong>med</strong> øvelserne i dette hæfte har fået tilstrækkelig indsigt til, at du selv kan komme<br />
videre på egen hånd. Tilbage er der kun at ønske dig held og lykke <strong>med</strong> <strong>Access</strong>!<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31<br />
56
adresseliste, 7<br />
aktiveret, 32<br />
alfabetisk sortering, 22<br />
analyse af data, 9<br />
anvend filter, 7<br />
autoexec, makro, 49<br />
autoformat, formular, 29<br />
autoformular, 6; 16<br />
automatisk dato, 18<br />
autonummerering, 13<br />
autoopkald, 28<br />
beskrivelse, 13<br />
between, 55<br />
billedet Relationer, 21<br />
brain storm, 10<br />
brevfletning, 50<br />
databaseguide, 5<br />
databasevinduet, 5<br />
dataforståelse, 8<br />
datamodellering, 8<br />
datatype, 13; 18<br />
dataanalyse, 9<br />
dato, 18<br />
datointerval, 55<br />
decimaltal, 19<br />
decimaltegn, 25<br />
designvisning, 16<br />
detalje, formular, 35<br />
detaljesektion, rapport, 40<br />
dobbelt heltal, 18<br />
E/R-modellen, 10<br />
egenskab, 25<br />
egenskaber, 15<br />
enhed, 10<br />
en-til-mange, 10<br />
entitet, 10<br />
entydighed, 11<br />
faktura, 12<br />
faktura, tabeller, 18<br />
faneblade i databasevinduet, 5<br />
farve, 32; 36<br />
felt, 13<br />
felt, flytning af, 44<br />
felt, låse, 32<br />
feltegenskaber, 15; 25<br />
feltlængde, 14<br />
feltstørrelse, 15<br />
filtrering, 7<br />
Firma-systemet, 8<br />
fjern filter, 7<br />
flow i arbejdet, 9<br />
flytte felt, 44<br />
forbedring af formular, 31<br />
forberedelse, 9<br />
fordele, 10<br />
forespørgsel, 22<br />
forespørgsel <strong>med</strong> udregning, 24<br />
forespørgsel, kriterier, 43<br />
format, 15<br />
formel i forespørgsel, 24<br />
formular, 26<br />
formular <strong>med</strong> underformular, 30<br />
formular, arbejde <strong>med</strong>, 31<br />
formular, autoformat, 29<br />
formular, menu, 47<br />
formular, opbygning, 35<br />
formular, sortering, 28<br />
formular, størrelse, 33<br />
formular, udskrive, 39<br />
formularfod, 35<br />
formularguide, 26<br />
formularhoved, 35<br />
formål, 8<br />
forrige, 6<br />
forståelse af data, 8<br />
første, 6<br />
gemme, 5<br />
genvej, 8<br />
genvej, Windows 95, 50<br />
gruppering, rapport, 40<br />
guide til formular, 26<br />
guiden database, 5<br />
guiden tabel, 6<br />
handlinger i makro, 49<br />
hjælp, 15<br />
hovedtotal, rapport, 41<br />
hændelse, 53<br />
indekseret, 15<br />
indsætte felt i formular, 34<br />
integritet, 21<br />
introduktion til <strong>Access</strong>, 5<br />
knap, 28<br />
kolonnebredde i tabel, 27<br />
kombinationsboks, 37; 52<br />
kombinere tabeller, 23<br />
kommandoknap, 28; 46; 47<br />
komme i gang, 10<br />
kontrolelement, flytte, 35<br />
kontrolelement, ændre, 36<br />
kontrolelementguide, 28; 37<br />
kopiering af felt, 44<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31
kriterier, 43<br />
kundekartotek, 11<br />
kundeliste, 39<br />
langt heltal, 18<br />
låse felt, 32; 36<br />
makro, 49; 53<br />
mange-til-en, 10<br />
manuel opbygning af rapport, 44<br />
manuel oprettelse af tabel, 13<br />
menu, 8; 47<br />
model, 10<br />
modellering af data, 8<br />
modem, 28<br />
moms, 12<br />
mål <strong>med</strong> databasen, 8<br />
navngivning af objekter, 14<br />
Null, 51<br />
nulværdi, 51<br />
ny post, 6; 17<br />
næste, 6<br />
objekters navn, 14<br />
oplysninger på faktura, 12<br />
oprette database, 5; 13<br />
oprette tabel, 13<br />
oprettelse af ny post, 17<br />
opslag, 52<br />
parameterforespørgsel, 54<br />
planlægning, 8; 9<br />
planlægning af tabeller, 11<br />
post, slette, 27<br />
primærnøgle, 11; 13<br />
principper for relationsdatabase, 10<br />
påkrævet, 15<br />
påtvunget referentiel integritet, 20<br />
rapport, 7; 39<br />
rapport til én faktura, 42<br />
rapport, opbygge manuelt, 44<br />
rapportdesign, 40<br />
rapportfod, 40<br />
rapporthoved, 40<br />
reelt tal, 19<br />
referentiel integritet, 20; 21<br />
relationer, 10; 20<br />
relationer, datatype, 18<br />
resumé, forespørgsel, 54<br />
rækkefølge, 38<br />
rækkefølge, arbejdsopgaver, 9<br />
sidefod, rapport, 40<br />
sidehoved, rapport, 40<br />
sidste, 6<br />
slette post, 27<br />
smagsprøve, 5<br />
sorter, 22<br />
sortering i formular, 28<br />
sortering, rapport, 40<br />
standardværdi, 15; 18; 19<br />
starte <strong>Access</strong>, 5<br />
<strong>Start</strong>-knappen, 5<br />
sum, 34<br />
sum i forespørgsel, 54<br />
systemet Firma, 8<br />
systemudvikling, 8; 9<br />
søgning, 7<br />
søgning i formular, 26<br />
tabel, 13<br />
tabel, indsætte linje, 14<br />
tabel, indtaste data, 16<br />
tabel, slette linje, 14<br />
tabelform, formular, 27<br />
tabellen fakturalinje, 19<br />
tabeller til faktura, 18<br />
tabeller, kombinere, 23<br />
tabeller, planlægning, 11<br />
tabulatorrækkefølge, 38<br />
tal, 19<br />
talformat, 25<br />
tekst, datatype, 13<br />
tekstboks, 34<br />
tekstboks, rapport, 41<br />
telefon, 28<br />
titel på tekstboks, 34<br />
titeltekst, 15<br />
total, 12; 34<br />
tænkestorm, 10<br />
ubundet, 34<br />
udregning, 24; 34<br />
udregning i forespørgsel, 24<br />
udskrive formular, 39<br />
udskrivning, 7<br />
udskrivning af post, 39<br />
udvikling af system, 8<br />
udvælgelse i forespørgsel, 51<br />
underformular, 30<br />
unik, 13<br />
validering, 15<br />
valutaformat, 25; 34<br />
vis udskrift, 42<br />
vælge felter i formular, 26<br />
værktøjskasse, 37<br />
ønsker, 10<br />
åbne <strong>Access</strong>, 5<br />
åbne database, 7<br />
<strong>Start</strong> <strong>med</strong> <strong>Access</strong> 97 - access97.doc - 17-08-01 - 03:31