Все мои отчеты в MS Access были внезапно удалены - PullRequest
1 голос
/ 09 ноября 2011

Хорошо, у меня есть пара сотен отчетов в базе данных MS Access (да, это большой проект, и да, мы должны перейти на SQL Server). Я работал над одним из отчетов вчера и внезапно отключился от сети. У меня было много сетевых перебоев в работе, и я думаю, что это как-то связано с внезапным исчезновением всех отчетов. У меня никогда не было привилегий администратора для настройки резервного копирования и восстановления на моем компьютере, и мне приходилось выполнять резервное копирование базы данных вручную.

Моя самая последняя версия написана неделю назад, но с тех пор я проделал МНОГО работы. Мой вопрос заключается в том, могло ли внезапное отключение от сети (и, следовательно, от базы данных, в которой я работал) вызвать удаление, и возможно ли восстановить базу данных без настройки резервного копирования и восстановления. мой компьютер.

Пожалуйста, помогите.

Редактировать: мои базы данных в формате переднего / заднего плана. Это была аварийная база данных (с отчетами, запросами и формами), но единственными удаляемыми элементами были отчеты.

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

Ваш вопрос оставляет открытым несколько важных моментов:

Как настроено ваше приложение?Содержит ли MDB отчеты в вашей сети?Таблицы в одном файле или в другом?Если таблицы находятся в другом файле, где он находится?

Доступ, как известно, подвержен потере данных и повреждению файла, когда сетевое подключение нечеткое.См. http://support.microsoft.com/kb/303528 (раздел «Дополнительные рекомендации для сетевых сред») для получения дополнительной информации.

Информация в этой статье («Как устранить неполадки и восстановить поврежденную базу данных Access 2002 или новее»)http://support.microsoft.com/kb/283849) может помочь

Все ваши файлы в сети должны были быть скопированы вашими сетевыми администраторами, поэтому попросите их о самой последней резервной копии, прежде чем вы потеряете свои отчеты.будет более поздней, чем ваша самая последняя резервная копия.

0 голосов
/ 09 ноября 2011

Если ваша база данных была повреждена один раз, трудно сказать, возможно ли восстановить из нее отсутствующие отчеты.

Единственный 100% безопасный способ восстановить ваши изменения - это иметь последнюю резервную копию ранеекоррупция произошла.

Но вполне возможно, что перебои в сети, когда пользователи обращались к базе данных и , в то время как вы вносили изменения в отчеты, приводят к повреждению файла.


Я знаю, что это не поможет вам прямо сейчас, но вот несколько советов на будущее:

Вам следует подумать о разделении базы данных Access на внешний интерфейс (который содержит формы, отчеты икод) и серверная часть (которая содержит только таблицы).

Серверная часть будет расположена на центральном компьютере, и у каждого пользователя будет собственная копия интерфейса.

Конечно, для разделения базы данных и обеспечения автоматического обновления внешних интерфейсов на компьютерах пользователя потребуется некоторая начальная работа, но вы получите от этого два преимущества:

  1. Когда вы будете работать свнешний интерфейс, вы работаете на своем локальном компьютере, поэтому на вас меньше влияют перебои в работе сети.
  2. Бэкэнд, скорее всего, не будет поврежден.Как вы, к сожалению, испытали, изменение отчетов, форм и кода в базе данных Access, которая в то же время используется в производственных целях, может привести к проблемам.

Plus, даже если вы не можете настроитьРезервное копирование и восстановление на вашем компьютере, вы должны делать резервные копии вашей работы чаще.Я делаю это несколько раз в день, просто копируя базу данных Access вручную (вы будете делать это автоматически, не думая, что привыкли к ней).


РЕДАКТИРОВАТЬ:

Хорошо, из вопроса не совсем понятно, что ваша база данных разделена на интерфейс и сервер.
Из-за проблем с отключением сети я подумал, что вы редактировали«одна и единственная центральная база данных».

Я не помню, чтобы когда-либо сам испытывал нечто подобное, поэтому я могу только догадываться, что вы могли бы сделать сейчас .

Одна вещь, которая приходит мне в голову, - это то, что вы можете попытаться экспортировать ваши отчеты (если вы знаете их имена) в текстовые файлы с помощью недокументированных команд SaveAsText и LoadFromText:

'save your report in a text file on your disk
Application.SaveAsText acReport, "YourReport", "c:\YourReport.txt"

'load your report from the text file in another Access database
Application.LoadFromText acReport, "YourReport", "c:\YourReport.txt"

Но это всего лишь идея, поэтому я не знаю, сработает ли это в вашем случае.
Может быть, отчеты еще есть (и просто не показаны по какой-то причине), тогда это может сработать.

Извините, что говорю это снова, но:
Честно говоря, яУ меня нет большого опыта в восстановлении поврежденных баз данных (не Access, и не SQL Server, за который я отвечаю на работе!), потому что я очень стараюсь, чтобы никогда не попал в ситуацию, подобную вашейчасто делая резервные копии. ЛОТОВ из них (из-за этого сотрудники назвали меня "параноиком").


РЕДАКТИРОВАТЬ 2:

Я только что прочитал в вашем комментарии к ответу phoog, что поврежденная база данных была в сети (т.е. вы редактировали ее, пока она была в сети).

Совет на будущее:
Никогда не делайте этого по причинам, которые Фог уже упоминал в своем ответе.Если база данных уже разбита на внешний и внутренний, сделайте копию внешнего интерфейса и отредактируйте ее на локальном компьютере, чтобы предотвратить повторение подобных вещей.

Плюс, если внешний интерфейсконец с отчетами используют несколько пользователей, не позволяйте им всем работать над одним файлом в сети (по той же причине).
невероятно легко дать каждому пользователю свою собственную копию, включая автоматическое обновление, когдаесть новая версия интерфейса.
Вы можете прочитать здесь, как я делаю это на работе:
Как автоматически обновить приложение MS-Access 2007

...