Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Практическое использование MS Access


Информационный Канал Subscribe.Ru



2.Копирование записей из одной таблицы в другую с помощью объекта Recordset
(Все примеры тестировались в MS Access 97, для того чтобы приведенный здесь код
работал Access 2000 или XP, необходимо включить в Visual Basic поддержку
Microsoft DAO 3.6 Object Library (Tools\References...))

В этом примере мы разберем как осуществить копирование данных из одной таблицы в
другую, сначала для конкретных таблиц. А в следующем примере рассмотрим процедуру
которая копирует информацию из одной прозвольной таблицы в другую произольную
таблицу (для полей с одинаковыми именами).
В нашей тренировочной базе данных добавим в таблицу «СОТРУДНИКИ» поле «должность»,
создадим таблицу «Оклады» с полями «должность» и «оклад»; таблицу «ВедомостьЗП»
с полями «фио», «ЗП»

Заполним таблицу «Оклады», например, так:

Должность Оклад
Директор 1500,00
ГлавБух 1100,00
Грузчик 500,00
а в таблице «СОТРУДНИКИ» также заполним поле «должность» для всех записей. Следующая процедура копирет данные из таблицы «СОТРУДНИКИ» в таблицу «ВедомостьЗП»: Private Sub Кнопка2_Click() ' определяем необходимые переменные Dim DB As Database, RS As Recordset, RS1 As Recordset Set DB = CurrentDb ' будем работать с объектами текущей БД ' Открываем Recordset для таблицы из которой будем копировать данные Set RS = DB.OpenRecordset("СОТРУДНИКИ", dbOpenDynaset) ' Открываем Recordset для таблицы в которую будем копировать данные Set RS1 = DB.OpenRecordset("ВедомостьЗП", dbOpenDynaset) ' если в исходной таблице присутствуют записи, начинаем цикл по записям If RS.RecordCount > 0 Then RS.MoveFirst Do Until RS.EOF RS1.AddNew RS1![фио] = RS![фио] RS1![ЗП] = DLookup("оклад", "Оклады", "должность = '" & RS![должность] & "'") ' функция DLookup в нашем примере возвращает значение поля "оклад" ' из таблицы "Оклады", из записи в которой поле "должность" ' совпадает со значением поля "должность" таблицы "СОТРУДНИКИ" RS1.Update RS.MoveNext Loop End If End Sub ---------------------------------------------------------------------- Архив рассылки Дополнительная информация, примеры программ http:\\use-access.narod.ru Написать письмо: use-access@bk.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное