Access database konfigurationer

af Joakim Dalby

 

En database med mange skærmbilleder til indtastning af forskellig data, visning af oversig­ter, udskrifter og statistikker med grafik, er oplagt at implementere i en Microsoft Access som er state-of-the-art værktøjet på PC markedet i dag.

 

En Access database kan bestå af en enkel fil med efternavnet .mdb hvori både selve databasen og applikationens skærmbilleder og udskrifter er placeret.

 

På de enkelte brugeres PC’ere installeres Access, ofte som en del af den samlede Microsoft Office pakke. Selve databasefilen placeres på en central computer (file-server) så der tages daglig sikkerhedskopi heraf. Kommer der flere brugere til, kan man sagtens lade databasefilen forblive på serveren, da Access understøtter flere samtidige brugere.

 

For en del år siden var det interne netværk ikke altid så hurtigt, derfor anbefalede Microsoft, at man flyttede databasens skærmbilleder, udskrifter og program­me­ring ud på de enkelte brugeres PC’ere.

 

Den store database-mdb-fil blev splittet til to filer:

  • En egentlig databasefil med kun tabeller og fortsat placeret på en file-ser­ver f.eks. kaldet KundeDat.mdb.
  • En applikationsfil med skærmbilleder, forespørgsler, udskrifter og pro­gram­me­ring, placeret på hver enkelt brugeres PC. Filens efternavn er fortsat mdb, d.v.s. det er en Access fil uden tabeller f.eks. kaldet KundeApp.mdb. Applikationsfilen bliver sammenkædet (linket) med databasefilen, hvorved der skabes et forbindelse til tabellerne så al opdatering fortsat bliver gemt på file-serveren.

 

Efterfølgende er dataoverførslen på netværket blevet hurtigere og hurtigere, så enten bevarer man i dag én databasefil eller også placeres både applikationsfilen og databasefilen på file-serveren, så de er nemmere at vedligeholde for ændringer i skærmbilleder og udskrifter m.v.

 

I det næste ses der nærmere på tre konfigurationsformer for implementering af Access data­ba­ser, og til sidst beskrives den fjerde konfigurationsform til at få en Access database på Internettet. Der sluttes af med kort at nævne, at man også kan få en Access database på din håndholdte PC.

 

Access som file-server database

Access programmet er installeret sammen med den øvrige Office pakke på den enkelte brugers PC eller der er installeret en runtime-udgave af Access pro­gram­met, så der ikke skal købes en Access licens. Installerer man Access på en file-server bliver selve afviklingen af Access fortsat foretaget på bruger PC’eren.

 

Afviklingen af Access programmet betyder, at selve databasebehandlingen fore­ta­ges på den enkelte brugers PC. Men når databasens indhold er placeret på en central file-server, så flere brugere kan arbejde med databasen samtidig, så skal data fra databasen overføres via netværket til den enkelte brugeres PC, ofte kaldet den lokale PC. I forbindelse med en forespørgsel på alle kunder fra Søborg, sker der det, at alle kundernes data overføres til lokal PC’eren, selvom det kun er Søborg kunder som ønskes. Er der mange kunder skal der overføres mange data, for kun at filtrere nogle få kunder fra Søborg, hvorved en stor del af de overførte data var overflødige. Sådan afvikles Access programmet på en brugers PC, og det kaldes for en file-server database uanset hvor mdb-filerne er placeret. Ved meget store datamængder kan brugeren opleve lidt ringe svartider, fordi mange data skal overføres fra serveren til den lokale PC for videre behandling.

 

Access som client-server database

Ved store databaser må man undgå, at databasebehandlingen sker på lokal PC’eren, d.v.s. flytte databasebehandlingen ind på selve serveren, så der kun overføres præcis de data, man har forespurgt efter. Derved opnås, at der bliver overført langt færre data over netværket, hvilket alt andet lige vil give en hurtigere svartid.

 

Man kalder en database, som foretager databasebehandlingen på serveren og kun overføre svardata til den lokale PC, for en client-server database. Microsoft SQL Server 2000 er en client-server database, men den har ingen mulighed for at designe skærmbilleder og udskrifter som Access jo har. Hvad gør man så?

 

Når en Access database begynder at give lidt ringe svartider, kan man flytte selve databasefilen til en SQL Server og bibeholde applikationsfilen i Access med skærmbilleder og udskrifter. Det betyder imidlertid, at file-serveren ændres til en rigtig server med Windows Server operativsystem samt køb af Microsoft SQL Server 2000 databasen og licenser til brugere som skal tilgå den via Access.

 

Med en bagvedliggende Microsoft SQL Server 2000 database på en server og en række lokale PC’ere med Access XP som afvikler applikationsdelen, så opnår man meget hurtige svartider uanset datamængden, fordi al databasebehandlingen sker på serveren. Access er fortsat installeret på de enkelte brugeres PC, men Access opfører sig som en client-server-database. Man kalder det i Access for upsize, når database-mdb-filen konverteres til en SQL Server databasefil, og selve applika­ti­ons-mdb-filen bliver også konverteret til en Access projekt-adp-fil og bibeholdes på den lokale PC som applikationsfilen, og den indeholder fortsat de samme design­værk­tø­jer til skærm­bil­le­der og rapporter samt pro­gram­me­rin­gen er også fortsat det samme. Skærm­bil­le­der, udskrifter og pro­gram­me­ring bliver således fortsat gemt i Access projekt-applikationsfilen, mens fore­spørg­sler bliver gemt i databasen på SQL Serveren, så de kan blive afviklet hurtigt der og sende den lille svar-datamængde over netværket til Access projektet på lokal PC’eren. Læs mere SQL Server mulighederne i Access XP.

 

Access som server database

Hvordan kan det lade sig gøre, at bibeholde databasen i en Access mdb-fil, og så alli­ge­vel opnå at databasebehandlingen sker på en server, så der kun overføres få datamængder til lokal PC’eren?

 

Svaret er anvendelse af Windows Terminal Server eller Citrix MetaFrame Server, som begge afvikles på en Windows Server. De to systemer benytter sig af, at selve applikationen også bliver placeret og afviklet på en central server, og kun sender skærmbilleder til lokal PC’eren og modtager tastetryk og musseklik fra lokal PC’eren. Access installationen på hver lokal PC’er bliver også overflødig med denne teknik, og ønsker man at spare licenser, kan der installeres en run-time udgave af Access på Windows Serveren.

 

Ved at placere applikationsfilen og databasefilen på samme server, opnår man, at der ikke skal overføres datamængder over et netværk, hvorved data­base­be­hand­lingen sker samme sted som databasens forefindes, d.v.s. a la en SQL Server. Naturligvis er Access ikke så hurtig til at behandle data som en SQL Server, men i mange tilfælde vil man med denne teknik opnås meget hurtige svartider, fordi overførsel af skærmbilleder og tastetryk kræver meget lidt af netværket.

 

Applikations-mdb-filen (evt. adp-filen hvis man også vælger at have en SQL Server database) placeres på Windows Server i hver brugers egen mappe som findes under:

C:\Documents and Settings\<user login navn>\My Documents

 

Hver bruger af Access applikationen har således sin egen applikations-mdb-fil, der er sammenkædet med en database-mdb-fil som kan placeres under:

C:\Documents and Settings\All Users\Documents     (Shared Documents)

 

Når der er foretaget ændringer i applikationsfilen kan man via et lille batch kørsel kopiere den ud i brugernes mapper, se eksempel på en bat-fil til dette formål sidst i dokumentet her.

 

I Windows XP kaldes det ikke mere Terminal Server, men i stedet Remote Desktop Connection eller Forbindelse til Fjernskrivebord på dansk. Menupunktet findes under {Tilbehør/Accessories} {Kommunikation/Communications}, hvis diverse services er aktive på PC’eren.

 

Access som Internet database

Internet programmering er ofte lig med HTML til skærmbillede opbygning, Java­Script til bl.a. kontrol af brugerens indtastninger, ASP på en central server til data­ba­se­ad­gang/da­ta­ba­se­be­hand­lin­g og så en Access eller en SQL Server da­ta­ba­se.

 

Access har en mulighed for at designe skærmbilleder til Internettet, men program­me­rin­gen heri er væsentlig anderledes og man opnår aldrig at få samme skærm­bil­le­de funktionalitet som i rigtige forms i Access. Endvidere er det ikke så nemt at få udskrevet flotte rapporter med grafer via Internettet.

 

Med .NET programmering man kan implementere sin egen applikation ved brug af WebForms, men så benytter man jo ikke Access skærmbillede- og rapport værktø­jer­ne.

 

Ved at anvende Windows Terminal Server eller Citrix MetaFrame Server på samme måde som beskrevet tidligere, kan en Access applikation nemt stilles til rådighed på Internettet. Applikationen kan enten aktiveres via en ikon eller via browseren, hvorved brugeren vil tro, at der er tale om en almindelig applikation, men hvor skærmbilleder og tastetryk blot sendes over Internettet.

 

