Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/32: Рейтинг темы: голосов - 32, средняя оценка - 4.94
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 452
1

запрос сложный select

23.12.2009, 15:49. Показов 6580. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужно сделать выборку из таблицы с отбором по ранному кол-ву условий (завият от положения флажков в форме) (см файл)
SQL
1
2
3
SELECT отдел_кадров.Код_сотрудника, отдел_кадров.фио, отдел_кадров.зарплата, отдел_кадров.проффесия, отдел_кадров.зарплата, отдел_кадров.дата_рождения
FROM отдел_кадров
WHERE ????
как мне написать условие подобного рода 25 различных запросов писать глупо
Миниатюры
запрос сложный select  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2009, 15:49
Ответы с готовыми решениями:

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

Сложный запрос
Помогите сделать запрос, в котором участвует несколько таблиц. Я объединяю с помощью INNER JOIN 4...

Сложный запрос
Добрый день! Столкнулся с тем что нужно сделать SQL запрос к базе Accsess 2013 И прошу помощи,...

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

26
10065 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
23.12.2009, 15:51 2
а ты генери запрос в ВБА

а затем присваивай его рекордсету формы вывода результатов
0
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 452
23.12.2009, 21:51  [ТС] 3
я в этом совсем новичок

при таком запросе в VBА должны отображаться результаты запроса ?
Visual Basic
1
2
3
4
5
6
Private Sub Кнопка61_Click()
strSQL = "SELECT отдел_кадров.Код_сотрудника, отдел_кадров.фио, отдел_кадров.зарплата, отдел_кадров.проффесия, отдел_кадров.зарплата, отдел_кадров.дата_рождения" _
  & "FROM отдел_кадров" _
  & "WHERE ((отдел_кадров.Код_сотрудника)=1);"
  
End Sub
0
2454 / 797 / 24
Регистрация: 18.08.2009
Сообщений: 1,697
24.12.2009, 06:18 4
скорее всего нет, надо использовать DoCmd. Вам посоветовали использовать код VBA для организации запросов с помощью оператора Case. Если надо задавать много сочетаний разных флажков, можно организовать задание какой-то переменной для определенных сочетаний флажков с помощью оператора If.
Например:
PureBasic
1
2
3
4
Dim A As String 
If ((Me.Flag1.Value=True) And (Me.Flag2=True)) Then A=33 
End If 
Me.Поле1.Value=А
Затем с помощью оператора Case составить несколько задач при определнных значениях переменной А или поля формы
0
10065 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
24.12.2009, 12:27 5
Цитата Сообщение от Елена_ Посмотреть сообщение
надо использовать DoCmd
дадада. а если точнее, то DoCmd.RunSQL
Цитата Сообщение от Елена_ Посмотреть сообщение
Если надо задавать много сочетаний разных флажков, можно организовать задание какой-то переменной для определенных сочетаний флажков с помощью оператора If.
этот вариант хорош, но я бы посоветовал его доработать. т.е.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
dim flgAND as Boolean, A as string
flgAND = False ' не обязательная, но желательная строка
A="SELECT отдел_кадров.Код_сотрудника, отдел_кадров.фио, " & _
"отдел_кадров.зарплата, отдел_кадров.проффесия, отдел_кадров.зарплата," & _ 
"отдел_кадров.дата_рождения FROM отдел_кадров WHERE "
IF Me.FlagFIO.Value THEN A=A & " отдел_кадров.фио='"& me.field_fio &"'": flgAND = Me.FlagFIO.Value
IF Me.FlagProf.Value THEN A=A & iif(flgAND," AND","") &" отдел_кадров.проффесия='"& _
me.field_Prof &"'": flgAND = Me.FlagProf.Value
'....
IF Me.FlagDR.Value THEN A=A & iif(flgAND," AND","") &" отдел_кадров.дата_рождения='" & _
me.field_DR &"';": flgAND = Me.FlagProf.Value
if not flgAND then A=left(A, len(A)-6)
Добавлено через 25 минут

Не по теме:

кстати, слово проффесия пишется так профессия
эт у нас только Янукович неправильно писал, что он проффесор,
правда в 2004 году еще

2
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 452
24.12.2009, 19:57  [ТС] 6
про читал код, но понял только одного
DoCmd что это и с чем его едят
0
2454 / 797 / 24
Регистрация: 18.08.2009
Сообщений: 1,697
25.12.2009, 05:57 7
Цитата Сообщение от CyberБурундукЪ Посмотреть сообщение
DoCmd.RunSQL
запускает на выполнение Ваш запрос. Наберите в VBA DoCmd и поставьте точку - выпадет меню с возможными методами, листайте, смотрите, пользуйтесь клавишей F1 (справка).
1
10065 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
25.12.2009, 11:43 8
Цитата Сообщение от nikooolay Посмотреть сообщение
DoCmd что это и с чем его едят
воткактотак
Объект DoCmd — это "рабочая лошадка" программирования VBA в Access. Этот объект позволяет программным образом выполнять макрокоманды Access — те действия (actions), которые можно просмотреть (на русском языке) в окне конструктора макрокоманд. Действия — это самые распространенные операции, которые обычно приходится выполнять в Access программным способом (они перечислены ниже).

