sql >> Databasteknik >  >> RDS >> Access

Så här felsöker du 10 Common Access 2019-problem

Här är tio av de vanligaste Microsoft Access-problemen och deras lösningar. Ge inte upp hoppet om ditt problem inte finns på den här listan. Chansen är stor att om du har problemet har någon annan redan haft det och kommit på lösningen. Det är därför Internet är en värdefull resurs.

Det är helt enkelt inte normalt – normalisering av tomma Access-tabeller

En av de svåraste sakerna att göra (men viktigast när man bygger en databas) är att bygga tabellstrukturerna ordentligt. Denna process kallas normalisering. En korrekt normaliserad databas bör aldrig bara ha en tabell som innehåller redundant information. Tänk på följande tabell:
Kund Adress Stad 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
Ser du den överflödiga informationen? Du har rätt. Det är kundens namn och adress. Vad är orsaken till redundansen? Rätt igen! Det är de två telefonnumren till kunden Jones. Det korrekta sättet att normalisera denna tabell skulle vara att dela upp den i två tabeller - en för kundnamn och adressinformation och den andra för telefonnummer. Detta skulle eliminera behovet av att upprepa den andra Jones-posten i tabellen Kunder.

Om du har problem med att normalisera tomma tabeller, fyll varje tabell med fem till tio poster. Att visa tabellerna med data gör det vanligtvis lättare att upptäcka normaliseringsproblem.

Så här kommer du igång med att normalisera dina tabeller:
  1. Undersök varje tabell som den är strukturerad för närvarande. Upprepar du någon information i onödan (som du såg med adressen och kundnamnet tidigare)?
  2. Om du har dubblettinformation, bestäm varför du upprepar den (till exempel flera telefonnummer för en kund).
  3. Dela upp den ena tabellen i två tabeller för att eliminera redundansen.
  4. Upprepa steg 1 till 3 för varje bord tills all redundans är eliminerad.

Du kanske upptäcker att uppdelning av en tabell i två fortfarande inte eliminerar all redundans i en tabell. Fortsätt i så fall att dela upp tabellerna tills all redundans är borta.

Du skriver 73.725, men Access ändrar det till 74

Automatisk avrundning kan frustrera det levande dagsljuset ur dig, men att korrigera det är enkelt. Som standard ställer Access in alla nummerfält för att acceptera långa heltal. Som du kanske minns från dina matematikdagar på gymnasiet är ett heltal ett negativt eller positivt hel tal. För att få plats med decimaler ändrar du fältstorleksinställningen så att den accepterar decimaler. Här är hur:
  1. Öppna tabellen i designvyn och klicka sedan på fältet som inte samarbetar.
  2. På fliken Allmänt i området Egenskaper längst ned på skärmen klickar du på rutan Fältstorlek.
  3. Klicka på nedåtpilen i slutet av rutan och välj sedan Enkel, Dubbel eller Decimal från rullgardinsmenyn som visas.
  4. Spara tabellen och problemet med automatisk avrundning är över.

För mer information om skillnaden mellan enkla, dubbla och decimala fältstorlekar, tryck på F1-tangenten i egenskapsrutan Fältstorlek. Hjälpskärmen ger en detaljerad beskrivning av varje fältstorlek, siffrorna den kommer att innehålla och mängden utrymme som reserverats för den storleken. Åtkomst kräver en internetanslutning för att använda hjälpsystemet.

Orden som de förändrar – problem med åtkomst till AutoCorrect

Ibland kan dessa "hjälpsamma" funktioner i Access bli till besvär. En sådan funktion kallas AutoCorrect. Du kanske är bekant med det från Microsoft Word, där det ofta är en bra sak. Databaser innehåller dock ofta akronymer, artikelnummer och liknande. AutoCorrect kan ha en fältdag med sådana "ord". Du kanske inte ens inser det när du anger dina uppgifter.

Du har två val för att lösa det här problemet.

  • Ångra effekterna av AutoCorrect när de uppstår. Tryck på Ctrl+Z direkt efter att AutoCorrect har misslyckats med din datainmatning. Access återställer data till det sätt som du skrev det. Tyvärr, för att detta ska fungera måste du faktiskt lägga märke till att Access har ändrat det du angav.
  • Stäng av Autokorrigering helt. Följ dessa steg för att stänga av Autokorrigering:

1. Klicka på fliken Arkiv i det övre vänstra hörnet av åtkomstskärmen.

2. Klicka på knappen Alternativ i menyn längst ned till vänster på skärmen.

Dialogrutan Åtkomstalternativ visas.

3. Klicka på Korrektur i listan till vänster.

Dina korrekturval visas.

4. Klicka på knappen Autokorrigeringsalternativ.

Dialogrutan AutoCorrect visas.

5. Avmarkera några eller alla kryssrutorna i dialogrutan Autokorrigering.

Du kan inaktivera några eller alla AutoCorrect-funktionerna, beroende på vad AutoCorrect gör för att irritera dig för närvarande. Avmarkera alternativet Ersätt text medan du skriver om du inte längre vill att Access ska "åtgärda" dina "stavfel" åt dig.

6. Klicka på OK två gånger för att spara dina ändringar.

Du kan nu skriva din problemtext korrekt, utan AutoCorrects störningar, och låta den stanna som du skrev den.

Var där och nu är det borta – oavsiktliga raderingar av data i Access

Du kanske har hört den här mycket genom åren:"Databasen raderade min post!" Tja, jag har nyheter till dig:Databasen gör ingenting utan att vi människor befaller den. Och människor kan göra ett par misstag:
  • Oavsiktlig radering: Det finns flera sätt att radera en post av misstag. Vanligtvis trycks en kortkommando för Delete ned, till exempel Ctrl+– (radera post) eller Ctrl+X (klipp ut).

Kommandot Ångra (Ctrl+Z) kommer inte att återställa raderingen av en post.

  • Datafel: En post kan visas raderas om någon oavsiktligt ändrar en särskilt viktig del av information. Anta till exempel att posten i fråga innehåller ett beställningsdatum 12/15/19 och att någon oavsiktligt ändrar datumet till 12/15/09. Beställningsdatumet är inte det förväntade, så posten kan tyckas ha raderats.
  • Om ett datafel gör att posten verkar raderad, finns det flera möjliga korrigeringar, som beskrivs i följande avsnitt.

Ångra

Få inte panik. Innan du gör något annat trycker du på Ctrl+Z. Det är kommandot Ångra. Om skivan kommer tillbaka har du tur. Ångra återställer datainmatningsfel som kan göra att posten verkar raderad. Detta kommer dock bara att fungera om du ångrar direkt efter att datainmatningsfelet inträffat.

Sök efter den saknade posten

Om du försöker Ångra-kommandot och posten inte kommer tillbaka, finns det fortfarande en chans att ett datainmatningsfel döljer det genom att placera det där du inte förväntar dig att det ska vara. Öppna tabellen som innehöll posten och sök efter den på något annat sätt än du normalt skulle göra. Leta efter något utöver det vanliga på liknande skivor. Här är några exempel:
  • Om du normalt söker efter beställningar efter datum, sök efter kund. Se om det finns en beställning som liknar den som saknas för den klienten och har ett ovanligt datum (säg samma månad och dag som den saknade beställningen men med fel år).
  • Försök att titta på alla beställningar på det aktuella datumet för att se om kunden på varje beställning verkar vara korrekt. Det kan vara så att klienten ändrades oavsiktligt på den saknade beställningen.

Återställning av säkerhetskopia

Om du inte kan hitta posten någonstans, kopiera posten från en säkerhetskopia av databasfilen.

Den här lösningen fungerar bara om du har säkerhetskopierat din databas sedan posten ursprungligen lades till. Om du säkerhetskopierar på natten och posten matades in samma dag som den försvann, kommer den posten inte att finnas i din säkerhetskopia.

Du kör en Access-fråga, men resultaten är oväntade

Att skriva frågor är en konstform. Till och med experterna bråkar då och då. Här är några vanliga lösningar på oväntade frågeresultat:
  • Kontrollera kriterierna för noggrannhet. En enda felplacerad tangenttryckning är allt som krävs för att förvandla din fråga till en dud. Kontrollera dina kriterier för stavnings- eller syntaxfel — och kör sedan frågan igen.
  • Testa egenskapen Unique Values. Har du någonsin sett två kopior av varje post i dina sökresultat när du bara väntade en? En snabb lösning kommer ofta från att använda egenskapen Unique Values. Den här egenskapen säger åt Access att sluta med dubbleringen, och, om frågeresultaten innehåller en grupp av exakta dubbletter, att endast returnera en rad från gruppen. Så här använder du den här egenskapen:

1. Öppna problemfrågan i designvyn.

Fliken Design på menyfliksområdet visas.

2. Klicka på knappen Egenskapsblad från flikens Visa/Göm menyfliksgrupp.

Fönstret egenskapsblad öppnas till höger om frågerutnätet.

3. Klicka i det grå området mellan fältlistorna i den övre halvan av frågerutnätet.

Egendomsbladet bör nu visa Frågeegenskaper. (Titta höger under egenskapsbladets namnlist för att bekräfta detta.)

4. Klicka på raden Unika värden i egenskapsbladet.

En pil i rullgardinsmenyn visas i slutet av raden Unika värden.

5. Välj Ja från rullgardinsmenyn och kör frågan.

Fördubblingen bör försvinna.

  • Korrigera urvalslogiken. Att jonglera med ett gäng OCH- och ELLER-anslutningar i en fråga kan snabbt förstöra även den hårdaste av databasutvecklare.
  • Åtgärda tabellrelationer. Om dina sökresultat visar väg för många poster, och frågan använder två eller flera tabeller, är felaktiga relationer (även kallade joins) den troliga orsaken.
  • Kontrollera tabellrelationstyper. Om din fråga involverar två eller flera tabeller och du får färre poster än du förväntade dig, är felaktiga tabellrelationer den troliga orsaken. Om du till exempel har en beställningsdatabas och kör en fråga som listar alla kunder och deras beställningar, ser du som standard endast de kunder som har lagt en beställning. För att se alla kunder, oavsett om de har lagt beställningar eller inte, gör du följande:

1. I designvyn, högerklicka på sammanfogningen (raden som förbinder de två tabellerna) och välj Join Properties från menyn som visas.

2. Undersök vilka typer av anslutningar som erbjuds och välj den som säger något i stil med "Inkludera ALLA poster från 'Kunder' och endast de poster från 'Beställningar' där sammanfogade fält är lika”.

Den faktiska texten du ser skiljer sig beroende på namnen på dina tabeller. För att fråga aficionados kallas detta en outer join. Mycket coolt.

3. Klicka på OK och kör frågan.

Du bör nu ha alla poster från tabellen Kunder oavsett om det finns motsvarande poster i tabellen Order eller inte.

Om din fråga omfattar flera kriterier, några beräknade fält och många relationer, försök dela upp uppgiften i flera mindre steg istället för att försöka lösa problemet på en gång. Steg-för-steg-metoden låter dig fokusera på varje del, en i taget, och se till att var och en fungerar perfekt innan du går vidare till nästa.

Om din fråga fortfarande inte fungerar oavsett vad du gör, be någon annan ta en titt. Jag har ofta arbetat med ett tufft frågeproblem i timmar, visat det för någon annan och hört de magiska orden:"Det är enkelt. Gör bara det här." Och problemet är löst. Att få nya ögon på problemet löser ofta saker snabbt.

Den fruktade parameterdialogrutan i Access

Vid någon tidpunkt, när du öppnar en fråga, formulär eller rapport, kommer du att se en parameterdialogruta när du inte vill se en parameterdialogruta. Kastar du händerna i luften och förbannar universum? Självklart inte! När du oväntat ser en parameterdialogruta (du kan ställa in dem med avsikt), betyder det att Access inte kan hitta ett fält som refereras till varken av formuläret eller rapporten eller frågan bakom formuläret eller rapporten. Säg att problemet är med en rapport. För att felsöka, börja med frågan bakom rapporten. Öppna den frågan i databladsvyn och se om du får parametern. Om du gör det, vilket fält efterfrågas? Det fältet är det som Access inte kan hitta. Så byt frågan till designvy och hitta kolumnen med fältet som Access inte kan hitta. Problemfältet är vanligtvis ett beräknat fält som refererar till andra fält. Är varje fält och tabellnamn rättstavat? Om inte, korrigera stavfelen. Är varje fält i tabellen det ska finnas i? Om din referens till exempel är Orders.LastName och fältet Efternamn finns i tabellen Kunder, korrigera felet genom att skriva Customers.LastName .

Om frågan körs utan en parameter finns problemet i rapporten. Så öppna rapporten i designvyn och kontrollera varje kontroll i rapporten som är bunden till ett fält. Om Access inte kan hitta ett av fälten som kontrollen ska visa, kommer den att placera en grön triangel i det övre vänstra hörnet av kontrollen. Kontrollera var och en för den gröna triangeln. Om du hittar den gröna triangeln, kontrollera stavningen av fältet som kontrollen refererar till. Till exempel, om kontrollen är tänkt att visa Efternamn (inget mellanslag) och referensen i kontrollen säger Efternamn (mellanslag), ta sedan bort utrymmet så att kontrollen i rapporten matchar fältnamnet från frågan. Kontrollera även rapportens underliggande fråga för att bekräfta att problemfältet är valt i frågan.

