2009-09-09 6 views
2

У меня есть база данных MS-Access, хранящаяся в папке (да, у меня есть разрешения «Изменить» для папки) на машине Vista ,Доступ не позволит мне увидеть изменения, внесенные в базу данных

Из моего приложения .NET (VB2008) я могу просто запросить базу данных и добавить записи в таблицы. При повторном запуске приложения добавлены записи.

Однако, если я запустил Access (2000) и откройте базу данных, таблица, которую я только что изменила, по-видимому, не имеет новых записей, добавленных к ней.

Есть ли какая-то несовместимость с Vista и Access 2000?

EDIT: Когда я открываю ту же базу данных в Access 2003 на XP в машине, новые данные показывают, просто отлично.

+0

BTW: вам необходимо создать разрешения, установленные в этой папке, в дополнение к изменению, чтобы Access мог создать файл блокировки (.ldb/.laccdb) – JohnFx

+0

Нет. Если папка, содержащая базу данных Access (файл .mdb), имеет разрешение «Everyone: Modify», Access может создать файл блокировки (.ldb). Эта часть работает правильно. – Stewbob

+1

Обнаружено это на форуме Microsoft (возможно, это имеет какое-то отношение к проблеме): ... компонент набора средств обеспечения совместимости приложений содержит исправление для Microsoft Access 2000 для запуска в Windows Vista. Как правило, при таком исправлении приложение должно работать с Windows Vista, но без тестовой среды я не уверен, что исправленный Microsoft Access 2000 будет работать определенно без проблем. – Stewbob

ответ

7

Звучит очень похоже на то, что вы испытываете функцию виртуализации Vista. Vista не позволит вам писать в папку C:\Program Files (и несколько других), и вместо того, чтобы бросать вам ошибку, она записывает теневую копию в папку «Ваши пользователи».

Чтобы проверить, откройте свойства .EXE и проверьте режим XP + Запуск от имени администратора. Также посмотрите, можете ли вы найти тень в папке C: \ Users \ User_name \ AppData \ Local \ VirtualStore

Чтобы исправить ошибку, попробуйте найти ваши данные в другом месте.

+0

Хенк, ты, мужчина! Это именно то, что происходит. Я изменил свойства режима MSACCESS.EXE на XP и запустил в качестве администратора. Теперь, когда я запускаю Access и затем открываю свою базу данных, я могу видеть записи, которые были добавлены моим .NET-приложением. Спасибо!!!! – Stewbob

0

Проверьте, увеличивается ли количество записей?
Если это так, записи могут попасть туда & из-за индексации, это может не отображаться в конце.

+0

Не совсем уверен, что вы подразумеваете под «может не появляться в конце», но в приложении .NET количество записей увеличивается.При просмотре в Access 2000 запись не отображается (в таблице всего 4 записи, поэтому ее не пропускают в массу других данных). – Stewbob

+0

Сделайте «компактный и восстановительный» и посмотрите, поможет ли это вам :) – shahkalpesh

+0

Уже пробовал, что не помогло. – Stewbob

0

В таблице Access вы можете использовать тип данных, который несовместим с Access 2000?

[Я знаю, что это очень маловероятно, но так как они (более или менее) говорят, «Отчаянные вопросы требуют отчаянных ответов»]

+0

Я сейчас на «отчаянной» сцене :), но нет, я просто храню строки и целые числа (1 строка, 2 целых числа), и все мои типы данных совпадают между приложением и базой данных. – Stewbob

+0

Я чувствую вашу боль. –

0

Я знаю, что вы, кажется, уверены, что вы ударяете ту же БД из вашего ответа к ответу gbn, но чтобы быть абсолютно уверенным, как насчет этого теста?

Использовать доступ для вставки новых записей в Access и посмотреть, отображаются ли они в приложении.

Другая возможность заключается в том, что она входит в базу данных, но приложение используется для чтения/записи из другой таблицы, чем вы думаете. Это объясняет непоследовательность, которую вы тоже видите.

+0

Я пробовал это, и у приложения нет проблем с просмотром новых записей. – Stewbob

+0

У меня есть только один стол, поэтому нет путаницы в этом. – Stewbob

Смежные вопросы