Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: SOS! Все рекордсеты стали необновляемыми ((( (А2000)
 
 автор: Михаил   (11.02.2008 в 15:11)   личное сообщение
 
 

Доброго времени суток всем.

После планового сжатия бд отвалились все обновляемые рекордсеты.
Не получается добавить запись ни в одной ворме.
Выдает ошибку: "Действие прервано связанным объектом"

Что случилось с базой? И как это вылечить ?

  Ответить  
 
 автор: Анатолий (Киев)   (11.02.2008 в 15:29)   личное сообщение
 
 

У вас таблицы родные или присоединенные? Сохранились ли ключевые и уникальные поля? Не превратились ли поля "Счетчик" в "Длинное целое"? Связи между таблицами остались "1-многие"? Если речь об MDB, то, если файл закрыт, LDB рядом остается? Если да, удалить можно?
В форме добавить нельзя, а в таблице? Если таблицы присоединенные, то можно ли добавлять записи в родном для таблиц файле?
Как давно делали резервное копирование?

  Ответить  
 
 автор: Михаил   (11.02.2008 в 15:44)   личное сообщение
 
 

Таблицы прилинкованные. Т.е. Основная БД --> Клиентская БД.
Все ключи и типы данных на месте. Схема данных так же на месте.
.ldb не остается.
Напрямую в таблицу добавить можно. Как в основной базе, так и через клиентскую часть.
Последняя рез.копия - в пятницу ночью. Восстановил из копии - все замечательно работает, но выпал день пятницы (моя вина. расписание не продумал).
Попытка удалить в востановленной рабочей копии таблы и экспортнуть из "сломанной" результата не принесли. Т.е. рекордсеты не работают.
Вот ((

  Ответить  
 
 автор: Анатолий (Киев)   (11.02.2008 в 16:51)   личное сообщение
 
 

>Попытка удалить в востановленной рабочей копии таблы и экспортнуть из "сломанной" >результата не принесли. Т.е. рекордсеты не работают.
Чудеса! В таблицу запись добавить можно, а через форму в эту же таблицу нельзя? Или все формы построены на нескольких таблицах? Тогда можно ли добавить в запрос формы, открытый непосредственно? Я бы еще подумал, что формы повредились, но из ваших слов вытекает, что форма, нормально работающая в восстановленной копии с родной таблицей перестает работать с импортированной? А нельзя ли в новый MDB экспортнуть 1-2 таблицы и форму лежащую на них, и выложить здесь?
Кстати, ИМХО, нужно не заменять старые таблицы битыми, а добаить данные за пятницу запроcами INSERT INTO (все поля, включая счетчики) в порядке подчиненности таблиц.

  Ответить  
 
 автор: Михаил   (11.02.2008 в 17:45)   личное сообщение
 
 

>Чудеса!
Еще какие. Аж глаза на лоб )))

>В таблицу запись добавить можно, а через форму в эту же таблицу нельзя?
Именно так. При открытии этой формы в строке состояния базы сразу пишется - Recordset не является обновляемым. А вот в рез.копии - не пишется.

>Или все формы построены на нескольких таблицах?
Основные формы, как правило, на запросах. Где-то источник строк подставляется при открытии формы. Вобщем по разному.

>Тогда можно ли добавить в запрос формы, открытый непосредственно?
Не понял вопроса )

>Я бы еще подумал, что формы повредились, но из ваших слов вытекает, что форма, >нормально работающая в восстановленной копии с родной таблицей перестает работать с
>импортированной?
Именно так-2 )))

>А нельзя ли в новый MDB экспортнуть 1-2 таблицы и форму лежащую на них, и выложить здесь?
К сожалению увы нет (

>Кстати, ИМХО, нужно не заменять старые таблицы битыми, а добавить данные за пятницу запроcами INSERT INTO (все поля,>включая счетчики) в порядке подчиненности таблиц.
Похоже это единственный вариант. Но что дальше? Не сжимать базу совсем? Она же когда-нибуть распухнет и совсем отвалится.

  Ответить  
 
 автор: Анатолий (Киев)   (11.02.2008 в 18:17)   личное сообщение
 
 

>>Тогда можно ли добавить в запрос формы, открытый непосредственно?
>Не понял вопроса )
Имелось ввиду, что в конструкторе формы щелкнуть на свойсте RecordSource, открыть конструктор запроса, открыть запрос, внести запись. И это, видимо, получится. :)

Могу еще посоветовать Decompile, но на этом, не видя примера, - я иссяк.

  Ответить  
 
 автор: Михаил   (11.02.2008 в 18:34)   личное сообщение
 
 

>Имелось ввиду, что в конструкторе формы щелкнуть на свойсте RecordSource, открыть >конструктор запроса, открыть запрос, внести запись. И это, видимо, получится. :)
Не добавляет.

>Могу еще посоветовать Decompile, но на этом, не видя примера, - я иссяк.
В основной БД только таблицы. И ни строчки кода. Декомпиль я конечно делал, но это ничего не дало.
Пример смогу сделать, но со временем проблема как всегда.
Накопал тут статейку http://support.microsoft.com/kb/189851
Но как она может помочь - не понял что-то )

  Ответить  
 
 автор: час   (11.02.2008 в 19:39)   личное сообщение
 
 

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

  Ответить  
 
 автор: Анатолий (Киев)   (11.02.2008 в 20:14)   личное сообщение
 
 

>Не добавляет.
Ух ты!!!
А как выглядят связи между таблицами в конструкторе запроса?
А создать сохраненный запрос и добавлять в нем? А реактировать, удалять?
А если свойству "Уникальные записи" указать ДА?
Подозреваю, что виноваты индексы. Вы не пробовали восстановить БД другими средствами (JetComp.exe, с помощью ODBC драйвера, другими приблудами.)

  Ответить  
 
 автор: Михаил   (12.02.2008 в 19:58)   личное сообщение
 
 

Всем спасибо за ответы.
Все "починилось". Чудес, как известно, не бывает ) Слетел один ключ, соответственно слетел индекс, и соответственно слетело 2 связи. Прошу прощения за свою невнимательность.

Что конкретно слетело обнаружилось в таблице MSysCompactError )))

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList