Есть аксессный фронтенд (ХР), множество всяких
форм и и.д. В один момент несколько форм
испортилось: нельзя открыть код формы (по Alt-F11,
например), Аксесс падает. При открытии этих форм
тоже падает.
Может быть кто-нибудь сталкивался, что тут
можно сделать вообще?
Наверняка ведь можно как-то восстановить.
Compact & repair database не помогает (то же
самое получается), конвертация в другой формат
не проходит.
Здравствуйте, Slam, Вы писали:
S>Проблема:
S>Есть аксессный фронтенд (ХР), множество всяких S>форм и и.д. В один момент несколько форм S>испортилось: нельзя открыть код формы (по Alt-F11, S>например), Аксесс падает. При открытии этих форм S>тоже падает.
S>Может быть кто-нибудь сталкивался, что тут S>можно сделать вообще? S>Наверняка ведь можно как-то восстановить.
S>Compact & repair database не помогает (то же S>самое получается), конвертация в другой формат S>не проходит.
Здравствуйте, Elena_, Вы писали:
E_>Здравствуйте, Elena_, Вы писали:
E_>>Попробуйте импортировать эти формы в пустую базу?
E_>Т.е. импортировать из пустой базы.
В смысле импортировать?
Копировать-вставить не помогает.
Подозреваю, что в коде формы что-то
испортилось и при обращении к форме
Аксесс падает.
Не знаю, возможно символ какой-нибудь
там неправильный появился или ещё
что...
Здравствуйте, Slam, Вы писали:
S>В смысле импортировать?
S>Копировать-вставить не помогает. S>Подозреваю, что в коде формы что-то S>испортилось и при обращении к форме S>Аксесс падает.
S>Не знаю, возможно символ какой-нибудь S>там неправильный появился или ещё S>что...
Вообще-то я имела в виду не копировать-вставить, а правым глазом мыши на закладке Формы в пустой базе выбрать Импорт..., и выбрать базу и форму. Хотя, конечно, может тоже не пройти.
Можно еще попробовать таким кодом скопировать тексты модулей форм (из любого приложения Office, например, Excel)
Dim appAccess As New Access.Application
appAccess.OpenCurrentDatabase "C:\Test.mdb"Dim i As Integer
For i = 1 To appAccess.VBE.VBProjects(1).VBComponents.Count
appAccess.VBE.VBProjects(1).VBComponents(i).Export _
Filename:="C:\xxx\" & appAccess.VBE.VBProjects(1).VBComponents(i).Name & ".txt"Next
appAccess.Quit
Set appAccess = Nothing
А потом, если формы открываются в конструкторе, установить HasModule = False, может быть, поможет. Или тоже через программу установить HasModule = False, а потом из текстовых файлов восстановить модули.
Вообще там вот как было: открыли мы
редактор кода, там смотрим код разных
форм, а при попытке открыть код именно
этих нескольких форм -- падает он.
Т.е. совсем перекосило его
Вообще говорят эта ситуация возникает
только в ХР-шном аксессе, и связано с
тем, что там отслеживается история
изменения объектов (из-за этого же и
размер со временем распухает). Вот
где-то случилось страшное с этим
механизмом, и началась такая история.
Здравствуйте, Slam, Вы писали:
S>Вообще говорят эта ситуация возникает S>только в ХР-шном аксессе, и связано с S>тем, что там отслеживается история S>изменения объектов (из-за этого же и S>размер со временем распухает). Вот S>где-то случилось страшное с этим S>механизмом, и началась такая история.
Вот когда очень распухает, я создаю пустую базу, и импортирую в нее все объекты — таблицы, запросы, формы, отчеты, модули. Мне таким образом удавалось сократить с 30МБ до 5-6МБ.
Здравствуйте, Elena_, Вы писали:
E_>Вот когда очень распухает, я создаю пустую базу, и импортирую в нее все объекты — таблицы, запросы, формы, отчеты, модули. Мне таким образом удавалось сократить с 30МБ до 5-6МБ.
А кстати вроде Compact & Repair в таких
случаях и используют, чтобы потереть
информацию накопившуюся, нет?
Здравствуйте, Slam, Вы писали:
E_>>Вот когда очень распухает, я создаю пустую базу, и импортирую в нее все объекты — таблицы, запросы, формы, отчеты, модули. Мне таким образом удавалось сократить с 30МБ до 5-6МБ.
S>А кстати вроде Compact & Repair в таких S>случаях и используют, чтобы потереть S>информацию накопившуюся, нет?
Я не знаю, что должно быть в теории, но на практике для FE Сжать и восстановить практически ничего не дает, для базы с таблицами — да, а c формами, отчетами и модулями уменьшается на копейки. Поэтому я и делаю импорт в пустую базу, что дает уменьшение размера в разы. Я имею в виду именно Access XP, кажется, с 2000 не так разбухает.
Здравствуйте, Elena_, Вы писали: E_>Вот когда очень распухает, я создаю пустую базу, и импортирую в нее все объекты — таблицы, запросы, формы, отчеты, модули. Мне таким образом удавалось сократить с 30МБ до 5-6МБ.
В 97 офисе есть дефрагментация базы — "сжать базу". Но почему-то при этом теряется сортировка. В офис 2К — тоже так?
Здравствуйте, glyph, Вы писали:
G> В 97 офисе есть дефрагментация базы — "сжать базу". Но почему-то при этом теряется сортировка. В офис 2К — тоже так?
А что значит — теряется сортировка, в самих таблицах никакой сортировки в принципе нет, а в запросах она прописана в тексте запроса?
Порядок записей в таблицах, если открывать таблицу, конечно, может и поменяться, но он и не обязан быть каким-то постоянным.
Здравствуйте, Elena_, Вы писали:
E_>Здравствуйте, glyph, Вы писали: E_>Порядок записей в таблицах, если открывать таблицу, конечно, может и поменяться, но он и не обязан быть каким-то постоянным.
Именно тут. Перестает правильно сортировать поля с русским текстом при принудительно сортировке по полю. Кажется, глюк 97го Аксесса...
Здравствуйте, glyph, Вы писали:
G> Именно тут. Перестает правильно сортировать поля с русским текстом при принудительно сортировке по полю. Кажется, глюк 97го Аксесса...
Вообще-то, если на закладке Общие в параметрах поменять порядок сортировки (database sort order), то новый порядок сортировки вступает в силу только после сжатия.
См.например:
ACC2000: How Windows Regional Settings Affect Microsoft Access
NOTE: When you change your regional settings, the Database Sort Order on the General tab of the Options dialog box on the Tools menu changes to match the country that you select. However, to update existing databases to the new sort order, you must run the Compact Database command on these databases.
ACC2000: "Selected Collating Sequence Not Supported" Error Message
Здравствуйте, Elena_, Вы писали:
E_>Здравствуйте, glyph, Вы писали:
G>> Именно тут. Перестает правильно сортировать поля с русским текстом при принудительно сортировке по полю. Кажется, глюк 97го Аксесса...
E_>Вообще-то, если на закладке Общие в параметрах поменять порядок сортировки (database sort order), то новый порядок сортировки вступает в силу только после сжатия.
E_>Хотя, может быть, в 97 что-то и глючит.
Век живи — век учись. Спасибо за науку.