Работа С БД
Как сделать так, чтобы данные одной таблицы заносились автоматом в другую?
Т.е. у меня есть 2 таблицы: maintable и users
maintable состоит из след.полей: id, number, familiya,imya,address,lastupdate, comment
users: id,idmain, comment,lastupdate
Мне надо связать lastupdate и comment двух таблиц, чтоб при заполнении одной таблицы, эти поля в другой таблице изменялись. (где idmain-прявязка к счётчику (id) главной таблицы(maintable)
Тебе не нужны поля comment, lastupdate в двух таблицах. Это -дублирование (избыточность). При необходимости получить эти данные надо генерить запрос, используя привязку записей. (Собственно, для этого привязка и делается).
суть в том, что я не дублирую поля. В одной таблице, которая майн, остаются только последние комменты и дата изменений, а в юзерс, находится т.н. хистори, т.е. там только такие записи и существуют, по которым можно отследить кто и что менял.
в акцесе, когда привязываю, поля двух таблиц(через схему данных) - ничего не происходит.
Напиши конкретно, какие поля содержат обе таблицы (без дублирования) и что ты желаешь видеть на экране, я напишу тебе запрос, который выполнит все, что ты пожелаешь.
users: counter,date,time,number,lastupdate,who,comment
таблица main статична, т.е. она практически не растёт, а чтобы был лог изменений нужна таблица users, там указаны дата/время, и кто/что/когда менял, она постоянно нарастает, с каждым изменением.
Надо: чтобы, если меняется запись в таблице main, то добавляется новая запись в таблицу users.
использую базу access (mdb), подключаю ее через ADODC компонент.
Если юзеры вносят изменения с помощью твоей проги, то надо после каждого Update табл. main вызывать процедуру updateUsers
Private sub updateUsers(rs_main as Recordset)
Dim users as Recordset
Set users=db.OpenRecordset("users")
users.AddNew
users.Fields("time")=time ' и т.д. для каждого поля
users.Update
users.close
end sub
Если же юзеры работают с БД, не используя твою прогу, то ты должен по таймеру получать Recordset табл. main и сравнивая его с запасенным ранее Recordset принимать решение, нужно или нет выполнять users.AddNew
Лично я пробовал работать с BD но чесно говоря у меня ничё не вышло. Да я и сам знал, ещё заранее, что не выйдет...:(
ещё вопросик....бывает такое, когда делаешь .recordset.update
выскакивает сообщение, что мол "Не могу найти строку для обновления, возможно данные были изменены...." и не делает update
Потом, когда загружаю базу в access, и пытаюсь удалить все записи, он говорит, что некоторые записи блокированы ...