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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

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

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2017, 23:41   #1
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 321
По умолчанию Объединить одинаковые поля из разных таблиц 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, 10:27   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,194
По умолчанию

Код:
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
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 25.07.2017, 14:20   #3
ольгаг
Форумчанин
 
Регистрация: 22.02.2010
Сообщений: 321
По умолчанию

Спасибо большое!
ольгаг вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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