Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.64/44: Рейтинг темы: голосов - 44, средняя оценка - 4.64
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
#1

Создание таблицы или запроса из 2-х таблиц.

22.03.2012, 09:01. Просмотров 8016. Ответов 30
Метки нет (Все метки)

Здравствуйте!
Появилась необходимость, создавать временную таблицу ( для вывода одного отчета), но создать ее нужно из 2-х таблиц.

Т.е. в двух таблицах есть одинаковое поле КОД.
По этому полю нужно выбрать данные например КОД=3 из одной и другой таблицы и вывести эти данные в отчет.
Как это можно осуществить?
Заранее спасибо откликнувшимся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2012, 09:01
Ответы с готовыми решениями:

Создание формы (запроса) с выводом всех значений одной из таблиц, но по условиям полей из другой таблицы
Добрый день, уважаемые форумчане!!! Сформулировал заголовок как смог :)...

Создание итогового запроса с выборкой из нескольких таблиц
Добрый день. Прошу помощи в решении задачи: есть три таблицы - Банк, Журнал,...

Создание запроса с выбором значений из разных таблиц
Необходимо создать отчет с выбором значений из таблиц Начисления и Выплаты....

Создание таблицы с помощью запроса
Помогите пожалуйста. Есть запрос: create table tbl1(fld integer); Он...

Создание главной таблицы из подчиненных таблиц
Всем привет! Такой вопрос, поскольку я нуб в Access: Как из 16 таблиц в Access...

30
Menred
11 / 8 / 0
Регистрация: 17.02.2012
Сообщений: 88
22.03.2012, 09:32 #2
Я думаю можно попробовать воспользоваться запросом на добавление в нужную таблицу. А в конструкторе запроса на добавление уже выбрать эти 2е таблицы-источника из которых добавить необходимые поля с условием отбора по нужному коду(допустим 3). Или использовать 2 запроса на добавления из 2ух разных таблиц.
0
alvk
Эксперт MS Access
5573 / 3469 / 168
Регистрация: 12.08.2011
Сообщений: 8,817
22.03.2012, 10:02 #3
Посмотрите пример, может не нужна временная таблица?
0
Вложения
Тип файла: rar db1.rar (13.0 Кб, 194 просмотров)
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
22.03.2012, 10:19  [ТС] #4
Наверное я не правильно сформулировал задачу.
Таблицы не связанные между собой.
список вагонов в одной таблице и список вагонов в другой таблице , необходимо объединить в одном отчете.
Т.е. тут связь не Основная Таблица -> Справочник.
А две равноценные таблицы с абсолютно одинаковыми полями и в отчете значения данные по соответствующим полям нужно объеденить.
0
andrey_ba
266 / 266 / 4
Регистрация: 01.11.2011
Сообщений: 612
22.03.2012, 10:24 #5
Вы бы что нибудь скинули а то так гадать не интересно
0
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
22.03.2012, 10:47  [ТС] #6
Ну вот примерно такой пример.
Нужно создать отчет по марке ТМСШ, в который вошли бы вагоны из двух таблиц.

Т.е. нужно задать марку по которой бы делалась выборка в отчет, но в отчет бы вошли данные из 2-х таблиц ПришедшиеВагоны и убранныеВагоны
0
Вложения
Тип файла: zip Проба.zip (23.0 Кб, 74 просмотров)
Михайло
115 / 115 / 10
Регистрация: 12.05.2010
Сообщений: 1,204
22.03.2012, 11:20 #7
Если Вам нужно несколько записей из одной таблицы (К) и несколько из другой (М) вывести на одну страницу отчёта (К+М записей), то воспользуйте запросом на объединение:

