Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 25.07.2017, 00:41   #1
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 313
Репутация: 21
По умолчанию Объединить одинаковые поля из разных таблиц access в определенное поле другой таблицы

Здравствуйте Уважаемые программисты!
Подскажите пожалуйста как кодом (vb.net vs2010) решить следующую задачу:
В файле access 2003 есть таблица с именем "Список", в которой в поле "перечень_таблиц" приведен список данных, например,
Код:

С45
П45
А34
...

причем каждая строка этих данных соответствует имени существующей отдельной таблицы в том же файле access, т.е. есть таблица с именем "С45", "П45", "А34",... В каждой из этих таблиц ("С45", "П45", "А34",...) есть поле "Марка" с текстовыми данными, например,

Код:

Таблица "С45"        Таблица "П45"        Таблица "А34" 
а1                          а4                          е4  
а2                          в1                          н5
...                          ...                          ...

Задача: в том же файле в таблицу access с именем "Сводная" в поле "Все_марки" скопировать данные из полей "Марка" из всех таблиц ("С45", "П45", "А34",...) в том порядке как имена таблиц расположены в поле "перечень_таблиц", т.е. получить:

Таблица "Сводная" поле "Все_марки":
Код:

а1
а2
а4
в1
е4
н5

Заранее спасибо за любые подсказки!
ольгаг вне форума   Ответить с цитированием
Старый 25.07.2017, 11:27   #2
Aleksandr H.
2 the Nation Glory
Профессионал
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Адрес: Wild West Ukraine
Сообщений: 2,431
Репутация: 885

skype: aleksandr.gryb
По умолчанию

Код:

Sub ReadTable()
    Dim tb As String
    tb = "список"
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("Select * from [" & tb & "]")
    rs.MoveLast
    rs.MoveFirst
    If rs.RecordCount = 0 Then Exit Sub
    DoCmd.SetWarnings False
    DoCmd.RunSQL "SELECT [МАРКА] AS Все_марки INTO Сводная FROM [" & rs.Fields(0) & "]"
    rs.MoveNext
    While Not rs.EOF
        If DCount("[Name]", "MSysObjects", "[Name] = '" & rs.Fields(0) & "'") = 1 Then
            DoCmd.RunSQL "INSERT INTO СВОДНАЯ (ВСЕ_МАРКИ) SELECT МАРКА FROM [" & rs.Fields(0) & "]"
        End If
        rs.MoveNext
    Wend
    DoCmd.SetWarnings True
End Sub

__________________
Mailto: media.project@ukr.net
Aleksandr H. вне форума   Ответить с цитированием
Старый 25.07.2017, 15:20   #3
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 313
Репутация: 21
По умолчанию

Спасибо большое!
ольгаг вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести сумму стоимости из запроса в поля разных таблиц murasaki Microsoft Office Access 1 06.12.2012 03:09
Внесение в поле таблицы сумму значений из другой таблицы по условию Сурка SQL, базы данных 2 25.12.2011 17:47
Access ограничить значение поля таблицы значениями полей другой таблицы Сергей089 Microsoft Office Access 10 08.12.2010 03:22
поля из разных связных таблиц в одном dbgrid Geddar Помощь студентам 2 15.05.2008 16:57


12:43.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru