MyTetra Share
Делитесь знаниями!
Запись ADO recordset в прилинкованную таблицу
Время создания: 06.03.2020 07:46
Текстовые метки: VBA, ADO, EOF
Раздел: !Закладки - VBA - Access - ADO

В любом случае - открытый рекордсет - это переменная в памяти компьютера, а не объект базы данных. Из переменной нельзя сделать From. В принципе нельзя. Добавлено через 5 минут Какую альтернативу можно педложить, если ссылка на базу оракл в тексте запроса не получитя:


Visual BasicВыделить код

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim rsADO As Adodb.Recordset, rsGoal As Adodb.Recordset
Set rsADO = New ADODB.Recordset
rsADO.Open SQL_запрос,Conn, и т.д.
Set rsGoal = New ADODB.Recordset
rsGoal.Open ИмяТаблицыКуда, Conn, и т.д.
 
While not rsADO.EOF
    rsGoal.AddNew
    rsGoal.ИмяПоля = rsADO.ИмяПоля
    rsGoal.ИмяПоля = rsADO.ИмяПоля
....
    rsGoal.ИмяПоля = rsADO.ИмяПоля
    rsADO.MoveNext
wend
rsGoal.UpdateBatch

Добавлено через 59 секунд В некоторых случаях метод .UpdateBatch не работает (если честно, я по хелпу по ADO так и не поняла, в каких именно (похоже, зависит от особенностей конкретного сервера), посто запомнила сам факт, что может и не работать) - тогда нужно делать rsGoal.Update в каждом цикле. Но на MS SQL Server .UppendAll работал нормально.

Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования