|
|
|
| Как записать текущую запись из одной таблицы в другую не по полям ,о сразу цкликом,Т.е. создать копию записи в другой таблицы средствами VBA | |
|
| |
|
|
|
| а оно нужно дублировать записи в БД ?
может есть более правильное решение Вашей задачи, тока нужно ее описать | |
|
| |
|
|
|
| Спасибо за отклик Проблема следующая: Я делаю изменения в записи и при этом хочу запомнить ее до изменения в архиве,как бы создать копию,чтобы запоминать историю. Знаю как запоминать по полям,но их много хочу сразу . В чем я не права? заранеее благодарна | |
|
| |
|
|
|
| Попробуйте так:
DoCmd.RunCommand acCmdSelectRecord 'выделить запись
DoCmd.RunCommand acCmdCopy 'копировать
DoCmd.RunCommand acCmdPasteAppend 'вставить новую
|
| |
|
| |
|
|
|
| Я копирую текущую запись формы и добавляю в новую таблицу,а здесь добавляется в ту же Подскажите как код подкорректировать Я затрудняюсь Спасибо | |
|
| |
|
|
|
| Нужно открыть Recordset на Таблице2 и добавить запись из, беря данные св-ва Recordset формы.
Если в там те же поля, что и в источнике формы, то можно присваивать значения, выполнив цикл по .Recordset.Fields. | |
|
| |
|
|
|
| Как програмно добраться до полей формы,использовать хочу номер поля. | |
|
| |
|
|
|
|
Как програмно добраться до полей формы,использовать хочу номер поля
|
me.Controls.Item(номер контрола)
Данное свойство позволяет добрать до контрола на форме с заданным индексом. Вопрос только в том, что данный контрол не обязательно будет полем | |
|
| |
|
|
|
| Спасибо. А как добратося до полей таблицы (запроса), на которой строится форма,а именно до полей(по номеру) текущей записи. Хочу текущую запись взять в архив,циклом присвоить полям записи архива , не используя имена полей | |
|
| |
|
|
|
| Стройте рекордсет на основе таблицы(запроса). В нем используя свойство FindFirst переходите на нужную запись и далее присваиваете полям значения.
Только не понятно, почему вы не хотите использовать имена полей на форме? Это значительно облегчило бы вашу задачу. | |
|
| |
|
|
|
|
| Тогда можно использовать 2 рекордсета - один рекордсет таблицы.
а второй - рекордсет формы | |
|
| |
|
|
|
| Public Sub Проба()
Dim db As Database
Dim rcd As Recordset
Set db = CurrentDb()
Set rcd = db.OpenRecordset("Категории")
rcd.FindFirst " Категория = 0" Сообщение на эту операцию
MsgBox (rcd! Категория])
End Sub
Вот хотела найти нужную запись,все просто,а выдается диагностика "Операция не поддерживатся для объектов данного типа" В чем дело??? Скажите пожалуйста!! | |
|
| |
|
|
|
| Видимо "Категории" - родная (не присоединенная) таблица. В таком Recordset-е методы Find не поддерживаются.
Сделайте так:
Set rcd = db.OpenRecordset("Категории", dbOpenDynaset) | |
|
| |
|
|
|
| Так не получается.Сделала запрос на таблице пошло. Интересно почему, Если знаете напишите пожалуйста | |
|
| |
|
|
|
| если в таблице источнике есть ключевые поля, могут быть сложности
имхо
если действительно есть такая необходимость, то таблицу источник нужно связать с другой таблицей (один ко многим) и в эту таблицу писать также
- кто изменил
- дату изменения
возможно в этой таблице хранить не все поля, а только "критические" | |
|
| |