У объекта DoCmd нет свойств — только методы. Для целей унификации в последних версиях Access методы DoCmd "переезжают" в объект Application, но для целей совместимости со старыми приложениями они оставлены и в DoCmd. Microsoft рекомендует по возможности пользоваться одноименными методами объекта Application.
0
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 3
16.01.2010, 21:16 9
у меня похожая проблема
нужно сделать сложный запрос по форме с многими условиями
я вот могу составить sql запрос
а как вывести на экран запрос на выборку не могу понять
нужно чтобы по моему запросу открылось окно как будтно выбрали какойто запрос из списка запросов в бд
0
2454 / 797 / 24
Регистрация: 18.08.2009
Сообщений: 1,697
16.01.2010, 21:29 10
по-моему не так. Вы задаете условия на форме каким образом: ставите галочки возле каких-то флажков или в полях со списком задаете текст? Если выбор осуществляется галочками возле флажков, то в коде VBA надо прописать с помощью оператoров IF или CASE что будет происходить, если флаг получил значение TRUE Например,
SQL
1
IF флаг1.Value=TRUE THEN DoCmd.OpenQuery "имя запроса"
..Синтаксис проверьте при помощи клавиши F1
0
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 3
16.01.2010, 22:12 11
имелось в виду, чтобы запрос в бд делать динамически, а не прописывать их вручную
просто любой запрос представляет из себя строку скюэль запроса
вот мне нужно менять эту строку
0
10065 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
17.01.2010, 11:21 12
Цитата Сообщение от 4e4el Посмотреть сообщение
вот мне нужно менять эту строку
ну так и работай с ним как с обычной строкой.
кстати,в этом разделе оч много примеров по этой теме
1
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 3
17.01.2010, 11:57 13
вот как я нашел
PureBasic
1
2
3
4
Set dbsCurrent = CurrentDb
    Set qryTest = dbsCurrent.QueryDefs("test")
    qryTest.SQL = SQL
    DoCmd.OpenQuery "test"
0
0 / 0 / 0
Регистрация: 19.01.2010
Сообщений: 7
19.01.2010, 13:44 14
Добрый день!
А у меня такой вопрос: в БД есть запрос, который требует ввода параметра (стоит условие "введите дату"). Возможно ли прописать этотже запрос на VBA, так, чтобы параметр (дата) брался из поля на форме?
0
2454 / 797 / 24
Регистрация: 18.08.2009
Сообщений: 1,697
19.01.2010, 18:55 15
пишите на SQL, указывайте в условии путь к полю формы:
SQL
1
WHERE (Имя таблицы.Имя столбца=forms![имя Вашей формы]![имя поля]);
1
0 / 0 / 0
Регистрация: 19.01.2010
Сообщений: 7
19.01.2010, 18:58 16
Елена_, спасибо за совет! Я уже решил было так и сделать, только не знаю точный синтаксис SQL запроса на VBA. Если вам не трудно, напишите, пожалуйста, как должна выглядеть инструкция запроса на VBA. Я пробовал вариант с DoCmd Run SQL, но что-то не заработало так =)
Заранее спасибо!
0
2454 / 797 / 24
Регистрация: 18.08.2009
Сообщений: 1,697
19.01.2010, 19:35 17
можно так :
PureBasic
1
DoCmd.OpenQuery "ИмяЗапроса"
- запрос создаете хранимый, т.е. объект Вашей базы и потом к нему обращаетесь
можно так:
PureBasic
1
DoCmd.RunSQL "INSERT INTO таблица SELECT таблица.ИмяСтолбца FROM таблица", -1
1
0 / 0 / 0
Регистрация: 19.01.2010
Сообщений: 7
19.01.2010, 19:40 18
Спасибо, оказывается я делал втрой вариант с ошибкой =). И последнее уточнение, можно ли, обращаясь к хранимому запросу (1-й вариант), задавать параметр в поле на форме? Т.е. не вводить его в диалоговом окне, а к примеру, сослаться на значение поля?
0
2454 / 797 / 24
Регистрация: 18.08.2009
Сообщений: 1,697
19.01.2010, 19:46 19
Цитата Сообщение от Uncle_Smith Посмотреть сообщение
можно ли, обращаясь к хранимому запросу (1-й вариант), задавать параметр в поле на форме? Т.е. не вводить его в диалоговом окне, а к примеру, сослаться на значение поля?
конечно, об этом я и писала в первом примере. и здесь указала пример пути к полю формы

Цитата Сообщение от Елена_ Посмотреть сообщение
WHERE (Имя таблицы.Имя столбца=forms![имя Вашей формы]![имя поля]);
1
0 / 0 / 0
Регистрация: 19.01.2010
Сообщений: 7
19.01.2010, 19:48 20
Вопросов больше не имею! Спасибо большое за помощь!
0
19.01.2010, 19:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2010, 19:48
Помогаю со студенческими работами здесь

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

Сложный запрос
Здравствуйте. Есть форма из пяти полей, куда из списка выбираются данные для запроса. Картинка: ...

Сложный запрос
Бодрое утро, подскажите нужно сделать запрос результат которого нужно добавить до текущей таблицы....

Сложный запрос
Помогите пожалуйста создать сложный запрос, нужно получить выборку со столбцами...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru