powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Копирование таблиц
6 сообщений из 6, страница 1 из 1
Копирование таблиц
    #34341484
villy1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сразу скажу: я читал предыдущие темы о копировании таблиц, но я - полный ноль, поэтому хочу спросить конкретнее. У меня 2 базы данных path/db1, path/db2. В них соотв. таблицы tab1, tab2 (в первой и второй базах соответственно). Таблицы с одинаковыми полями. Ныжно скопировать одну в другую. Как оформить это? Только, если можно, кусок кода сразу. Или как оформить sql запрос:
SELECT * INTO B FROM A ?
Последний вопрос: как правильно указать имена баз данных в этой1 записи (через путь)?

Не ругайтесь за вопрос, я только начинаю...
...
Рейтинг: 0 / 0
Копирование таблиц
    #34341761
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Dim file_mdb1 As String:  file_mdb1 = App.Path & "\db1.mdb"
Dim file_mdb2 As String:  file_mdb2 = App.Path & "\db2.mdb"

Dim tablica_1 As String:  tablica_1 = "Таблица"
Dim tablica_2 As String:  tablica_2 = "ТаблицаPLUS"

Dim db1 As ADODB.Connection:   Set db1 = New ADODB.Connection
Dim tb1 As ADODB.Recordset:    Set tb1 = New ADODB.Recordset
 
db1.Provider = "Microsoft.Jet.OLEDB.4.0"
db1.Open file_mdb1, "Admin"
tb1.Open tablica_1, db1, adOpenDynamic, adLockOptimistic

Dim db2 As ADODB.Connection:   Set db2 = New ADODB.Connection
Dim tb2 As ADODB.Recordset:    Set tb2 = New ADODB.Recordset
 
db2.Provider = "Microsoft.Jet.OLEDB.4.0"
db2.Open file_mdb2, "Admin"
' tb2.Open tablica_2, db2, adOpenDynamic, adLockOptimistic
tb2.Open "SELECT * FROM " & tablica_2, db2, adOpenDynamic, adLockOptimistic   ' МОЖНО И ЗАПРОСОМ ВЫБРАТЬ ЗАПИСИ

Dim i As Double
Do Until tb2.EOF
     i = i +  1 
     tb1.AddNew
     tb1![pole] = "" & tb2![pole]
     tb1.Update
     tb2.MoveNext
Loop
               
tb1.Close:  Set tb1 = Nothing
db1.Close:  Set db1 = Nothing
tb2.Close:  Set tb2 = Nothing
db2.Close:  Set db2 = Nothing

MsgBox "всего ДОБАВЛЕНО " & Str(i), vbOKOnly
...
Рейтинг: 0 / 0
Копирование таблиц
    #34341768
Дурак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если действие однократно, проще удалить вторую таблицу и сделать select ... into

Если постоянно такие песни, то (поскольку СУБД не указана)

insert into
select ... from

Обязательно перечисление столбцов.

P.S. А вообще даже если ты и "полный ноль" - в документации по СУБД все подробно расписано.
...
Рейтинг: 0 / 0
Копирование таблиц
    #34341859
villy1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В [pole] что писать, если мне все поля надо скопировать?
...
Рейтинг: 0 / 0
Копирование таблиц
    #34342704
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
villy1В [pole] что писать, если мне все поля надо скопировать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim i As Double, x As Integer
Do Until tb2.EOF
    i = i +  1 
    tb1.AddNew
    For x =  0  To tb2.Fields.Count -  1 
        tb1.Fields(x) = tb2.Fields(x)
    Next
    tb1.Update
    tb2.MoveNext
Loop
...
Рейтинг: 0 / 0
Копирование таблиц
    #34342715
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прежде чем писать код, подключи библиотеку Microsoft A ctiveX D ata O bjects
Это делается в меню References
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Копирование таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]