De flesta användare av Microsoft Access har vid något tillfälle stött på meddelandet att deras databas har skadats eller placerats i ett "Inkonsekvent tillstånd". Du kommer att se en dialogruta med meddelandet:Microsoft Access har upptäckt att den här databasen är i ett inkonsekvent tillstånd , och programvaran kommer att försöka återställa databasen.
Sedan jag började med Microsoft Access för 25 år sedan är den frustrerande aspekten av detta fel att det inte finns en definitiv anledning till varför databasen blev skadad. Felmeddelanden i en mängd andra program är mycket mer beskrivande om vad man ska göra för att förhindra att programreglerna bryts. I Access, till exempel, finns det tecken som inte är tillåtna när man namnger fält i en tabell. Om du väljer en karaktär som inte är anpassad till reglerna är meddelandet som följer tydligt. Välj knappen Hjälp och följ sedan reglerna som visas angående regler för tabellnamn.
Så, vad gör man angående databaskorruption i Access?
För det första är det viktigt att veta att de flesta Access-databaser blir korrupta någon gång. Jag har funnit att de mest beprövade metoderna för att hantera korruption inte är att slösa tid på att försöka avgöra varför databasen blev korrupt, utan snarare fokusera på metoder som förhindrar databasen från att förstöras.
Nedan listas några saker som Arkware-konsulter gör som har bidragit till att minska korruptionen av databasen avsevärt:
- Dela upp din databas i ett front-end och back-end (två separata filer). Alla databastabeller finns i back-end-databasen och varje användare har sin egen kopia av front-end-databasen på skrivbordet eller lokal hårddisk. Frontend-databasen innehåller alla databasobjekt (frågor, formulär, rapporter och makron/VBA). Varje dator har samma mappstruktur som (C:\WorkingDatabase\DatabaseName). Länka tabellerna från back-end-databasen till front-end-databasen med hjälp av Linked Table Manager. Access har en databasdelningsguide som kan hjälpa till med att dela upp den ursprungliga databasen i front-end- och back-end-databaserna. Leta efter ett framtida blogginlägg om hur du använder den här guiden.
- Tvinga databasen att stängas av vid stängning av verksamheten eller andra specifika stilleståndstider. Detta görs eftersom användare ibland lämnar systemet öppet och den obevakade Access-anslutningen kan kopplas bort från nätverket, vilket kan orsaka korruption. Koden kan placeras på "OnTimer"-händelsen i vilken databasform som helst som förblir öppen. Det bästa databasformuläret att använda är ett huvudväxelformulär. Lägg helt enkelt till DoCmd.Quit till VBA-koden för att stänga av systemet vid en viss tid på dagen (dvs. 02:00).
- Se till att alla användare använder samma version av Access på alla datorer.
- Skapa en MS-DOS-kommandobatchfil som kopierar en ny front-end-databas till den lokala C:\-enheten på användarens dator. Detta är inte obligatoriskt, men det säkerställer att alla får en ren kopia av den lokala frontend-databasen.
- Ha inte tabeller från andra Access-databaser länkade till din huvuddatabas som använder olika versioner av Access.
- Inaktivera funktionen för automatisk korrigering. Detta kan göras genom att välja Arkiv> Alternativ> Aktuell databas. Under "Autokorrigeringsfunktioner för namn" avmarkerar du "Autokorrigering av spårnamn"
Dessa är några av de viktigaste förebyggande åtgärderna för att skydda sig mot databaskorruption. Om du kämpar med databaskorruption, kontakta Arkware så kan vi hjälpa dig att uppnå en mer stabil miljö för din Microsoft Access-databas.