Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2012, 11:08   #1
aa1184
 
Регистрация: 01.06.2012
Сообщений: 5
По умолчанию Выбор значения в запрос по пересечению строки и столбца

Здравствуйте! Помогите, пожалуйста, с решение вопроса. Застопорился на нем. Необходимо создать запрос, значение в котором будет выбираться на пересечении строки и столбца.
Вложения
Тип файла: rar ПРИМЕР.rar (78.7 Кб, 21 просмотров)
aa1184 вне форума Ответить с цитированием
Старый 05.06.2012, 10:29   #2
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Если я правильно понял Вы такие данные хотели?



SELECT ПРЕДМЕТЫ.ПРЕДМЕТ, ПРЕДМЕТЫ.ПАРАМЕТР, ПАРАМЕТР.[УСЛОВИЕ 1]
FROM ПАРАМЕТР INNER JOIN ПРЕДМЕТЫ ON (ПАРАМЕТР.[УСЛОВИЕ 1] = ПРЕДМЕТЫ.УСЛОВИЕ) AND (ПАРАМЕТР.ПАРАМЕТР = ПРЕДМЕТЫ.ПАРАМЕТР)
GROUP BY ПРЕДМЕТЫ.ПРЕДМЕТ, ПРЕДМЕТЫ.ПАРАМЕТР, ПАРАМЕТР.[УСЛОВИЕ 1];

или по всем условиям приблизительно как-то так (запрос изменить на добавление, обновление или создание, в зависимости от необходимости):

for i=1 to 3

SELECT ПРЕДМЕТЫ.ПРЕДМЕТ, ПРЕДМЕТЫ.ПАРАМЕТР, ПАРАМЕТР.[УСЛОВИЕ " & i & "]
FROM ПАРАМЕТР INNER JOIN ПРЕДМЕТЫ ON (ПАРАМЕТР.[УСЛОВИЕ " & i & "] = ПРЕДМЕТЫ.УСЛОВИЕ) AND (ПАРАМЕТР.ПАРАМЕТР = ПРЕДМЕТЫ.ПАРАМЕТР)
GROUP BY ПРЕДМЕТЫ.ПРЕДМЕТ, ПРЕДМЕТЫ.ПАРАМЕТР, ПАРАМЕТР.[УСЛОВИЕ " & i & "];



next

Последний раз редактировалось gluk_fm; 05.06.2012 в 10:33.
gluk_fm вне форума Ответить с цитированием
Старый 05.06.2012, 14:25   #3
aa1184
 
Регистрация: 01.06.2012
Сообщений: 5
По умолчанию

Здравствуйте, gluk_fm! Я хотел проставить всю колонку ПАРАМЕТР 2. SQL незнаю, и к акцессу приступил несколько дней назад, поэтому сложно сообразить почему не выходит второй вариант с циклом, скопировал текст и в режиме sql вставил в запрос.
Пишет ошибочная инструкция SQL.
aa1184 вне форума Ответить с цитированием
Старый 06.06.2012, 14:45   #4
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Добрый день.
Циклы не могут работать в запросах их необходимо использовать в модулях и если уж работаете 2 дня то так:

sub tt ()
dim db as database
set db=currentdb

for i=1 to 3

db.execute("SELECT ПРЕДМЕТЫ.ПРЕДМЕТ, ПРЕДМЕТЫ.ПАРАМЕТР, ПАРАМЕТР.[УСЛОВИЕ " & i & "] " & _
"FROM ПАРАМЕТР INNER JOIN ПРЕДМЕТЫ ON (ПАРАМЕТР.[УСЛОВИЕ " & i & "] = ПРЕДМЕТЫ.УСЛОВИЕ) AND (ПАРАМЕТР.ПАРАМЕТР = ПРЕДМЕТЫ.ПАРАМЕТР) " & _
"GROUP BY ПРЕДМЕТЫ.ПРЕДМЕТ, ПРЕДМЕТЫ.ПАРАМЕТР, ПАРАМЕТР.[УСЛОВИЕ " & i & "];")



next


end sub


или мой первый вариант вставьте запрос и разберите его.
gluk_fm вне форума Ответить с цитированием
Старый 07.06.2012, 03:21   #5
aa1184
 
Регистрация: 01.06.2012
Сообщений: 5
По умолчанию

Кто нибудь может решить эту задачу проставив сразу все условия (условия могут быть и тестовые) желательно в конструкторе запросов, т.к. он мне более понятен и выложить файлик с решением.
Пробовал решить эту задачу через функцию IIf путем перебора всех условий, но условий слишком много, и запрос выдает ошибку на слишком сложное выражение, а для малого кол-ва работает. Может есть какие нибудь другие функции, которые можно применить?

Последний раз редактировалось aa1184; 07.06.2012 в 03:43.
aa1184 вне форума Ответить с цитированием
Старый 07.06.2012, 15:50   #6
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Добрый день.
Как по мне то такое не делается одним запросом, а вот процедурой легко:
В вложении модуль полностью расписанный на русском языке, пример запроса процедуры находится в "Запрос2". Результат в таблице "Paramtry"
Хорошего дня.
Вложения
Тип файла: rar ПРИМЕР.rar (28.6 Кб, 17 просмотров)
gluk_fm вне форума Ответить с цитированием
Старый 07.06.2012, 20:53   #7
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте aa1184.
Результатом віполнения кода предложенного gluk_fm будет таблица которую может отобразить подобная SQL конструкция:
Код:
SELECT DISTINCT T2.ПРЕДМЕТ, T2.ПАРАМЕТР, T.u
FROM (SELECT ПАРАМЕТР as P, [УСЛОВИЕ 1] as u
FROM ПАРАМЕТР 
UNION
SELECT ПАРАМЕТР as P, [УСЛОВИЕ 2] as u
FROM ПАРАМЕТР 
UNION
SELECT ПАРАМЕТР as P, [УСЛОВИЕ 3] as u
FROM ПАРАМЕТР 
)  AS T INNER JOIN ПРЕДМЕТЫ AS T2 ON T.P = T2.ПАРАМЕТР
"..желательно в конструкторе запросов.." - Вы не умеете переключать вид запросов с Мастера в Режим SQL?
Если Вы планируете общаться с MS Access стоит запомнить: все запросы являются SQL конструкциями,
но далеко не все SQL конструкции можно открыть с помощью Мастера - изучайте SQL.

Евгений.

Последний раз редактировалось Teslenko_EA; 07.06.2012 в 20:57.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор из одного столбца по условию выполняющемуся во втором столбце mjpv Microsoft Office Excel 2 30.04.2011 11:58
Увеличить значения столбца на 50% saizar Microsoft Office Excel 7 02.04.2011 15:07
Выбор и перенос максимальных значений из столбца с учетом временного интервала. Tidus Microsoft Office Excel 74 10.02.2010 17:18
Выбор столбца через комбокс и их суммирование Radnoy Microsoft Office Excel 3 22.11.2009 09:07
Выбор из столбца по критерию и копировать ячейку из этой строки на другой лист Тетя Мотя Microsoft Office Excel 1 17.09.2009 16:46