Акцесс перестал сжимать таблицы (+)

Kezya

Здравствуйтеудалил из таблицы последние записи, выполнил "Сжать и восстановить базу" прямо в акцессе. Но индексы не высвободились. На другой базе все нормально. В чем может быть проблема?Спасибо
24 ответа

Kezya

Но индексы не высвободились
поподробнее о невысвободившихся индексах - как ВЫ это определяете?


Kezya

>В чем может быть проблема?ХЗ, но я знаю клевый способ сжатия и ремонта базюки - импорт в новую.


Kezya

Определяю так:есть таблица, есть поле - id (счетчик)добавляю записи:1 дата12 дата23 дата34 дата45 дата5удаляю строки 4 и 5, остается1 дата12 дата23 дата3делаю "сжать и восстановить базу". потом снова начинаю добавлять записи, но ониначинают добавляться не с 4-го индекса, а с 6-го, т.е. вот так:1 дата12 дата23 дата36. дата?а надо, чтобы с 4-го


Kezya

посмотрите FAQ по счетчикам ,Вам нужно сделать еще Insert или Update в поле счетчика


Kezya

Удаление строк делаю в самом акцессе, так что он должен все делать автоматически. На другой базе все работает.Кстати, я сжимаю базу программно. Видимо, после этого индексы перестают высвобождаться. И еще один момент: до того, как база была сжата программно, ее можно было сжать раром раз в 10 (ну примерно), после программного сжатия она уже не архивируется.Может, в этом все дело?


Kezya

до того, как база была сжата программно, ее можно было сжать раром раз в 10 (ну примерно), после программного сжатия она уже не архивируется.
1 RAR перестает сжимать mdb(падает) или коэффициент сжатия мал ?2 после удаления записей счетчик НЕ должен принимать максимальное значение,еще раз рекомендую прочитать FAQ


Kezya

Блин - ну не надо счетчик индексом обзыватьПоле типа счетчик может быть и не ключевым, а как следсвие и не индексированным


Kezya

Поле id - тип поля счетчик и является ключевым.Повторюсь, в другой базе поле с такими же параметрами после удаления последних записей высвобождает индексы (естесственно, после сжатия).1. Да, после программного сжатия (не из акцесса), коэффициент сжатия раром практически нулевой. 2. После удаления - да, но я после того как удалил записи, выполняю в акцессе "Сжать и восстановить базу". Почему тогда в других базах последние индексы высвобождаются? (только последние)


Kezya

А таблицы связанные?


Kezya

Да, связанные, но записей в связанных таблицах нет.


Kezya

Поле id - тип поля счетчик и является ключевым.Повторюсь, в другой базе поле с такими же параметрами после удаления последних записей высвобождает индексы (естесственно, после сжатия).1. Да, после программного сжатия (не из акцесса), коэффициент сжатия раром практически нулевой. 2. После удаления - да, но я после того как удалил записи, выполняю в акцессе "Сжать и восстановить базу". Почему тогда в других базах последние индексы высвобождаются? (только последние)
1 не индексы,а счетчики.2 НЕ ВЕРЮ,покажите базу(mdb) в которой счетчики после удаления записей и сжатия устанавливаются на последние значение.


Kezya

Да, связанные, но записей в связанных таблицах нет.
А запускаете сжатие в файле с интерфейсом или в файле с таблицами?


Kezya

2 НЕ ВЕРЮ,покажите базу(mdb) в которой счетчики после удаления записей и сжатия устанавливаются на последние значение.
Обычная база в 97 формате


Kezya

1 не индексы,а счетчики.2 НЕ ВЕРЮ,покажите базу(mdb) в которой счетчики после удаления записей и сжатия устанавливаются на последние значение.
Вам скриншота достаточно будет?открываю базу из акцесса и в меню самого акцесса выбираю Сервис->....


Kezya

мне будет достаточно версии Access , сжимать базы я умею.если речь все время шла о 97 - Вы сами себя наказываете


Kezya

открываю базу из акцесса и в меню самого акцесса выбираю Сервис->....
Это значит интерфейсную часть?Откройте файл с таблицами (а не интерфейсный) и сжимайте на здоровье.


Kezya

мдя... сжимать интерфейсную часть, и ожидать, что при этом произойдет сжатие прилинкованных баз...а если бы к MS SQL присоединились - наверное shrink database должен был бы делаться?


Kezya

Версия Access2000, про 97-й это не я говорил.Я не совсем понимаю (не хватает знаний) что такое "интерфейсная часть" ?есть просто .mdb файл, который я создавал в акцессе и работаю с ним там же.Вот и все


Kezya

С архивированием разобрался.Да, проблему я описал некорректно :(Имеются записи в таблице, одно из полей (id) - счетчик. Т.е.id data1 data12 data23 data34 data45 data5Удалил записи 4 и 5. Выполняю в акцессе Сервис->Служебные программы->Сжать и восстановить базу данных.Теперь если я снова будут вносить записи в таблицу, с какого номера начнется id? с номера 4 или с номера 6?У меня есть две базы, в одной номера освобождаются, во второй - нет. Почему так, понять не могу. Разве сжатие не должно действительно удалять данные из базы?Если надо, могу выложить две базы для примера.


Kezya

Да, связанные, но записей в связанных таблицах нет.
Так как вы заявили, что таблицы связанные, то смею предположить, что вы сделали разделение базы на два файла:- первый файл - файл с таблицами (ИмяФайла_be.mdb);- второй - файл с формами, отчетами, модулями. (интерфейсная часть ИмяФайла.mdb)Так вот, Сервис->Служебные программы->Сжать и восстановить базу данных необходимо запускать в файле с таб., т.е. закрываете ваше приложение, открываете файл ИмяФайла_be.mdb и жмете сжать и восстановить базу.


Kezya

Нету ни отчетов, ни форм, ни модулей :(Только файл с таблицами и все. Один. Т.к. работаю я с базой не из самого акцесса, а из своей программы, используя технологию ADO. А в акцессе лишь попробовал сжать базу.Если выложу пример базы, это как-то поможет? :)


Kezya

так что должны счетчики изменятся как до сжатия или на все же с последней на данный момент существующей записи, у меня вот выражаясь терминами автора тоже идет добавление 6,7... и тд а не 4,5,6.... сжимаю бд а не интерфейс


Kezya

Kezya,как удалось решить проблему?У меня такая же проблема появилась


Kezya

Посмотрите в хелпе "Изменение начального значения поля счетчика".