2010-07-16 2 views
1
  1. Quelle est la raison pour laquelle les DBs ms-access a parfois des problèmes de corruption?
  2. Si un formulaire ne s'ouvre pas et qu'il s'agit d'un problème de corruption, est-ce que je résoudrais le problème en éliminant le formulaire?
+1

Dans votre question précédente http://stackoverflow.com/questions/3258488/ms-access-2003-form-does-not-open-help/3260422#3260422 vous avez accepté une réponse qui inclut un lien vers le guide définitif Accéder aux problèmes de corruption. – Fionnuala

+2

Envisagez de passer à SQL Server 2008 Express en tant que backend de votre base de données. Vous bénéficierez des avantages de SQL Server en termes de protection des données et de stabilité, et les performances de votre application MSAccess s'amélioreront. –

+0

@Robert le meilleur commutateur est de [Sql Server Compact] (http://robtiffany.com/sql-server-compact/here-comes-sql-server-compact-4-0) (le lien est à 4; 3.5 sp1). Ne nécessite aucune installation supplémentaire, juste un binaire ou deux plus le fichier de base de données. – Will

Répondre

2

Quelqu'un m'a envoyé cette même question hier, et je les ai répondu ainsi:

Jetez un oeil à my answers on SO that touch on the issue of corruption ainsi que ces articles précieux par Tony Toews:

Best Practices

Corruption FAQ

Il existe un certain nombre de types de corruption et d'éviter différents types nécessite des solutions différentes. Je couvre la plupart de ceux dans mes réponses SO , tandis que d'autres questions sont abordées dans les articles de Tony. Plus précisément, la corruption de pointeur de mémo est un type, tandis que la corruption de projet VBA en est un autre. Cependant, la plupart des gens ne se réfèrent pas à l'un ou à l'autre lorsqu'ils mentionnent la corruption Access/Jet/ACE.

0
  1. L'accès peut gérer des scénarios multi-utilisateurs dans une certaine mesure, mais c'est certainement pas un de ses points forts - même si elle est conçue pour le soutenir, pour moi le soutien pour plusieurs utilisateurs se sent « boulonnée » , et je vois beaucoup de cas où plusieurs utilisateurs accédant à la même base de données pourraient le corrompre (ou au moins, laisser les données incohérentes). C'est un problème inhérent à presque toutes les bases de données côté client, pas seulement Access, mais pour une raison quelconque j'entends parler de beaucoup plus de problèmes avec Access qu'avec d'autres DB. Pour les utilisateurs individuels, je ne pense pas avoir déjà vu ce problème, mais je suppose que c'est possible si Access est tué (ou tombe en panne) pendant une mise à jour, ou si vous réussissez à copier la base de données pendant Access est toujours ouvert (ce qui pourrait vous obtenir une copie corrompue).

  2. Probablement pas. À moins que ce soit la forme elle-même qui soit corrompue, ce qui semble plutôt improbable.

+1

Multi-utilisateur n'est pas "boulonné" - il est câblé dans les entrailles de Jet/ACE à partir de zéro. La raison pour laquelle Jet/ACE s'embourbe dans des scénarios multi-utilisateurs est que plusieurs utilisateurs rivalisent pour le même fichier. Ceci est inhérent à tout moteur de base de données basé sur des fichiers et attendu. –

+0

Il se sent "boulonné", que ce soit ou non. L'accès est horrible dans les scénarios multi-utilisateurs, et cela aurait dû être évident avant même la conception du moteur (puisque, comme vous l'avez dit, les moteurs de base de données basés sur les fichiers sont intrinsèquement mauvais). Donc, la conception pour l'utilisation multi-utilisateurs était soit un après-coup ou un très mauvais choix de conception. – cHao

+1

"Feels" est une déclaration subjective. Ce n'était pas une réflexion après coup dans la conception, ni un mauvais choix de conception, comme cela est fait avec la même approche de base du problème utilisé par tous les autres moteurs de base de données multi-utilisateurs, c'est-à-dire utiliser un certain type de fichier de verrouillage. Sur les faits, vous avez tout simplement tort, et sur les aspects subjectifs de celui-ci, vous êtes, sinon seul, pas convaincant pour quiconque a pris le temps de comprendre le fonctionnement des moteurs de base de données Jet/ACE. –

0

Vous devez effectuer régulièrement une sauvegarde de la base de données et utiliser la commande Compacter et réparer pour supprimer les erreurs quotidiennement. C'est la seule façon d'enregistrer votre base de données multi accès utilisateur d'être corrompu.