|
|
|
Недостаточно сведений ключевого поля для обновления
|
|||
|---|---|---|---|
|
#18+
Доброго дня! Подскажите, в чём проблема? Есть форма, на ней адодц1 и датагрид1. есть текстовые поля, где отображаются данные из грида. Создаю кнопку "Удалить запись", в коде пишу Adodc1.Recordset.Delete. Удаление не происходит. Вернее сначала запись на секунду исчезает из таблицы, но через секунду выскакивает ошибка "Недостаточно сведений ключевого поля для обновления (run-time error -2147467259(80004005)" удаляемая запись появляется вновь и всё... Не пойму в чём дело, в другом проекте всё работает. База к проекту подключена программно (кодом), а не в настройках adodc. Помогите, плииз! очень надо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2009, 17:56 |
|
||
|
Недостаточно сведений ключевого поля для обновления
|
|||
|---|---|---|---|
|
#18+
Ключевое поле отсутствует в таблице или выборке. Такое сообщение появляется при попытке удалить одну из нескольких идентичных записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2009, 10:34 |
|
||
|
Недостаточно сведений ключевого поля для обновления
|
|||
|---|---|---|---|
|
#18+
Проблема решилась непонятным методом: в свойствах таблицы в акцессе поля были изменены с МЕМО на Текстовые и в VB сразуже заработала функция удаления.. непонятный глюк, но всё работает ) Спасибо тем, кто откликнулся. Надеюсь данное решение поможет ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2009, 11:58 |
|
||
|
Недостаточно сведений ключевого поля для обновления
|
|||
|---|---|---|---|
|
#18+
Проблема вновь актуальна. Теперь, правда проявляется по другому. Если запись в таблице уникальна, то удаляется без проблем. Если же есть 2 и более одинаковых записей (полностью одинаковые, по причине повторного добавления в базу) , то выскакивает ошибка, проект останавливается, но при повторном открытии оказывается, что всё-таки удалились ... все одинаковые записи, тоесть например если в базе было 2 иванова И.И., при попытке удалить 1 из них - вылетает ошибка, но в итоге из базы удаляются все Ивановы И.И.. Подскажите как исправить сие, либо есть ли какой метод отслеживания записей в базе, например если есть уже в базе Иванов И.И с паспортом 12 34 567890, живущим по адресу ул.Улица д.1 кв.2, то второй раз эта запись больше не добавлялась. Благодарю за внимание! ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2009, 12:18 |
|
||
|
Недостаточно сведений ключевого поля для обновления
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2009, 17:42 |
|
||
|
Недостаточно сведений ключевого поля для обновления
|
|||
|---|---|---|---|
|
#18+
big-dukeвам нужен составной уникальный индекс в таблице. тоесть в самой акцессовской базе в каждой таблице создать поле со счётчиком? Или как? Поясните, плз, по подробнее =) Вообще в каждой таблице уже создал счётчик и даже присвоил ему значение ключевого поля. Напрямую из таблицы удаляется вроде-бы без проблем, но когда делаю запрос (когда в гриде остаются только требуемые записи) вылетает ошибка, что " недостаточно сведений из основной таблицы для обновления ". Плдскажите, как исправить. Спасибо! ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2009, 12:54 |
|
||
|
Недостаточно сведений ключевого поля для обновления
|
|||
|---|---|---|---|
|
#18+
Запрос покажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2009, 15:36 |
|
||
|
Недостаточно сведений ключевого поля для обновления
|
|||
|---|---|---|---|
|
#18+
Antonariy, алгоритм такой: сначало делаю запрос к базе, если находяться повторяющиеся данные, то лишние копии пытаюсь удалять. Запрос делаю так: Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\apbase.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False" Adodc1.RecordSource = "SELECT * FROM clients WHERE fio Like '" & apbase.prodavects.Text & "' UNION SELECT * FROM clients WHERE fio Like '" & apbase.pokupatelts.Text & "'UNION SELECT * FROM clients WHERE fio Like '" & apbase.Text19.Text & "'" Set DataGrid1.DataSource = Adodc1 Adodc1.CommandType = adCmdText Adodc1.CursorType = adOpenDynamic Adodc1.Refresh Юнион использую потому, что в таблице договор (Договор купли-продажи ТС) присутсвуют данные Продавца, покупателя, также могут быть доверенные лица с обеих сторон, Данные о Клиентах (собственно продавце, покупателе и доверенных лицах) хранаяться в отдельной таблице Clients, по-этому в запросе используется ЮНИОН, чтоб по каждому договору выводить ВСЕХ участвующих в нём клиентов. После этого, если найдено например 2 Иванова И.И. я пытаюсь удалить Одного из 2х Ивановых. Удаляю так: adodc1.RecordSet.Delete И вот тут выскакивает ошибка. Если же Иванов вбазе один, то он удаляется без проблем. Хотя по советам форумчан в таблицу (во все таблицы базы) добавил поле счётчика и задал его ключевым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2009, 11:05 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35963747&tid=2161079]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 353ms |

| 0 / 0 |
