sql >> Database >  >> RDS >> Access

Databasecorruptie voorkomen in Microsoft Access

De meeste gebruikers van Microsoft Access zijn op een gegeven moment het bericht tegengekomen dat hun database is beschadigd of in een "inconsistente staat" is geplaatst. U ziet een dialoogvenster met het bericht:Microsoft Access heeft gedetecteerd dat deze database zich in een inconsistente staat bevindt , en de software zal proberen de database te herstellen.

Sinds mijn start met Microsoft Access 25 jaar geleden, is het frustrerende aspect van deze fout dat er geen definitieve reden is waarom de database beschadigd is geraakt. Foutmeldingen in verschillende andere softwareprogramma's beschrijven veel meer wat u moet doen om te voorkomen dat de softwareregels worden overtreden. In Access zijn er bijvoorbeeld tekens die niet zijn toegestaan ​​bij het benoemen van velden in een tabel. Als je een teken kiest dat niet is afgestemd op de regels, is de boodschap die volgt duidelijk. Selecteer de knop Help en volg de regels die worden weergegeven met betrekking tot tabelnaamregels.

Dus, wat doet men met betrekking tot databasecorruptie in Access?

Ten eerste is het belangrijk om te weten dat de meeste Access-databases op een bepaald moment beschadigd raken. Ik heb ontdekt dat de meest beproefde methoden om met corruptie om te gaan, niet zijn om tijd te verspillen met proberen te bepalen waarom de database beschadigd is geraakt, maar eerder om me te concentreren op methoden die voorkomen dat de database in de eerste plaats beschadigd raakt.

                                              

Hieronder vindt u enkele dingen die Arkware-consultants doen die hebben bijgedragen aan het aanzienlijk verminderen van databasecorruptie:

  • Verdeel uw database in een front-end en back-end (twee afzonderlijke bestanden). Alle databasetabellen bevinden zich in de back-enddatabase en elke gebruiker heeft zijn eigen kopie van de front-enddatabase op de desktop of lokale harde schijf. De front-enddatabase bevat alle databaseobjecten (query's, formulieren, rapporten en macro's/VBA). Elke pc heeft dezelfde mappenstructuur zoals (C:\WorkingDatabase\DatabaseName). Koppel met behulp van de Linked Table Manager de tabellen van de back-enddatabase aan de front-enddatabase. Access heeft een wizard voor het splitsen van databases die kan helpen bij het splitsen van de oorspronkelijke database in de front-end- en back-enddatabases. Zoek naar een toekomstig blogbericht over het gebruik van deze wizard.
  • Dwing de database af bij sluitingstijd of andere specifieke uitvaltijden. Dit wordt gedaan omdat gebruikers het systeem soms open laten en de onbeheerde Access-verbinding kan worden losgekoppeld van het netwerk, wat corruptie kan veroorzaken. De code kan worden geplaatst op de gebeurtenis "OnTimer" van elk databaseformulier dat open blijft. Het beste databaseformulier om te gebruiken is een hoofdschakelbordformulier. Voeg eenvoudig DoCmd.Quit toe aan de VBA-code om het systeem op een bepaald tijdstip van de dag (dwz 2:00 uur) af te sluiten.
  • Zorg ervoor dat alle gebruikers op alle computers dezelfde versie van Access gebruiken.
  • Maak een batchbestand met MS-DOS-opdrachten waarmee een nieuwe front-enddatabase naar de lokale C:\-schijf van de computer van de gebruiker wordt gekopieerd. Dit is niet verplicht, maar het zorgt er wel voor dat iedereen een schone kopie van de lokale front-end database ontvangt.
  • Geen tabellen uit andere Access-databases die zijn gekoppeld aan uw hoofddatabase die verschillende versies van Access gebruiken.
  • Autocorrectiefunctie voor toegang uitschakelen. Dit kan worden gedaan door Bestand> Opties> Huidige database te selecteren. Schakel onder "Naam Autocorrectie-functies" de optie "Tracknaam Autocorrectie" uit

Dit zijn enkele van de belangrijkste preventieve maatregelen om databasecorruptie te voorkomen. Als u worstelt met databasecorruptie, neem dan contact op met Arkware en wij kunnen u helpen bij het realiseren van een stabielere omgeving voor uw Microsoft Access-database.


  1. PostgreSQL multi INSERT...RETURNING met meerdere kolommen

  2. EXECUTE FORMAT gebruiken ... GEBRUIKEN in de postgres-functie

  3. CAST() versus TRY_CAST() in SQL Server:wat is het verschil?

  4. MySQL:toegang geweigerd voor gebruiker 'test'@'localhost' (met wachtwoord:JA) behalve rootgebruiker