Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2008, 06:06   #1
Sack
Пользователь
 
Регистрация: 25.08.2008
Сообщений: 14
По умолчанию копирование данных из таблицы в таблицу

Меняю структуру существующей БД. Таким образом встала задача скопировать значения полей одной таблицы в другую.

Вообще-то это можно сделать с помощью запроса INSERT INTO, но так как структура меняется, то после приходится обновлять поля еще из одной таблицы. Т.е. одна новая таблица создается из нескольких старых.

Как известно в аксесе не работают вложенные запросы в UPDATE, это все чертовски усложняет.

Пробовал работать через recordset, но у меня таблицы с большим количеством записей (десятки тысяч) поэтому возникают проблемы с блокировками и еще с бог весть чем. Короче работает, но с огромным трудом. Код привожу.

Какие есть мнения.

Private Sub Кнопка0_Click()
Dim rst1, rst2 As Recordset
'-----------------------------'
DAO.DBEngine.SetOption dbMaxLocksPerFile, 1500000
Set rst1 = CurrentDb.OpenRecordset("table_name _1", dbOpenDynaset)
Set rst2 = CurrentDb.OpenRecordset("table_name _2", dbOpenDynaset)
Do Until rst1.EOF
rst2.movefirst
Do Until rst2.EOF
If rst1.Fields("field_name_1").Value = rst2.Fields("field_name_2").Value Then
rst1.Edit
rst1!field_name = rst2.Fields("field_name").Value
rst1.Update
Exit Do
End If
rst2.MoveNext
Loop
rst1.MoveNext
Loop
rst1.Close
rst2.Close

End Sub
Sack вне форума Ответить с цитированием
Старый 16.09.2008, 05:59   #2
Sack
Пользователь
 
Регистрация: 25.08.2008
Сообщений: 14
По умолчанию

Решение оказалось ужасно простым.

Никакой VBA тут не нужен. Подобное обновление можно осуществить через запрос на обновление. Связываем старую и новую таблицу и задаем значение обновления нужного нам поля.
Sack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
занесение данных в таблицу ASAN Microsoft Office Excel 7 02.06.2008 23:50
Занесение Данных в таблицу при помощи Query Avalonix БД в Delphi 9 29.05.2008 20:13
Проблема с сохранением данных в другую таблицу HAMMAN Помощь студентам 1 26.05.2008 08:30
Копирование данных из одной таблицы в другую! фЁдОр БД в Delphi 18 06.01.2008 19:27
перевод таблицы из текстового файла в таблицу paradox7.0 ГОСЕАН БД в Delphi 4 19.07.2007 15:12