Есть прога, которая связана с БД Access через ADO.
Задача: поменять в БД в записи с нужным номером (sID), только одно поле (hiden=true).
БД состоит из нескольких столбцов.
Вначале я нахожу запись в БД, в которой я хочу поменять только один столбец:
Set Rs = New ADODB.Recordset
Rs.ActiveConnection = conect
rs.Source = "select * from GOODS where ID="+sID 'пробовал писать вместо звезды hiden
rs.CursorType = adOpenDynamic
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
rs.Open
Так вот когда я программно меняю один из столбцов (rs!hiden=true), а после этого обновляю (rs.refresh). Во время обновления и возникает ошипочка:
Key column information is insufficient or incorrect. Too many rows were affected by update.
В чем причина непонятно. Вообще в БД не было ключевых полей и индесов, но я пробовал делать ключевые поля, индексы, все равно таже ошипочка.
В результате я делаю так:
Нахожу запись, запоминаю все ее поля, а после этого удаляю ее и вставляю новую запись (rs.addnew) с теме же полями и плюс нужное мне поле.
Но ведь это криво. Ведь сколько приходиться делать дополнительных операций.
Подскажите пожалуйсто как правильно решить эту пробему.