powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Все таблици в одну
16 сообщений из 16, страница 1 из 1
Все таблици в одну
    #32783355
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуй уважаемый ОЛЛ!
Не знаю как правильно сформулировать, но ситуация такая
Есть база данных в которой много таблиц с одинаковой структурой
Есть ли возможность програмно слить данные всех этих таблиц в одну
И если да, то с какой стороны к этому подступиться?
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783366
S l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
S l
Гость
INSERT INTO ... SELECT ...
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783368
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в лоб
currentdb.execute "INSERT INTO Таблица1 SELECT * FROM Таблица2"
currentdb.execute "INSERT INTO Таблица1 SELECT * FROM Таблица3"

Если их как-то можно выделить от прочих -
перебирать TableDefs и
давать
currentdb.execute "INSERT INTO Таблица1 SELECT * FROM " & TableName"
или делать рекордсет на запросе к таблице MSysObjects (поиск по форуму) и перебирая его поступать аналогично
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783369
S l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
S l
Гость
CurrentDb.execute "INSERT INTO ... SELECT ...;"
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783372
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а union в Access нету?
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783380
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть. А как написать такой запрос на вставку?
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783382
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за бурные отклики
Юнион есть, вот только мне надо название таблиц програмно заполнить, а я этого не умею делать.
Насколько я поняла, так я получу названия всех таблиц
Код: plaintext
1.
2.
SELECT MSysObjects.Type, MSysObjects.Name
FROM MSysObjects
WHERE (((MSysObjects.Type) In ( 6 , 1 )));

Код: plaintext
currentdb.execute "INSERT INTO Таблица1 SELECT * FROM " & TableName"
Сдесь тоже понятно,
а как мне присвоить TableName по очередно все имена таблиц?
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783390
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
select * into some_table from
(
select field1, field2, ... fieldn from table1
union
....
select field1, field2, ... fieldn from tablen
) as a

Так не прокатит в Аксессе? я то скуэлю на MS SQL в основном... там такое прокатывает
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783395
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где-то так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim rst As ADODB.Recordset
Dim strSQL As String
Set rst = New ADODB.Recordset
strSQL = "SELECT MSysObjects.Type, MSysObjects.Name........"
rst.Open strSQL, CurrentProject.Connection
rst.MoveFirst
Do While Not rst.EOF
If Not rst!Name = "Таблица1" Then
CurrentDb.Execute "INSERT INTO Таблица1 SELECT * FROM " & rst!Name
End If
rst.MoveNext
Loop
rst.Close
set rst=nothing
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783399
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shurgenz
Код: plaintext
1.
2.
3.
select * into some_table from
(
select field1, field2, ... fieldn from table1
) as a

Так не прокатит в Аксессе? я то скуэлю на MS SQL в основном... там такое прокатывает
Прокатит. Можно и так. Единственное, что если число таблиц переменное - каждый раз собирать его будет муторно.
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783402
Фотография Shurgenz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что касается union - его собирать никогда не муторно.... контрол-С - контрол -V.

Названия то полей одни и те же.
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783410
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShurgenzЧто касается union - его собирать никогда не муторно.... контрол-С - контрол -V.

Названия то полей одни и те же.
речь то идет о программном слиянии.

Конечно, можно склеивать строку SQL с UNION в коде в зависимости от количества таблиц, но все равно нужно получать имена таблиц. Тут по сложности кода не уверен, что будет проще.
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783423
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim rst As ADODB.Recordset
Ошибка компиляции ADO подключена
Это для mdb код?
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783449
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для mdb. Эта строка будет работать и в adp :)
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783463
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С сылками разобралась
Спасибо большое
Буду смотреть дальше
...
Рейтинг: 0 / 0
Все таблици в одну
    #32783499
Фотография Ирча
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все работает, большое спасибо
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Все таблици в одну
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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