Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MS Access > Access: как программно сжать и восстановить базу |
Автор: Chyslyvchyk 19.10.2004, 17:16 |
Есть таблица: 1) Из нее удаляются данные 2) В нее загружаются данные из другой таблицы Проблема в том, что в этой таблице есть поле "Счетчик", который, зараза, при внесении новых данных считает не сначала, а от последнего значения, что было до удаления данных из таблицы. Лечиться: пункт меню в Access "Сервис -> Служебные программы -> Сжать и восстановить базу данных". Нужно программно сделать действие аналогичное пункту меню в Access "Сервис -> Служебные программы -> Сжать и восстановить базу данных". ![]() |
Автор: Pakshin A. S. 19.10.2004, 17:26 |
Если работаешь с Delphi, то поможет статейка http://forum.vingrad.ru/index.php?showtopic=30626&unread=1&hl=access Предпоследний пост, от Pegas'а... |
Автор: Chyslyvchyk 19.10.2004, 17:32 | ||
Если б с Делфями - в разделе Дельфей была бы тема опубликована. ![]() Microsoft Visual Basic |
Автор: boevik 19.10.2004, 17:36 |
Chyslyvchyk, что используешь DAO или ADO? |
Автор: Chyslyvchyk 19.10.2004, 17:42 | ||
Да я в самом Access копошусь, в редакторе Visual Basic. Вот тута инфы немного, только не знаю, как ее использовать: http://www.team-x.ru/xforum/index.html?act=Print&client=html&f=27&t=739 |
Автор: boevik 19.10.2004, 17:56 |
Chyslyvchyk, можно воспользоваться командой CompactDatabase, НО ты не сможешь сжать открытую базу т.е. самого себя. |
Автор: Chyslyvchyk 20.10.2004, 09:20 | ||
Помогите модифицировать: CompactDatabase Method Example This example uses the CompactDatabase method to change the collating order of a database. You cannot use this code in a module belonging to Northwind.mdb.
|
Автор: Chyslyvchyk 20.10.2004, 14:30 | ||
Обнуление счетчика решилось другим способом: 1) удалить из таблицы все данные 2) выполнить код:
3) Опять удалить все из таблицы Теперь если добавлять данные в таблицу, счетчик начинает считать с 1. Что и требовалось сделать. Ура. |
Автор: Akina 20.10.2004, 14:41 |
Chyslyvchyk Что-то у тебя с базой неладно. Поле уникальный ключ типа счетчик при правильном построении базы должно использоваться только в одном месте - в JOIN для связывания таблиц. Все, более нигде. А для тех целей, которые ты озвучиваешь, правильное решение - введение в БД дополнительного поля и программное его заполнение нужными значениями. |
Автор: Golden Hands 23.1.2005, 04:25 |
Да че вы мучаетесь с обнулением счетчика? Копируйте таблицу (выделяете, Копировать - Вставить), удаляете предыдущую, переименовываете (имя как у старой). И - счетчик обнулен. |
Автор: Chyslyvchyk 1.3.2005, 18:43 | ||
Это нужно было сделать программно. |
Автор: Golden Hands 2.3.2005, 00:32 | ||
Хм, а разве программно нельзя копировать таблицу, переименовать, удалить старую? Потыкаюсь. |
Автор: Chyslyvchyk 2.3.2005, 13:48 | ||||
Проблема в том, что эта таблица имела связные поля с другой таблицей. И при ее удаление терялась связь. В то время единственный выход, который был найден - очистить и перезаписать. |
Автор: Golden Hands 7.3.2005, 01:56 |
Да, связи таблицы теряются. ![]() |