Если ваша база данных была повреждена один раз, трудно сказать, возможно ли восстановить из нее отсутствующие отчеты.
Единственный 100% безопасный способ восстановить ваши изменения - это иметь последнюю резервную копию ранеекоррупция произошла.
Но вполне возможно, что перебои в сети, когда пользователи обращались к базе данных и , в то время как вы вносили изменения в отчеты, приводят к повреждению файла.
Я знаю, что это не поможет вам прямо сейчас, но вот несколько советов на будущее:
Вам следует подумать о разделении базы данных Access на внешний интерфейс (который содержит формы, отчеты икод) и серверная часть (которая содержит только таблицы).
Серверная часть будет расположена на центральном компьютере, и у каждого пользователя будет собственная копия интерфейса.
Конечно, для разделения базы данных и обеспечения автоматического обновления внешних интерфейсов на компьютерах пользователя потребуется некоторая начальная работа, но вы получите от этого два преимущества:
- Когда вы будете работать свнешний интерфейс, вы работаете на своем локальном компьютере, поэтому на вас меньше влияют перебои в работе сети.
- Бэкэнд, скорее всего, не будет поврежден.Как вы, к сожалению, испытали, изменение отчетов, форм и кода в базе данных 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