SQL
1
2
SELECT ... FROM ТаблицаПришедшиеВагоны WHERE ТаблицаПришедшиеВагоны.КОД=3
UNION SELECT ... FROM ТаблицаУбранныеВагоны WHERE ТаблицаУбранныеВагоны.КОД=3
2
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
22.03.2012, 11:32  [ТС] #8
Спасибо, а можно поподробнее.
Это первая база, куда этот код SQLзаписать?
Необходимо же создать отчет.
Это где то в коде отчета?
Буду благодарен за помощь
0
Agapov_stas
3336 / 1739 / 82
Регистрация: 05.08.2010
Сообщений: 4,446
Завершенные тесты: 1
22.03.2012, 11:42 #9
Цитата Сообщение от Alsuh Посмотреть сообщение
куда этот код SQLзаписать?
Можно тут почитать вначале
2
Михайло
115 / 115 / 10
Регистрация: 12.05.2010
Сообщений: 1,204
22.03.2012, 13:14 #10
Писать, например, в конструкторе отчёта, в окне "Свойства" отчёта, на закладке "Данные", в поле «Источник записей» (RecordSource).
Только вместо "..." нужно написать имена полей таблиц.
1
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
23.03.2012, 02:44  [ТС] #11
Спасибо, Стас и Михайло, почитал, повникал , создал Запрос1 ( Запрос на добавление )
Который берет данные из 2-х таблиц.
Отчет выводит объедененные данные как надо.
Все в рисунках.
0
Миниатюры
Создание таблицы или запроса из 2-х таблиц.   Создание таблицы или запроса из 2-х таблиц.   Создание таблицы или запроса из 2-х таблиц.  

Создание таблицы или запроса из 2-х таблиц.  
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
23.03.2012, 02:50  [ТС] #12
Теперь меняю в запросе на добавление [Код] на [КодМарки] - это как раз тот код по которому необходимо провести выборку. ( выбрать вагоны одной марки )
И Конструкция перестает работать. Почему???
Рисунки и база прилагается.
0
Миниатюры
Создание таблицы или запроса из 2-х таблиц.   Создание таблицы или запроса из 2-х таблиц.   Создание таблицы или запроса из 2-х таблиц.  

Вложения
Тип файла: zip Проба.zip (56.3 Кб, 27 просмотров)
alvk
Эксперт MS Access
5573 / 3469 / 168
Регистрация: 12.08.2011
Сообщений: 8,817
23.03.2012, 03:05 #13
Как нужно работать с текстом? Чем обрамлять?
0
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
23.03.2012, 04:52  [ТС] #14
Ну это ж не текст, а числовое поле. Из рисунка видно.
Пробовал и такие варианты:
[КодМарки]='2'
[КодМарки]="2"
Результат тот же что и без кавычек и апострофа.
базу приложил выше, посмотрите может поможете.

Чем еще обрамить 2 чет пока не придумаю.

Добавлено через 26 минут
Нашел ошибку!!!!
Поле [КодМарки] в убранных вагонах было записано как [Код марки]
Дурак!!!! ( это я про себя ) Сейчас заработало..
Теперь осталось для меня самое сложное.
Буду пытаться срастить между собой 2 недавно открытые конструкции. Запрос на добавление и открытие формы двойным щелчком по полю в форме с условием выбора по этому полю.

Еще раз спасибо!
0
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
23.03.2012, 05:17  [ТС] #15
Все получилось, выкладываю что сделал, может кому из новичков( типа меня пригодится) , если нет админы пусть удаляют. Плюс нерешенные мною пока вопросы.

1. Имеем 3 таблицы. Две из которых абсолютно одинаковые ( вагоны) и имеют поле с КодомМарки. И таблица справочник марок.
2. Необходимо объединить вагоны из 2-х таблиц и вывести в отчет определенную марку.
Что делал:
1. Создал Запрос на объединение Запрос1.
2. Создали отчет по этому запросу.
3 В форме ввода Марок, по двойному клику на поле с кодом марки, добавили событие -> программы, где записали след. код. ( см. рисунок)

Получили при двойном клике на код марки выпадает отчет созданный из 2-х таблиц с номерами вагонов именно этой марки.

Вопросы к зубрам:
1. Как добиться вывод такого же отчета но по клику не на коде марки, а все таки на его наименовании.
Visual Basic
1
stLinkCriteria = "[Кодмарки]=" & Me![Код]
, понимаю, что нужно поменять . что то тут, а что не знаю, знаний не хватает.
2.Как вставить в отчет, в заголовок Наименование марки?
3. Как все таки сортировку по маркам сделать не в форме , а в запросе на объединение.
Объясню зачем. Представьте 100 000 вагонов пришедших и 100 000 убранных, это Access при нынешней конструкции сначала объеденит все 200 000 вагонов в один запрос,а потом отчет отсортирует с нужной маркой. Правильнее считаю было бы объединить в запросе только вагоны с нужной маркой и вывести их в отчете.