Den långsammaste Access-databasen i stan

En Access-databas kan hamna på den delade enheten för ett företag så att den är tillgänglig för alla som behöver den. Problemet med att placera hela Access-databasen på den delade enheten är att den ofta går långsamt på varje användares arbetsstation (det är ett fint ord för en enskild dator). Du kommer sannolikt också att stöta på fel om flera personer försöker använda databasen samtidigt. Klagomålen börjar rulla in och du vet inte vad du ska göra.

Lösningen på detta problem ligger i att dela upp Access-databasfilen i två separata filer:

  • Gränssnitt: Innehåller alla databasobjekt utom tabellerna

Frontänden finns på användarens arbetsstation.

  • Baksidan: Innehåller bara tabellerna

Baksidan finns på den delade servern.

Frontänden är länkad till tabeller i bakkanten.

Allt du egentligen delar är data - så data är allt som ska gå på den delade enheten. Genom att ställa in saker och ting på det här sättet är den enda information som måste färdas över nätverket den information som användaren begär. En sådan inställning påskyndar databasprestanda dramatiskt och gör att flera användare kan ange och redigera data samtidigt.

Att dela upp datauppsättningen är inte så svårt som du kanske tror. Access gör det enkelt med Databas Splitter Wizard. Följ dessa steg för att dela upp din databas:
  1. Säkerhetskopiera databasen du vill dela. Om något går fel (osannolikt, men hallå, du kan aldrig vara för säker när det kommer till data!), kan du försöka igen med säkerhetskopian.
  2. Om det behövs, flytta databasen du vill dela till en mapp på din delade enhet. Det här steget låter Database Splitter ställa in tabelllänkar på rätt sätt för dig.
  3. Öppna databasfilen du vill dela från den delade mappen. Se till att du har en säkerhetskopia av denna databas innan du går vidare. Se också till att alla databasobjekt är stängda.
  4. Klicka på fliken Databasverktyg på menyfliksområdet. Gruppen Flytta data visas på menyfliksområdet. Den innehåller en knapp som heter Access Database.
  5. Klicka på knappen Access Database. Dialogrutan Databas Splitter Wizard visas.
  6. Klicka på knappen Dela databas och låt guiden göra sitt. Du kommer att bli ombedd att ange ett backend-databasfilnamn. Ange ett namn, luta dig tillbaka och se hur det roliga utspelar sig framför dina ögon.
  7. Kopiera frontend-filen (originalfilen du delade) till varje användares arbetsstation. Låt användarna öppna filen från sina arbetsstationer – och se hur de förundras över databasens förbättrade hastighet! Du är en hjälte. Ja!

Har du inte en delad enhet eller vill bli av med din del? Du kan fortfarande ha flera användare i din databas samtidigt genom att placera din data i molnet.

Din Access-databasfil är lika stor som ett hus

Allt eftersom tiden går ser du att din databasfil växer sig större och större. Detta är ett resultat av att objekt och poster raderats över tid. Om du till exempel skapar en fråga och sedan tar bort den senare eftersom den inte längre behövs, tar Access inte automatiskt bort utrymmet som upptas av den frågan från databasfilen. Detsamma gäller för skivor. När du tar bort poster från en tabell kvarstår utrymmet som dessa poster upptog i databasfilen. Så småningom kan filen bli fyra eller fem gånger den storlek som krävs för att hålla data och objekt i den.

Varför ska du bry dig om filstorleken ökar? Här är två skäl:

  • En mindre databasfil körs snabbare. Prestanda är en nyckelkomponent för nöjda databasanvändare. Du vill att dina formulär ska laddas snabbt och att dina frågor och rapporter ska köras så snabbt som möjligt.
  • En regelbundet komprimerad databas är mer stabil. Om databasen används ofta hjälper komprimering regelbundet att förhindra att filer och tabeller skadas.
Kommandot Compact and Repair tar bort överskottet. Det är bra att komprimera din databas regelbundet (en gång i veckan är vanligtvis bra). Komprimera den alltid efter att ha gjort några designändringar. Här är hur:
  1. Öppna den uppsvällda databasen och klicka på fliken Databasverktyg på menyfliksområdet. Verktygsgruppen visas till vänster om menyfliksområdet.
  2. Klicka på knappen Kompakt och reparera databas i gruppen Verktyg. Statusfältet (nedre till höger på skärmen) visar en förloppsindikator som meddelar dig om hur den kompakta processen fortskrider. När förloppsindikatorn försvinner är komprimeringen klar - och du kommer att ha en mycket trimmare (snabbare och mer stabil) databasfil. Om du har delat upp din databas, glöm inte att komprimera både front- och back-end-filerna.

Vill du att en databasfil ska komprimeras varje gång du stänger den? Följ dessa steg:

  1. Klicka på fliken Arkiv på menyfliksområdet.
  2. Klicka på knappen Åtkomstalternativ i menyraden till vänster på skärmen. Dialogrutan Åtkomstalternativ visas.
  3. Klicka på Aktuell databas i listan till vänster. Alternativ för den aktuella databasen visas.
  4. Markera kryssrutan Komprimera vid stängning.
  5. Klicka på OK för att spara dina ändringar.
  6. Klicka på OK i meddelanderutan som visas.
  7. Stäng databasen och notera det nedre högra statusfältet. Databasen komprimeras innan den stängs!

Compact on close används bäst endast på front-end-filen. Att komprimera baksidan vid stängning kan orsaka korruption av back-end-filen om en annan användare finns i den när du stänger den. Slå inte på Compact on Close på back-end-filen.

Du får en röra när du importerar ditt kalkylark till Access

Det är vanligt att uppgradera en samling kalkylark till en Access-databas efter att kalkylarkslösningen inte längre passar dina behov. Det är också vanligt att hitta de importerade kalkylarket (nu tabell) data i ett tillstånd av oordning. Det enklaste sättet att lösa detta problem är genom att rensa upp kalkylarket innan du importerar den. Här är några tips för en snygg import:
  • Dubbelkolla information som kommer från alla kalkylprogram för att vara säker på att den är konsekvent och slutför. Framför allt, se till att alla poster i varje kolumn (fält) är av samma datatyp (alla siffror, all text eller allt annat).
  • Ta bort alla titlar och tomma rader från toppen av kalkylarket. Ett idealiskt kalkylblad för import kommer att ha fältnamn (kolumnrubriker) på rad 1 och data som börjar på rad 2.
  • Se till att dina kalkylarks kolumnrubriker är korta och unika så att Access enkelt kan översätta dem till fältnamn under importen.

Vi är ledsna. din Access-databasfil är korrupt

Det började som en dag precis som alla andra. Men den här dagen får du ett felmeddelande när du öppnar fronten av din delade Access-databas. Du verkar inte kunna öppna några formulär eller rapporter. Det är lustigt hur några små meddelanden kan förstöra din dag. Du börjar undra om du säkerhetskopierade datafilen i går kväll och när filen faktiskt var skadad. Sedan börjar du undra hur du ska ta dig ur den här röran.

Frukta inte. Det finns en enkel lösning på en korrupt databas. Här är stegen:

  1. Bläddra till mappen som innehåller back-end-filen.
  2. Dubbelklicka på filen för att öppna den. Access kommer att starta och försöka reparera filen. Du bör se en reparationsförloppsindikator till höger i statusfältet. Om allt går bra öppnas filen.
  3. Stäng back-end-datafilen.
  4. Öppna gränssnittsfilen igen och allt borde fungera normalt.

Om, efter att ha följt de föregående anvisningarna, den skadade filen fortfarande inte öppnas, har du ett allvarligt problem som kan ta lite ansträngning att rensa upp. Nästa steg är att ta till en säkerhetskopia av databasen. Kontrollera vilka data som saknas mellan säkerhetskopieringen och din minnesbild av den skadade filen. Ja, du måste ange alla saknade data igen. Förlåt!

Om du inte har en backup är inte allt hopp ute. Du kan köpa programvara som är speciellt utformad för att reparera skadade Access-databasfiler. Försök att söka på webben efter reparera korrupta Microsoft Access-databasfiler. Se till att programvaran fungerar med Microsoft Access 2019 och att den är från ett legitimt företag.
  1. Benchmarking databaser 101 - del 1

  2. CURRENT_DATE Funktion i Oracle

  3. Funktion för att ta bort accenter i postgreSQL

  4. sql-satsfel:kolumn .. finns inte