MS Access 2000.
Есть 2 абсолютно идентичных таблицы в 2-х разных mdb.
Одна таблица пустая, другая заполненная.
Как средствами ADO одним махом перенести все записи из одной таблицы в другую?
nTempRS.Open "SELECT * FROM Rolls"
tTempRS.Open "SELECT * FROM Rolls"
If nTempRS.RecordCount > 0 Then
For i = 1 To nTempRS.RecordCount
tTempRS.AddNew
For j = 0 To nTempRS.Fields.Count - 1
tTempRS.Fields(j) = nTempRS.Fields(j)
Next j
tTempRS.Update
nTempRS.MoveNext
Next i
End If
tTempRS.Close
nTempRS.Close
Set nTempRS = Nothing
Set nTempDB = Nothing
INSERT INTO Table1 IN "Вторая.mdb" SELECT * FROM Table1
GSerg писал(а):
- Код: Выделить всё
INSERT INTO Table1 IN "Вторая.mdb" SELECT * FROM Table1
tTempDB.Execute "INSERT INTO Table1 IN " & "Вторая.mdb" & " SELECT * FROM Table1"
tTempDB.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path + "\newdata" & cRegion & ".mdb"
insert into Table2
select *
from Table1 IN ("First.mdb")
GSerg писал(а):Это да - просто, перерыв справку по Access, я нашёл разрешение указывать IN в первом случае, но не нашёл во втором
А вместо "Вторая.mdb" должно быть не скажу что...
Select TABLE1.* INTO TABLE2 IN др_база.mdb FROM TABLE1
GSerg писал(а):Смысл в любом ответе тот, чтобы заставить думать.
Для начала, у чего расширение mdb?
Есть 2 абсолютно идентичных таблицы в 2-х разных mdb.
Одна таблица пустая, другая заполненная
Если запрос выполняется в первой базе с пустой таблицей, как ты думаешь заполненная таблица находится в какой?
Подсказка: Случайно не IN 'Вторая.mdb' ???
INSERT INTO Table1 SELECT * FROM LinkedTable1
CN.Execute "INSERT INTO Кабель IN " & Text4 & " SELECT Код, Наим1,Наим2,Наим3,Наим4,Продавец,Цена FROM Товары"
CN.Execute "INSERT INTO Кабель (Код,Наим1,Наим2,Наим3,Наим4,Продавец,Цена) IN " & Text4 & " SELECT Код, iif(isnull(Наим1),'',Наим1) ,iif(isnull(Наим2),'',Наим2),iif(isnull(Наим3),'',Наим3),iif(isnull(Наим4),'',Наим4),Продавец,Цена FROM Товары"
Scuder писал(а):2 GSerg: Такой момент. Обновляются 10 таблиц. Соответственно, вторая база открывается 10 раз, а это не быстро. Время работы построчного копирования быстрее в несколько раз. Вот и думаю, что лучше - скорость с использованием рекордсетов или "правильность" с Execute. Последний вариант, кстати, глючит периодически - на какие-то блокировки ругается..
SSecurity писал(а):86 тыс записей легли в 69 МБ ... из первоначальных 93
а при таком копировании 8 метров база оказалась записей стокаже,
КАК?
iGrok писал(а):SSecurity писал(а):86 тыс записей легли в 69 МБ ... из первоначальных 93
а при таком копировании 8 метров база оказалась записей стокаже,
КАК?
Ну во-первых, это таки некропостинг...
А во-вторых, попробуй с первой БД(которая 93 метра) - "Сервис - Сжать и восстановить".
И посмотри, сколько она станет весить.. ,-)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 249