Har man en Access applikation som flere lokale afdelinger/kontorer i en virk­som­hed skal deles om, eller sælgere som er på farten skal indtaste i, kan man ved brug af disse teknikker få adgang til Access applikationen via Internettet, og na­tur­lig­vis kan der tillægges forskellig sikkerhed så som VPN.

 

Læs mere om Windows Terminal Server eller Citrix MetaFrame Server, hvor sidst nævnte netop beskriver en løsning fra 1999 med en Access applikation der tilgås via Internettet.

 

Access som håndholdt database

En håndholdt PC, tidligere kaldt personal digital assistant (PDA), med ope­ra­tiv­sy­ste­met Microsoft Pocket 2002 som er en tilpasning af Windows CE, indeholder en række applikationer så som: Microsoft Pocket Internet Explorer, Microsoft Pocket Word, Microsoft Pocket Excel, and Microsoft® Pocket Outlook samt Microsoft Poc­ket Access.

 

Microsoft Pocket Access er dog ikke en normal Microsoft Access, hvori der laves ta­bel­ler og skærm­bil­le­der, og den kan heller ikke vise skærmbilleder. Microsoft Poc­ket Access håndterer kun selve databasens data, så en Access mdb-fil kan over­fø­res til en håndholdt PC via et Microsoft program på som følger med Pocket PC o­pe­ra­tiv­sy­ste­met kaldet ActiveSync, d.v.s. synkronisering. På den håndholdte PC bli­ver mdb-filen til en cdb-fil. Ligeså kan data fra håndholdte PC over­føres til en Access data­ba­se på desktop PC’eren. Der findes også en særlig SQL Server 2000 Windows CE Edition database.

 

En Access applikations-mdb-fil kan ikke flyttes til en håndholdt PC, hvilket for­ment­lig også hurtig ville give skærmbillede problemer, fordi den håndholdte PC’s skærm­op­løs­ning er 240x320 (bredde x højde), og bibeholdes tastaturet nederst vil der ca. være plads til et skærmbillede på 240x140, da tastaturet tager en del i højden.

Se eksempler på skærmbilleder i 240x320

 

Med et særligt database-applikationsværktøj på en håndholdt PC kan det nemt la­de sig gøre at udvikle en Access applikation på en håndholdt PC med skærm­bil­le­der der næsten ligner dem man er vant til i Access, d.v.s. indtastningsfelter, kom­bi­bok­se med valgmuligheder og faneblade så data kan blive fordelt på det lille skærm­bil­le­de samt multi-form med flere tabeller.

 

Det skal også lige nævnes, at i Visual Studio .NET 2003 ud­vik­lings­værk­tøjet fra Mi­cro­soft, er det indbygget at udvikle applikationer til håndholdte PC’ere med Pocket PC 2002 operativsystem, kaldet Smart Device. Ellers kan Java programmering også nævnes som en mulighed. Microsoft lancerer snart nyt software til håndholdte PC’ere kaldet »Windows Mobile 2003 Software for Pocket PCs«.

 

Udvides en håndholdt PC med Internet adgang via GPRS (General Packet Radio Service) evt. med muligheden for online adgang hvor der kun betales for overførte data, vil anvendelse af Windows Terminal Server teknikken være muligt, således at man ude i marken ser up-to-date data i en almindelig Access applikation dog til­pas­set det lille skærmbillede, og hvor indtastet data på den håndholdte ikke skal o­ver­fø­res når man kommer hjem, men straks bliver gemt på den centrale server, så andre bruger har adgang her til med det samme.

 

Indeholder den håndholdte PC også GPS (Global Position System), så kan man nemt få registreret »koordinaterne« i en database, hvis man ønsker en lokations­registrering.

 

Der er mange muligheder for at få en Access database som håndholdt.

 

 

 

Eksempel på batch kørsel for kopiering af en applikationsfil til brugernes mapper

 

AppCopy.bat (afviklet på en Windows Server)

 

@echo off

@echo App.mdb kopieringslog %date% %time%>C:\AppCopyLog.txt

@echo. >>C:\AppCopyLog.txt

@goto start

@Skriv dine brugernavne herunder (login navne):

administrator

Hans

Peter

Pia

Lene

 

@:start

@for /f "eol=@ delims=" %%a in (%~sf0) do (

@echo Kopiering af App.mdb til bruger:  %%a >>C:\AppCopyLog.txt

@echo. >>C:\AppCopyLog.txt

@xcopy "C:\Documents and Settings\All Users\Documents\App.mdb"

       "C:\Documents and Settings\%%a\My Documents"

       /f/v/c/y >>C:\AppCopyLog.txt 2>&1

@echo. >>C:\AppCopyLog.txt )