Четверг, 28 Августа 2014 г. 17:54
+ в цитатник
Добрый день
помогите разобраться с рекордсетом, потому как столкнулся с проблемой, которую не осилю без сторонней помощи:
есть две таблицы с одинаковыми полями:
таблица - Тест:
Поле1 Поле2 Поле3
1 2 3
2 3 4
таблица - Тест1:
Поле1 Поле2 Поле3
2 3 4
4 4 5
нужно без обращения к имени полей(поскольку название полей заранее не известны) осуществить импорт таблицы Тест1 в таблицу Тест.
Пришел к идее реализации через рекордсет:
| + |
Set rs = CurrentDb.OpenRecordset("test") Set rs1 = CurrentDb.OpenRecordset("test1") For i = 0 To rs.Fields.Count - 1 ks = rs.Fields(i).Name Debug.Print ks
For y = 0 To rs1.Fields.Count - 1 ks1 = rs1.Fields(y).Name If ks = ks1 Then GoTo ex1 Else GoTo ex2 ex1:
Do While Not rs1.EOF rs.AddNew rs.Fields(i) = rs1.Fields(y) rs.Update MsgBox rs.Fields(i) MsgBox rs1.Fields(y) rs1.MoveNext Loop
ex2: Debug.Print rs1.Fields(y).Name Next y Next i |
и все было бы хорошо, но только не всегда работает условие If ks = ks1, почему - хз:
цикл i на первом шаге ks = "Поле1", цикл y на первом шаге ks1 = "Поле1" - условие выполняется и в Поле1 добавляются записи 2 и 4, НО! после этого, когда ks = "Поле2" и ks1 = "Поле2" If игнорирует равенство... Почему, я не знаю, и как выйти из ситуации тоже не знаю...Помогите кто чем может)
Базу прицепил
http://www.sql.ru/forum/1113112/pomoshh-s-recordset
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-