2009-09-09 11 views
2

J'ai une base de données MS-Access stockée dans un dossier (oui, j'ai les permissions 'Modifier' pour le dossier) sur une machine Vista . À partir de mon application .NET (VB2008), je peux très bien interroger la base de données et ajouter des enregistrements aux tables. Lorsque je relance l'application, les enregistrements ajoutés sont là.L'accès ne me laisse pas voir les modifications que j'ai apportées à la base de données

Toutefois, si je démarre Access (2000) et ouvre la base de données, la table que je viens de modifier ne semble pas avoir de nouveaux enregistrements ajoutés.

Existe-t-il une incompatibilité avec Vista et Access 2000?

EDIT: Quand j'ouvre la même base de données dans Access 2003 sur une machine XP, les nouveaux enregistrements montrent juste bien.

+0

BTW: Vous devez également créer des autorisations définies sur le dossier en plus de modifier afin qu'Access puisse créer son fichier de verrouillage (.ldb/.laccdb) – JohnFx

+0

Non. Si le dossier contenant la base de données Access (fichier .mdb) est autorisé 'Tout le monde: Modifier', Access peut créer le fichier de verrouillage (.ldb). Cette partie fonctionne correctement. – Stewbob

+1

Trouvé sur un forum Microsoft (Cela pourrait avoir quelque chose à voir avec le problème): ... le composant de Toolkit Compatibilité des applications, contient un correctif pour Microsoft Access 2000 pour fonctionner sur Windows Vista. Généralement, avec une telle correction, l'application devrait être capable de fonctionner avec Windows Vista, mais en l'absence de l'environnement de test, je ne suis pas sûr si Microsoft Access 2000 corrigé fonctionnera de manière parfaitement transparente. – Stewbob

Répondre

7

Cela ressemble beaucoup à la fonctionnalité de virtualisation de Vista. Vista ne vous laissera pas écrire dans le dossier C:\Program Files (et quelques autres) et au lieu de vous envoyer une erreur, il écrit dans un dossier temporaire sous votre dossier Utilisateurs.

Pour vérifier, ouvrez les propriétés du fichier .EXE et vérifiez le mode XP + Exécuter en tant qu'administrateur. Voir aussi si vous pouvez trouver l'ombre dans C: \ Users \ nom_utilisateur \ AppData \ Local \ VirtualStore dossier

Pour corriger, essayez de localiser vos données ailleurs.

+0

Henk, vous l'homme! C'est exactement ce qui se passe. J'ai changé les propriétés de MSACCESS.EXE en mode XP et Run as Admin. Maintenant, quand je démarre Access, puis ouvrez ma base de données, je peux voir les enregistrements qui ont été ajoutés par mon application .NET. Je vous remercie!!!! – Stewbob

0

Voir si le nombre d'enregistrements augmente?
Si tel est le cas, les enregistrements peuvent y entrer & en raison de l'indexation, il peut ne pas apparaître vers la fin.

+0

Vous ne savez pas exactement ce que vous entendez par "peut ne pas apparaître vers la fin", mais dans l'application .NET, le nombre d'enregistrements augmente.Lorsqu'il est affiché dans Access 2000, l'enregistrement n'apparaît pas (il n'y a que 4 enregistrements dans le tableau, donc il n'est pas négligé dans une masse d'autres données). – Stewbob

+0

Faites un "compact & repair" et voir si cela vous aide :) – shahkalpesh

+0

Déjà essayé, n'a pas aidé. – Stewbob

0

Dans votre table Access, est-il possible que vous utilisiez un type de données qui n'est pas compatible avec Access 2000?

[Je sais que cela est très peu probable, mais comme ils (plus ou moins) disent « des questions désespérés appellent des réponses désespérées »]

+0

Je suis moi-même au stade 'désespéré' :), mais non, je ne fais que stocker des chaînes et des entiers (1 chaîne, 2 entiers) et tous mes types de données correspondent entre l'application et la base de données. – Stewbob

+0

Je ressens votre douleur. –

0

Je sais que vous semblez assez sûr que vous frappez la même DB de votre réponse à la réponse de gbn, mais pour être absolument sûr, que diriez-vous de ce test?

Utilisez Access pour insérer de nouveaux enregistrements dans Access et voir s'ils apparaissent dans l'application.

Une autre possibilité est qu'elle entre dans la base de données, mais que vous lisez/écrivez à partir d'une autre table que vous ne le pensez. Cela expliquerait l'incohérence que vous voyez aussi.

+0

J'ai essayé cela et l'application n'a aucun problème à voir les nouveaux enregistrements. – Stewbob

+0

J'ai seulement une table, donc il n'y a pas de confusion à ce sujet. – Stewbob

Questions connexes