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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Аccess 2003 VBA
 
 автор: промка   (12.03.2009 в 16:18)   личное сообщение
 
 

Как записать текущую запись из одной таблицы в другую не по полям ,о сразу цкликом,Т.е. создать копию записи в другой таблицы средствами VBA

  Ответить  
 
 автор: Дрюня   (12.03.2009 в 17:05)   личное сообщение
 
 

а оно нужно дублировать записи в БД ?
может есть более правильное решение Вашей задачи, тока нужно ее описать

  Ответить  
 
 автор: Промка   (12.03.2009 в 17:14)   личное сообщение
 
 

Спасибо за отклик Проблема следующая: Я делаю изменения в записи и при этом хочу запомнить ее до изменения в архиве,как бы создать копию,чтобы запоминать историю. Знаю как запоминать по полям,но их много хочу сразу . В чем я не права? заранеее благодарна

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

Попробуйте так:

    DoCmd.RunCommand acCmdSelectRecord 'выделить запись
    DoCmd.RunCommand acCmdCopy 'копировать
    DoCmd.RunCommand acCmdPasteAppend 'вставить новую

  Ответить  
 
 автор: Промка   (12.03.2009 в 18:02)   личное сообщение
 
 

Я копирую текущую запись формы и добавляю в новую таблицу,а здесь добавляется в ту же Подскажите как код подкорректировать Я затрудняюсь Спасибо

  Ответить  
 
 автор: Анатолий (Киев)   (12.03.2009 в 19:12)   личное сообщение
 
 

Нужно открыть Recordset на Таблице2 и добавить запись из, беря данные св-ва Recordset формы.
Если в там те же поля, что и в источнике формы, то можно присваивать значения, выполнив цикл по .Recordset.Fields.

  Ответить  
 
 автор: Промка   (26.03.2009 в 16:52)   личное сообщение
 
 

Как програмно добраться до полей формы,использовать хочу номер поля.

  Ответить  
 
 автор: Мюллер   (26.03.2009 в 17:02)   личное сообщение
 
 


Как програмно добраться до полей формы,использовать хочу номер поля


me.Controls.Item(номер контрола)
Данное свойство позволяет добрать до контрола на форме с заданным индексом. Вопрос только в том, что данный контрол не обязательно будет полем

  Ответить  
 
 автор: промка   (26.03.2009 в 17:26)   личное сообщение
 
 

Спасибо. А как добратося до полей таблицы (запроса), на которой строится форма,а именно до полей(по номеру) текущей записи. Хочу текущую запись взять в архив,циклом присвоить полям записи архива , не используя имена полей

  Ответить  
 
 автор: Мюллер   (26.03.2009 в 17:53)   личное сообщение
 
 

Стройте рекордсет на основе таблицы(запроса). В нем используя свойство FindFirst переходите на нужную запись и далее присваиваете полям значения.
Только не понятно, почему вы не хотите использовать имена полей на форме? Это значительно облегчило бы вашу задачу.

  Ответить  
 
 автор: промка   (26.03.2009 в 18:06)   личное сообщение
 
 

Их 50 штук

  Ответить  
 
 автор: Мюллер   (26.03.2009 в 18:24)   личное сообщение
 
 

Тогда можно использовать 2 рекордсета - один рекордсет таблицы.
а второй - рекордсет формы

  Ответить  
 
 автор: промка   (27.03.2009 в 13:54)   личное сообщение
 
 

Public Sub Проба()

Dim db As Database
Dim rcd As Recordset

Set db = CurrentDb()

Set rcd = db.OpenRecordset("Категории")

rcd.FindFirst " Категория = 0" Сообщение на эту операцию
MsgBox (rcd! Категория])


End Sub
Вот хотела найти нужную запись,все просто,а выдается диагностика "Операция не поддерживатся для объектов данного типа" В чем дело??? Скажите пожалуйста!!

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

Видимо "Категории" - родная (не присоединенная) таблица. В таком Recordset-е методы Find не поддерживаются.
Сделайте так:
Set rcd = db.OpenRecordset("Категории", dbOpenDynaset)

  Ответить  
 
 автор: промка   (27.03.2009 в 15:24)   личное сообщение
 
 

Так не получается.Сделала запрос на таблице пошло. Интересно почему, Если знаете напишите пожалуйста

  Ответить  
 
 автор: Дрюня   (12.03.2009 в 18:07)   личное сообщение
 
 

если в таблице источнике есть ключевые поля, могут быть сложности
имхо
если действительно есть такая необходимость, то таблицу источник нужно связать с другой таблицей (один ко многим) и в эту таблицу писать также
- кто изменил
- дату изменения
возможно в этой таблице хранить не все поля, а только "критические"

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