заранее спасибо.
0
Миниатюры
Создание таблицы или запроса из 2-х таблиц.   Создание таблицы или запроса из 2-х таблиц.   Создание таблицы или запроса из 2-х таблиц.  

Создание таблицы или запроса из 2-х таблиц.  
alvk
Эксперт MS Access
5573 / 3469 / 168
Регистрация: 12.08.2011
Сообщений: 8,817
23.03.2012, 07:21 #16
Цитата Сообщение от Alsuh Посмотреть сообщение
1. Как добиться вывод такого же отчета но по клику не на коде марки, а все таки на его наименовании.Код Visual Basic
1
stLinkCriteria = "[Кодмарки]=" & Me![Код]
, понимаю, что нужно поменять . что то тут, а что не знаю, знаний не хватает.

Цитата Сообщение от Alsuh Посмотреть сообщение
Нашел ошибку!!!!
Поле [КодМарки] в убранных вагонах было записано как [Код марки]
Цитата Сообщение от Alsuh Посмотреть сообщение
2.Как вставить в отчет, в заголовок Наименование марки?
Делаете в отчёте поле и в данные рисуете = forms!моя форма![наименование марки]
3. В конце запроса добавьте order by по чему там надо
1
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
23.03.2012, 09:27  [ТС] #17
С формой получилось спасибо.

3. В конце запроса добавьте order by по чему там надо
Я извиняюсь, не сортировку, а выборку по нужной марке. Но думаю из текста это понятно. Что нужно в запрос вывести не все 200 000 вагонов , а только 40 000 марки АСШ ( для уменьшения времени обработки запроса)

Т.е конструкция в запросе должна остаться
Visual Basic
1
2
SELECT [НомерВагона],[КодМарки] FROM [ПришедшиеВагоны] WERE [КодМарки]=2 
UNION SELECT [НомерВагона],[КодМарки] FROM [УбранныеВагоны]WERE [КодМарки]=2 ;
Но вместо жестко забитого кода марки =2 , подставлялось поле на которое мы два раза кликнули в форме.
0
Agapov_stas
3336 / 1739 / 82
Регистрация: 05.08.2010
Сообщений: 4,446
Завершенные тесты: 1
23.03.2012, 09:31 #18
Цитата Сообщение от Alsuh Посмотреть сообщение
Т.е конструкция в запросе должна остаться
SQL
1
2
SELECT [НомерВагона],[КодМарки] FROM [ПришедшиеВагоны] WERE [КодМарки]=2 
UNION SELECT [НомерВагона],[КодМарки] FROM [УбранныеВагоны]WERE [КодМарки]=2 ;
Только:
SQL
1
2
SELECT [НомерВагона],[КодМарки] FROM [ПришедшиеВагоны] WHERE [КодМарки]=2 
UNION SELECT [НомерВагона],[КодМарки] FROM [УбранныеВагоны]WHERE [КодМарки]=2 ;
WHERE

Цитата Сообщение от Alsuh Посмотреть сообщение
Что нужно в запрос вывести не все 200 000 вагонов , а только 40 000
TOP
0
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
23.03.2012, 09:42  [ТС] #19
Простите не понял.
А ну конечно WHERE !!! это понятно, вопрос в том как код марки брать из формы марок. Подставить значение.
Попробовал
Visual Basic
1
WHERE [КодМарки]= Me![Код]
Не пропускает.
0
Agapov_stas
3336 / 1739 / 82
Регистрация: 05.08.2010
Сообщений: 4,446
Завершенные тесты: 1
23.03.2012, 09:49 #20
Цитата Сообщение от Alsuh Посмотреть сообщение
Простите не понял.
1. В запросе писАть не WERE, а WHERE
2. Конструкция Select Top 40000 выведет только 40000 первых записей.
0
23.03.2012, 09:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2012, 09:49

Создание таблицы из запроса по кнопке формы
Есть запрос, который создает таблицу текст запроса: SELECT Cstr(S.Арт) AS...

Создание запроса на создание таблицы
Привет всем форумчане! У меня ест такая проблема, в аксеси находится...

Создание запроса на создание таблицы
есть база данных, в которой имеется одна таблица, необходимо создать запрос на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru