sql >> Database teknologi >  >> RDS >> Access

Sådan forhindrer du databasekorruption i Microsoft Access

De fleste brugere af Microsoft Access har på et tidspunkt stødt på beskeden om, at deres database er blevet beskadiget eller placeret i en "Inkonsistent tilstand". Du vil se en dialogboks med meddelelsen:Microsoft Access har registreret, at denne database er i en inkonsistent tilstand , og softwaren vil forsøge at gendanne databasen.

Siden jeg startede med Microsoft Access for 25 år siden, er det frustrerende aspekt af denne fejl, at der ikke er en endelig grund til, at databasen blev beskadiget. Fejlmeddelelser i en række andre softwareprogrammer er meget mere beskrivende for, hvad man skal gøre for at forhindre overtrædelse af softwarereglerne. I Access er der for eksempel tegn, der ikke er tilladt, når man navngiver felter i en tabel. Hvis du vælger et tegn, der ikke er tilpasset reglerne, er meddelelsen, der følger, klar. Vælg knappen Hjælp, og følg derefter de viste regler vedrørende tabelnavnsregler.

Så hvad gør man med databasekorruption i Access?

For det første er det vigtigt at vide, at de fleste Access-databaser bliver korrupte på et tidspunkt. Jeg har fundet ud af, at de mest gennemprøvede metoder til at håndtere korruption ikke er at spilde tid på at prøve at finde ud af, hvorfor databasen blev ødelagt, men snarere at fokusere på metoder, der forhindrer databasen i at blive ødelagt i første omgang.

                                                                             

Nedenfor er nogle ting, som Arkware-konsulenter gør, og som har hjulpet med at reducere databasekorruption betydeligt:

  • Opdel din database i en front-end og back-end (to separate filer). Alle databasetabellerne er i back-end-databasen, og hver bruger har deres egen kopi af front-end-databasen på skrivebordet eller den lokale harddisk. Frontend-databasen indeholder alle databaseobjekterne (forespørgsler, formularer, rapporter og makroer/VBA). Hver pc har den samme mappestruktur, såsom (C:\WorkingDatabase\DatabaseName). Brug Linked Table Manager til at linke tabellerne fra back-end-databasen til front-end-databasen. Access har en databaseopdelingsguide, der kan hjælpe med at opdele den originale database i front-end- og back-end-databaserne. Se efter et fremtidigt blogindlæg om brug af denne guide.
  • Tving databasen til at blive lukket ned ved lukketid eller andre specifikke nedetider. Dette gøres, fordi brugere nogle gange lader systemet være åbent, og den uovervågede Access-forbindelse kan blive afbrudt fra netværket, hvilket kan forårsage korruption. Koden kan placeres på "OnTimer"-hændelsen i enhver databaseformular, der forbliver åben. Den bedste databaseformular at bruge er en hovedomstillingsformular. Du skal blot tilføje DoCmd.Quit til VBA-koden for at lukke systemet ned på et bestemt tidspunkt på dagen (dvs. kl. 02.00).
  • Sørg for, at alle brugere bruger den samme version af Access på alle computere.
  • Opret en MS-DOS-kommando batchfil, der kopierer en ny frontend-database til det lokale C:\-drev på brugerens computer. Dette er ikke obligatorisk, men det sikrer, at alle modtager en ren kopi af den lokale frontend-database.
  • Har ikke tabeller fra andre Access-databaser knyttet til din hoveddatabase, som bruger forskellige versioner af Access.
  • Deaktiver adgangsfunktion til automatisk korrektion. Dette kan gøres ved at vælge Filer> Indstillinger> Aktuel database. Fravælg "Autokorrektur af spornavn"
  • under "Autokorrektur af navnefunktioner".

Disse er nogle af de vigtigste forebyggende foranstaltninger til at beskytte mod databasekorruption. Hvis du kæmper med databasekorruption, så kontakt Arkware, så kan vi hjælpe dig med at opnå et mere stabilt miljø for din Microsoft Access-database.


  1. Hvorfor er det mere sikkert at bruge en mysql-forberedt sætning end at bruge de almindelige escape-funktioner?

  2. Er det muligt at sende tabelnavn som en parameter i Oracle?

  3. Lagre billeder i SQL Server?

  4. Sådan fungerer CHARACTER_LENGTH()-funktionen i MySQL