Det er bare ikke normalt – normalisering af tomme Access-tabeller
En af de sværeste ting at gøre (men dog vigtigst, når man bygger en database) er at bygge tabelstrukturerne korrekt. Denne proces er kendt som normalisering. En korrekt normaliseret database bør aldrig kun have én tabel, der indeholder redundant information. Overvej følgende tabel:Kunde | Adresse | By | Stat | Zip | Telefon |
Jones | 125 Main Street | Jonestown | NJ | 08000 | 609-555-1244 |
Jones | 125 Main Street | Jonestown | NJ | 08000 | 609-555-7890 |
Smith | 1542 Jones Hwy | Laramie | WY | 82051 | 307-555-5412 |
Wilson | 78 Smith Circle | Jones | CA | 90000 | 451-555-8645 |
Hvis du har problemer med at normalisere tomme tabeller, skal du udfylde hver tabel med fem til ti poster. At se tabellerne med data gør det normalt lettere at få øje på normaliserende problemer.
Sådan kommer du i gang med at normalisere dine borde:- Undersøg hver tabel, som den er struktureret i øjeblikket. Gentager du nogle oplysninger unødigt (som du så med adressen og kundenavnet tidligere)?
- Hvis du har dublerede oplysninger, skal du afgøre, hvorfor du gentager dem (f.eks. de flere telefonnumre for én kunde).
- Opdel den ene tabel i to tabeller for at eliminere redundansen.
- Gentag trin 1 til 3 for hver tabel, indtil al redundans er elimineret.
Du vil måske opdage, at opdeling af en tabel i to stadig ikke eliminerer al redundans i en tabel. I så fald skal du fortsætte med at dele tabellerne, indtil al redundans er væk.
Du skriver 73.725, men Access ændrer det til 74
Automatisk afrunding kan frustrere det levende dagslys ud af dig, men det er nemt at rette op på det. Som standard indstiller Access alle talfelter til at acceptere lange heltal. Som du måske husker fra dine matematikdage på gymnasiet, er et heltal et negativt eller positivt helt tal. For at rumme decimaler, ændrer du feltstørrelsesindstillingen, så den accepterer decimaler. Sådan gør du:- Åbn tabellen i designvisning, og klik derefter på det felt, der ikke samarbejder.
- På fanen Generelt i området Egenskaber nederst på skærmen skal du klikke på feltet Feltstørrelse.
- Klik på pil ned i slutningen af feltet, og vælg derefter Enkelt, Dobbelt eller Decimal fra rullemenuen, der vises.
- Gem tabellen, og dit automatiske afrundingsproblem er forbi.
For detaljer om forskellen mellem enkelt-, dobbelt- og decimalfeltstørrelser skal du trykke på F1-tasten, mens du er i egenskabsfeltet Feltstørrelse. Hjælp-skærmen giver en detaljeret beskrivelse af hver feltstørrelse, de tal, den vil indeholde, og mængden af plads, der er reserveret til den størrelse. Adgang kræver en internetforbindelse for at bruge dets hjælpesystem.
Ordene, de ændrer – problemer med Access AutoCorrect
Nogle gange kan disse "nyttige" funktioner i Access blive en plage. En sådan funktion kaldes Autokorrektur. Du kender det måske fra Microsoft Word, hvor det ofte er en fantastisk ting. Databaser indeholder dog ofte akronymer, varenumre og lignende. Autokorrektur kan have en markdag med sådanne "ord". Du er måske ikke engang klar over det, når du indtaster dine data.
Du har to muligheder for at løse dette problem.
- Fortryd Autokorrekturens effekter, efterhånden som de opstår. Tryk på Ctrl+Z lige efter Autokorrektur har forkastet din dataindtastning. Access sætter dataene tilbage til den måde, du skrev dem på. Desværre, for at dette skal virke, skal du faktisk bemærke, at Access har ændret det, du indtastede.
- Slå Autokorrektur helt fra. Følg disse trin for at deaktivere Autokorrektur:
1. Klik på fanen Fil i øverste venstre hjørne af adgangsskærmen.
2. Klik på knappen Indstillinger i menuen nede i venstre side af skærmen.
Dialogboksen Adgangsindstillinger vises.
3. Klik på Korrektur på listen til venstre.
Dine korrekturvalg vises.
4. Klik på knappen Autokorrekturindstillinger.
Dialogboksen Autokorrektur vises.
5. Fjern markeringen i nogle eller alle afkrydsningsfelterne i dialogboksen Autokorrektur.
Du kan deaktivere nogle eller alle Autokorrekturfunktionerne, afhængigt af hvad Autokorrektur gør for at irritere dig i øjeblikket. Fjern markeringen ved Erstat tekst, mens du skriver, hvis du ikke længere ønsker, at Access skal "rette" dine "stavefejl" for dig.
6. Klik på OK to gange for at gemme dine ændringer.
Du kan nu skrive din problemtekst korrekt uden AutoCorrects indblanding og få den til at forblive, som du skrev den.
Var der, og nu er den væk – utilsigtet sletning af data i Access
Du har måske hørt denne en masse gennem årene:"Databasen slettede min rekord!" Nå, jeg har nyheder til dig:Databasen gør ikke noget, uden at vi mennesker kommanderer den. Og mennesker kan lave et par fejl:- Utilsigtet sletning: Der er flere måder at slette en post ved et uheld. Normalt trykkes der på en tastaturgenvej til Slet, såsom Ctrl+– (slet post) eller Ctrl+X (klip).
Kommandoen Fortryd (Ctrl+Z) vil ikke vende sletningen af en post.
- Datafejl: En post kan vises slettes, hvis nogen uforvarende ændrer en særlig vigtig oplysning. Antag f.eks., at den pågældende post indeholder en ordredato på 15/12/19, og nogen ved et uheld ændrer datoen til 15/12/09. Bestillingsdatoen er ikke den forventede, så posten kan se ud til at være blevet slettet.
- Hvis en datafejl får posten til at virke slettet, er der flere mulige rettelser, som beskrevet i de følgende afsnit.
Fortryd
Gå ikke i panik. Inden du gør noget andet, skal du trykke på Ctrl+Z. Det er kommandoen Fortryd. Hvis rekorden kommer tilbage, er du heldig. Fortryd vender dataindtastningsfejl, der kan få posten til at se ud som slettet. Dette vil dog kun virke, hvis du Fortryder lige efter, at dataindtastningsfejlen har fundet sted.
Søg efter den manglende post
Hvis du prøver kommandoen Fortryd, og posten ikke kommer tilbage, er der stadig en chance for, at en dataindtastningsfejl skjuler den ved at placere den, hvor du ikke forventer, at den er. Åbn tabellen, der indeholdt posten, og søg efter den på en anden måde, end du normalt ville. Se efter noget ud over det sædvanlige på lignende plader. Her er nogle eksempler:- Hvis du normalt søger efter ordrer efter dato, søg efter klient. Se, om der findes en ordre, der ligner den manglende, for den pågældende klient og har en usædvanlig dato (f.eks. samme måned og dag som den manglende ordre, men med det forkerte årstal).
- Prøv at se på alle ordrer på den pågældende dato for at se, om kunden på hver ordre ser ud til at være korrekt. Det kan være, at klienten er blevet ændret ved et uheld på den manglende ordre.
Gendannelse af sikkerhedskopiering
Hvis du ikke kan finde posten nogen steder, skal du kopiere posten fra en sikkerhedskopi af databasefilen.Denne løsning virker kun, hvis du har sikkerhedskopieret din database, siden posten oprindeligt blev tilføjet. Hvis du sikkerhedskopierer om natten, og posten blev indtastet samme dag, som den forsvandt, vil denne post ikke være i din sikkerhedskopi.
Du kører en Access-forespørgsel, men resultaterne er uventede
Forespørgselsskrivning er en kunstform. Selv eksperterne roder i ny og næ. Her er nogle almindelige løsninger på uventede forespørgselsresultater:- Tjek kriterier for nøjagtighed. Et enkelt malplaceret tastetryk er alt, hvad der skal til for at gøre din forespørgsel til en dud. Tjek dine kriterier for stave- eller syntaksfejl - og kør derefter forespørgslen igen.
- Prøv egenskaben Unique Values. Har du nogensinde set to kopier af hver post i dine forespørgselsresultater, når du kun forventede én? En hurtig løsning kommer ofte ved at bruge egenskaben Unique Values. Denne egenskab fortæller Access allerede at stoppe med fordoblingen - og, hvis forespørgselsresultaterne indeholder en gruppe af nøjagtige dubletter, kun at returnere én række fra gruppen. Sådan bruger du denne ejendom:
1. Åbn problemforespørgslen i designvisning.
Fanen Design på båndet vises.
2. Klik på knappen Egenskabsark fra fanens Vis/Skjul bånd-gruppe.
Vinduet Egenskabsark åbnes til højre for forespørgselsgitteret.
3. Klik i det grå område mellem feltlisterne i den øverste halvdel af forespørgselsgitteret.
Ejendomsarket skulle nu vise Forespørgselsegenskaber. (Se lige under ejendomsarkets titellinje for at bekræfte dette.)
4. Klik på rækken Unique Values på egenskabsarket.
Der vises en rullelistepil i slutningen af rækken Unikke værdier.
5. Vælg Ja fra rullelisten, og kør forespørgslen.
Fordoblingen skulle forsvinde.
- Ret valglogikken. At jonglere med en masse OG- og ELLER-forbindelser i en forespørgsel kan hurtigt ødelægge selv de mest hårdføre databasedesignere.
- Ret tabelrelationer. Hvis dine forespørgselsresultater viser vej for mange poster, og forespørgslen bruger to eller flere tabeller, er ukorrekte relationer (også kaldet joinforbindelser) den sandsynlige årsag.
- Tjek tabelrelationstyper. Hvis din forespørgsel involverer to eller flere tabeller, og du får færre poster, end du havde forventet, er forkerte tabelrelationer den sandsynlige årsag. For eksempel, hvis du har en ordreindtastningsdatabase og kører en forespørgsel med alle kunder og deres ordrer, vil du som standard kun se de kunder, der har afgivet en ordre. Gør følgende for at se alle kunder, uanset om de har afgivet ordrer:
1. I designvisning skal du højreklikke på sammenføjningen (linjen, der forbinder de to tabeller), og vælg Sammenføjningsegenskaber i menuen, der vises.
2. Undersøg de tilbudte typer joinforbindelser, og vælg den, der siger noget som "Inkluder ALLE poster fra 'Kunder' og kun de poster fra 'Ordrer', hvor sammenføjede felter er ens”.
Den faktiske tekst, du ser, er forskellig afhængigt af navnene på dine tabeller. For at forespørge aficionados kaldes dette en ydre joinforbindelse. Meget fedt.
3. Klik på OK, og kør forespørgslen.
Du bør nu have alle poster fra Kunder-tabellen, uanset om der er tilsvarende poster i Ordrer-tabellen.
Hvis din forespørgsel involverer flere kriterier, nogle beregnede felter og adskillige relationer, kan du prøve at dele opgaven op i flere mindre trin i stedet for at prøve at løse problemet på én gang. Den trinvise tilgang giver dig mulighed for at fokusere på hvert stykke, et ad gangen, og sikre dig, at hver enkelt fungerer perfekt, før du går videre til den næste.
Hvis din forespørgsel stadig ikke virker, uanset hvad du gør, så bed en anden om at kigge. Jeg har ofte arbejdet på et vanskeligt forespørgselsproblem i timevis, vist det til en anden og hørt de magiske ord:"Det er enkelt. Bare gør dette." Og problemet er løst. At få et par friske øjne på problemet løser ofte tingene hurtigt.
Den frygtede Parameter-dialogboks i Access
På et tidspunkt, når du åbner en forespørgsel, formular eller rapport, vil du se en Parameter-dialogboks, når du ikke ønsker at se en Parameter-dialogboks. Kaster du dine hænder i vejret og forbander universet? Selvfølgelig ikke! Når du uventet ser en parameterdialogboks (du kan indstille dem med vilje), betyder det, at Access ikke kan finde et felt, der refereres til af enten formularen eller rapporten eller forespørgslen bag formularen eller rapporten. Sig, at problemet er med en rapport. For at fejlfinde skal du starte med forespørgslen bag rapporten. Åbn den forespørgsel i dataarkvisning og se, om du får parameteren. Hvis du gør det, hvilket felt efterspørger den? Det felt er det, som Access ikke kan finde. Så skift forespørgslen til designvisning og find kolonnen med det felt, som Access ikke kan finde. Problemfeltet er normalt et beregnet felt, der refererer til andre felter. Er hvert felt og tabelnavn stavet korrekt? Hvis ikke, ret stavefejlene. Er hvert felt i tabellen det formodes at være i? Hvis din reference f.eks. lyder Orders.LastName, og feltet Efternavn er i tabellen Kunder, skal du rette fejlen ved at skrive Customers.LastName .
Hvis forespørgslen kører uden en parameter, er problemet på rapporten. Så åbn rapporten i designvisning og kontroller hver kontrol på rapporten, der er bundet til et felt. Hvis Access ikke kan finde et af felterne, som kontrolelementet skal vise, vil det sætte en grøn trekant i øverste venstre hjørne af kontrolelementet. Tjek hver enkelt for den grønne trekant. Hvis du finder den grønne trekant, skal du kontrollere stavningen af feltet, der refereres til af kontrolelementet. For eksempel, hvis kontrolelementet formodes at vise Efternavn (ingen mellemrum), og referencen i kontrolelementet siger Efternavn (mellemrum), så fjern mellemrummet, så kontrolelementet på rapporten matcher feltnavnet fra forespørgslen. Tjek også rapportens underliggende forespørgsel for at bekræfte, at problemfeltet er valgt i forespørgslen.
Den langsomste Access-database i byen
En Access-database kan ende på en virksomheds fællesdrev, så den er tilgængelig for alle, der har brug for den. Problemet med at placere hele Access-databasen på det fælles drev er, at det ofte kører langsomt på hver brugers arbejdsstation (det er et fancy ord for en individuel computer). Du vil sandsynligvis også løbe ind i fejl, hvis flere personer forsøger at bruge databasen på samme tid. Klagerne begynder at vælte ind, og du ved ikke, hvad du skal gøre.
Løsningen på dette problem ligger i at opdele Access-databasefilen i to separate filer:
- Frontend: Indeholder alle databaseobjekterne undtagen tabellerne
Frontenden ligger på brugerens arbejdsstation.
- Bagende: Indeholder kun tabellerne
Backenden ligger på den delte server.
Forenden er knyttet til tabeller i bagenden.
Det eneste, du i virkeligheden deler, er dataene - så dataene er alt, der skal gå på fællesdrevet. Ved at sætte tingene op på denne måde, er den eneste information, der skal rejse på tværs af netværket, de data, brugeren anmoder om. En sådan opsætning fremskynder databasens ydeevne dramatisk og giver flere brugere mulighed for at indtaste og redigere data på samme tid.
At opdele datasættet er ikke så svært, som du måske tror. Access gør det nemt med Database Splitter Wizard. Følg disse trin for at opdele din database:- Sikkerhedskopier den database, du vil opdele. Hvis noget går galt (usandsynligt, men hey, du kan aldrig være for sikker, når det kommer til data!), kan du prøve igen med sikkerhedskopien.
- Flyt om nødvendigt den database, du vil opdele, til en mappe på dit fællesdrev. Dette trin gør det muligt for Database Splitter at opsætte tabellinks korrekt for dig.
- Åbn den databasefil, du vil opdele fra den delte mappe. Sørg for at have en sikkerhedskopi af denne database, før du går videre. Sørg også for, at alle databaseobjekter er lukkede.
- Klik på fanen Databaseværktøjer på båndet. Gruppen Flyt data vises på båndet. Den indeholder en knap kaldet Access Database.
- Klik på knappen Access Database. Dialogboksen Database Splitter Wizard vises.
- Klik på knappen Opdel database, og lad guiden gøre sit. Du vil blive bedt om et back-end database filnavn. Indtast et navn, læn dig tilbage, og se det sjove udfolde sig for dine øjne.
- Kopiér frontend-filen (den originale fil, du opdeler) til hver brugers arbejdsstation. Få brugerne til at åbne filen fra deres arbejdsstationer - og se, hvordan de undrer sig over databasens forbedrede hastighed! Du er en helt. Ja!
Har du ikke et fællesdrev eller vil du af med din andel? Du kan stadig have flere brugere i din database på én gang ved at placere dine data i skyen.
Din Access-databasefil er lige så stor som et hus
Som tiden går, oplever du, at din databasefil bliver større og større. Dette er et resultat af sletning af objekter og poster over tid. Hvis du for eksempel opretter en forespørgsel og så senere sletter den, fordi den ikke længere er nødvendig, fjerner Access ikke automatisk den plads, der optages af forespørgslen, fra databasefilen. Det samme gælder for optegnelser. Når du sletter poster fra en tabel, forbliver den plads, som disse poster optog i databasefilen. Til sidst kan filen blive fire eller fem gange den størrelse, der kræves for at indeholde data og objekter i den.
Hvorfor skal du bekymre dig om filstørrelsen øges? Her er to grunde:
- En mindre databasefil kører hurtigere. Ydeevne er en nøglekomponent for glade databasebrugere. Du vil have, at dine formularer indlæses hurtigt, og at dine forespørgsler og rapporter kører så hurtigt som muligt.
- En regelmæssigt komprimeret database er mere stabil. Hvis databasen bruges ofte, hjælper komprimering regelmæssigt med at forhindre, at fil- og tabelkorruption opstår.
- Åbn den oppustede database, og klik på fanen Databaseværktøjer på båndet. Værktøjsgruppen vises helt til venstre på båndet.
- Klik på knappen Kompakt og reparer database i gruppen Værktøjer. Statuslinjen (nederst til højre på skærmen) viser en statuslinje, der giver dig besked om, hvordan den kompakte proces skrider frem. Når statuslinjen forsvinder, er komprimeringen fuldført - og du vil stå tilbage med en meget trimmer (hurtigere og mere stabil) databasefil. Hvis du har opdelt din database, så glem ikke at komprimere både front- og backend-filerne.
Vil du have en databasefil til at komprimere, hver gang du lukker den? Følg disse trin:
- Klik på fanen Filer på båndet.
- Klik på knappen Adgangsindstillinger i menulinjen nede i venstre side af skærmen. Dialogboksen Adgangsindstillinger vises.
- Klik på Current Database på listen til venstre. Indstillinger for den aktuelle database vises.
- Marker afkrydsningsfeltet Kompakt ved luk.
- Klik på OK for at gemme dine ændringer.
- Klik på OK fra den resulterende meddelelsesboks.
- Luk databasen, og bemærk den nederste højre statuslinje. Databasen komprimeres, før den lukkes!
Compact on close bruges kun bedst på front-end-filen. Komprimering af back-end på tæt kan forårsage korruption af back-end-filen, hvis en anden bruger er i den, når du lukker ud af den. Slå ikke Kompakt til Luk på back-end-filen.
Du får noget rod, når du importerer dit regneark til Access
Det er almindelig praksis at opgradere en samling af regneark til en Access-database, efter at regnearksløsningen ikke længere passer til dine behov. Det er også almindeligt at finde de importerede regnearksdata (nu tabel) i en tilstand af uorden. Den nemmeste måde at løse dette problem på er ved at rydde op i regnearket før du importerer det. Her er et par tips til en ryddig import:- Dobbelttjek oplysninger fra et hvilket som helst regnearksprogram for at være sikker på, at det er konsistent og fuldfør. Frem for alt skal du sørge for, at alle indtastninger i hver kolonne (felt) er den samme datatype (alle tal, al tekst eller alt hvad som helst).
- Fjern eventuelle titler og tomme rækker fra toppen af regnearket. Et ideelt regneark til import vil have feltnavne (kolonneoverskrifter) i række 1 og data, der starter i række 2.
- Sørg for, at dine regnearks kolonneoverskrifter er korte og unikke, så Access nemt kan oversætte dem til feltnavne under import.
Vi beklager. din Access-databasefil er korrupt
Det startede som en dag ligesom alle andre. På denne dag får du dog en fejl, når du åbner frontenden af din delte Access-database. Du kan tilsyneladende ikke åbne nogen formularer eller rapporter. Det er sjovt, hvordan et par små beskeder kan ødelægge din dag. Du begynder at spekulere på, om du sikkerhedskopierede datafilen i går aftes, og hvornår filen faktisk var beskadiget. Så begynder du at spekulere på, hvordan du kommer ud af dette rod.
Frygt ej. Der er en simpel løsning på en korrupt database. Her er trinene:
- Gå til den mappe, der indeholder back-end-filen.
- Dobbeltklik på filen for at åbne den. Access vil starte og forsøge at reparere filen. Du bør se en statuslinje for reparation i højre del af statuslinjen. Hvis alt går vel, åbnes filen.
- Luk back-end-datafilen.
- Genåbn frontend-filen, og alt skulle fungere normalt.
Hvis, efter at have fulgt de foregående anvisninger, den beskadigede fil stadig ikke åbner, har du et alvorligt problem, der kan tage en indsats for at rydde op. Det næste trin er at ty til en sikkerhedskopi af databasen. Kontroller, hvilke data der mangler mellem sikkerhedskopieringen og din erindring af den beskadigede fil. Ja, du bliver nødt til at indtaste eventuelle manglende data igen. Undskyld!
Hvis du ikke har en backup, er alt håb ikke ude. Du kan købe software designet specifikt til at reparere beskadigede Access-databasefiler. Prøv at søge på nettet efter reparer korrupte Microsoft Access-databasefiler. Sørg for, at softwaren fungerer med Microsoft Access 2019, og at den er fra en legitim virksomhed.