Форум программистов, компьютерный форум, киберфорум
Наши страницы

MS Access

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 47, средняя оценка - 4.66
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
#1

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

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

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

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

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

Создание запроса с выбором значений из разных таблиц - MS Access
Необходимо создать отчет с выбором значений из таблиц Начисления и Выплаты. Сама БД и примерно как должен выглядеть отчет во вложении

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

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

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

Создание таблицы из запроса по кнопке формы - MS Access
Есть запрос, который создает таблицу текст запроса: SELECT Cstr(S.Арт) AS Арт, S. AS ТОВАР, S. AS TRynok, S.ТН,...

30
alvk
Эксперт MS Access
5506 / 3404 / 164
Регистрация: 12.08.2011
Сообщений: 8,589
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
3332 / 1735 / 78
Регистрация: 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
3332 / 1735 / 78
Регистрация: 05.08.2010
Сообщений: 4,446
Завершенные тесты: 1
23.03.2012, 09:49 #20
Цитата Сообщение от Alsuh Посмотреть сообщение
Простите не понял.
1. В запросе писАть не WERE, а WHERE
2. Конструкция Select Top 40000 выведет только 40000 первых записей.
0
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
23.03.2012, 10:04  [ТС] #21
Мне не нужно выводить 4000 первых записей.
Попробую обяснить. Мне необходимо в конструкции WHERE [КодМарки]=2, задавать значение кода по двойному нажатию на поле формы справочника марок.
Т.е у меня марки постоянно меняются, исчезают добавляются, для этого и сделан справочник марок.
И нужно объединииь вагоны с маркой по которой делаем отчет в данный момент.
Попробовал вот так:
Visual Basic
1
2
SELECT [НомерВагона],[КодМарки] FROM [ПришедшиеВагоны] WHERE [КодМарки]=Me![Код]
UNION SELECT [НомерВагона],[КодМарки] FROM [УбранныеВагоны] WHERE [КодМарки]=Me![Код];
Не получается.
0
Agapov_stas
3332 / 1735 / 78
Регистрация: 05.08.2010
Сообщений: 4,446
Завершенные тесты: 1
23.03.2012, 10:09 #22
Цитата Сообщение от Alsuh Посмотреть сообщение
Попробовал вот так:
Ну, если просто из запроса, тогда уж:
SQL
1
2
SELECT [НомерВагона],[КодМарки] FROM [ПришедшиеВагоны] WHERE [КодМарки]=Forms!ИмяФормы![Код]
UNION SELECT [НомерВагона],[КодМарки] FROM [УбранныеВагоны] WHERE [КодМарки]=Forms!ИмяФормы![Код]
0
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
23.03.2012, 10:12  [ТС] #23
Нет, Agapov_stas, так точно не пойдет.
Форма табличная, в ней 10 марок. Какой из кодов ему брать. Марка выбирается по двойному нажатию на поле формы.
Необходимо задать значение кода из поля формы по которому дважды кликнули.
0
Agapov_stas
3332 / 1735 / 78
Регистрация: 05.08.2010
Сообщений: 4,446
Завершенные тесты: 1
23.03.2012, 10:21 #24
Цитата Сообщение от Alsuh Посмотреть сообщение
Необходимо задать значение кода из поля формы по которому дважды кликнули.
Ну, тогда как-то так(если табличная форма - это подчиненная):
Visual Basic
1
2
3
4
5
6
7
8
Private Sub КодМарки_DblClick()
Dim a as string
a=Forms!ИмяФормы!ИмяПодчиненнойФормы.Form.[Код]
'Обновляем текст запроса
CurrentDb.QueryDefs("ИмяЗапроса").SQL = " SELECT [НомерВагона],[КодМарки] FROM [ПришедшиеВагоны] WHERE [КодМарки]=" & a & " " & _
                                        " UNION SELECT [НомерВагона],[КодМарки] FROM [УбранныеВагоны] WHERE [КодМарки]=" & a & " "
 
End Sub
В данном случае запрос,который существует, будет изменен.
А вы запрос запускаете в "чистом" виде?
0
alvk
Эксперт MS Access
5506 / 3404 / 164
Регистрация: 12.08.2011
Сообщений: 8,589
23.03.2012, 10:32 #25
Цитата Сообщение от Alsuh Посмотреть сообщение
Необходимо задать значение кода из поля формы по которому дважды кликнули.
по полю кликнули дважды и что? открылся отчёт или форма? в таком случае круг закрылся.
Мы по-моему это обсуждали :
Visual Basic
1
2
3
4
5
6
    Dim stDocName As String
    Dim stLinkCriteria As String
    
    stDocName = "отчёт"
    stLinkCriteria = "[поле]=" & Me![поле]
    DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria
0
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
26.03.2012, 02:08  [ТС] #26
Нет круг не закрылся.
Имеем запрос на объединение, который выбирает из 2-х таблиц нужные поля.
Т.е. по двойному клику на поле формы , выводим отчет , который выводит данные из запроса.
Только как в запросе задать код?
Visual Basic
1
2
SELECT [НомерВагона],[КодМарки] FROM [ПришедшиеВагоны] WHERE [КодМарки]=Me![Код]
UNION SELECT [НомерВагона],[КодМарки] FROM [УбранныеВагоны] WHERE [КодМарки]=Me![Код];
Как задать значение кода из поля формы на котором 2 раза кликнули.
Вот сюда : WHERE [КодМарки]= ???????
0
alvk
Эксперт MS Access
5506 / 3404 / 164
Регистрация: 12.08.2011
Сообщений: 8,589
26.03.2012, 05:19 #27
зачем ограничивать запрос, когда можно отчёт открыть с параметром?
0
Alsuh
1 / 1 / 0
Регистрация: 26.01.2012
Сообщений: 49
26.03.2012, 07:00  [ТС] #28
Ну я уже писАл об этом, постов 10 назад.
3. Как все таки выборку по маркам сделать не в форме , а в запросе на объединение.
Объясню зачем. Представьте 100 000 вагонов пришедших и 100 000 убранных, это Access при нынешней конструкции сначала объеденит все 200 000 вагонов в один запрос( а это 200 000 строк с 25 полями),а потом отчет отсортирует с нужной маркой. Правильнее считаю было бы объединить в запросе только вагоны с нужной маркой и вывести их в отчете.
Так можно ли так сделать? И как считаете правильнее?
0
alvk
Эксперт MS Access
5506 / 3404 / 164
Регистрация: 12.08.2011
Сообщений: 8,589
26.03.2012, 08:07 #29
Нужно думать не "как правильнее с точки зрения обработки информации на процессорах в 2011 году, ведь они такие слабые", а "как выгоднее для дальнейшей работы". Вставив условие where в запрос, вы ограничете круг его использования в дальнейшем. Вы вспомните мои слова, когда у вас будет под сотню запросов в базе и вы будете думать, "хде тута што?". На этом считаю своё участие тут законченным.
0
shanemac51
Модератор
Эксперт MS Access
7727 / 2945 / 418
Регистрация: 07.08.2010
Сообщений: 8,037
Записей в блоге: 1
26.03.2012, 09:29 #30
я не встретила слов
--сортировка
--дата уборки
--один и тот же вагон проходит много уборок(дат нигде нет)
--нужны все уборки или последняя

какова цель вашего отчета, что он должен показать кроме выбора по марке
0
26.03.2012, 09:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2012, 09:29
Привет! Вот еще темы с ответами:

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

Создание таблицы на основе перебора значений из других таблиц - MS Access
Добрый день, уважаемые посетители форма. Прошу помощи в решении следующего вопроса. Не знаю как к нему подступиться. Необходимо...

из комбобокса ссылаться на названия таблицы или запроса? - MS Access
Здраствуйте.... можно ли значениями из комбобокса ссылаться на названия таблицы или запроса?* если да, то как?*или например, значением...

Access. Создание SQL-запроса на рандомную выборку строк из таблицы - MS Access
Пишу тестовую программу для учителей. Бесплатную :) Возник вопрос: Как выбрать строки из таблицы в случайном порядке. Согласен - можно...


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

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

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