Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [MS Access] вопрос по запросам 
:(
    Опции темы
4YBAK
Дата 26.10.2011, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2006

Репутация: нет
Всего: нет



Есть таблица работники.
Там поля: ФИО Должность
Например там такая строка есть:
чувак инженер

И еще таблица Оклады
В ней поля Должность Оклад
К примеру, строки в ней такие:
Сантехник 20000
Слесарь 25000
Токарь 22000
инженер 30000

какой запрос надо сделать, чтоб отобразить у каждой записи из таблицы работники соответствующей должности оклад?
разжуйте плиз все подробно, куда надо нажать в аксессе 07, штоб было щастье. (увы, функции "получить щастье" в данной программе нет :()




Это сообщение отредактировал(а) 4YBAK - 26.10.2011, 20:06
PM MAIL   Вверх
Akina
Дата 26.10.2011, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



Для домашних заданий, курсовых и вопросов типа "Сделайте за меня" существует раздел "Центр Помощи".

Тема перенесена.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
4YBAK
Дата 27.10.2011, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2006

Репутация: нет
Всего: нет



Цитата(Akina @ 26.10.2011,  20:09)
Для домашних заданий, курсовых и вопросов типа "Сделайте за меня" существует раздел "Центр Помощи".

Тема перенесена.

это не курсовик.
это попытка понять хоть што-то в БД.
че, никто не подскажет?

PM MAIL   Вверх
Woodlin
Дата 27.10.2011, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.7.2009
Где: Челябинская облас ть, г. Пласт

Репутация: нет
Всего: 1



4YBAK, я бы сделал так:
в таблице Оклады создал поле, к примеру КодОклады, тип данных счетчик, сделал его индексированным (индексированное поле - Да (Совпадения не допускаются)). Забегая вперёд, как я думаю, одной должности и окладу может соответствовать несколько работников.

Далее в таблице Работники создаём поле, например как я делаю для связи таблиц ОкладыКод. Тип данных числовой, размер длинное целое (такой размер поля делается для связи с полем, у которого тип данных счетчик), индексированное поле - Да (Допускаются совпадения), как я уже писАл одной должности и окладу может соответствовать несколько работников и возможны повторения значений поля ОкладыКод.

В схеме данных отображаем эти две таблицы, создаёшь между ними связь, связь должна быть один ко многим.

Потом создаёшь запрос. В конструкторе запроса отображаешь эти две таблицы, между ними уже должна быть связь. Закидываешь в поля запроса поля таблиц, которые тебе нужны... и вот оно щастье.
PM MAIL ICQ   Вверх
4YBAK
Дата 6.11.2011, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2006

Репутация: нет
Всего: нет



Цитата(Woodlin @ 27.10.2011,  10:40)
4YBAK, я бы сделал так:
в таблице Оклады создал поле, к примеру КодОклады, тип данных счетчик, сделал его индексированным (индексированное поле - Да (Совпадения не допускаются)). Забегая вперёд, как я думаю, одной должности и окладу может соответствовать несколько работников.

Далее в таблице Работники создаём поле, например как я делаю для связи таблиц ОкладыКод. Тип данных числовой, размер длинное целое (такой размер поля делается для связи с полем, у которого тип данных счетчик), индексированное поле - Да (Допускаются совпадения), как я уже писАл одной должности и окладу может соответствовать несколько работников и возможны повторения значений поля ОкладыКод.

В схеме данных отображаем эти две таблицы, создаёшь между ними связь, связь должна быть один ко многим.

Потом создаёшь запрос. В конструкторе запроса отображаешь эти две таблицы, между ними уже должна быть связь. Закидываешь в поля запроса поля таблиц, которые тебе нужны... и вот оно щастье.

ничего не понял по поводу связей... для чего они нужны?
у меня методом научного тыка в конструкторе получился такой запрос:

SELECT рабы.*, оклады.оклад
FROM рабы, оклады
WHERE ((([рабы]![профа])=[оклады]![должность]))
ORDER BY рабы.Код;

все работает.
на схеме данных поле должность из таблицы оклады связано с полем профа из таблицы рабы. причем если посмотреть свойства этой связи, то у нее тип отношения "не определено". Что это значит?


PM MAIL   Вверх
Woodlin
Дата 6.11.2011, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.7.2009
Где: Челябинская облас ть, г. Пласт

Репутация: нет
Всего: 1



Цитата(4YBAK @  6.11.2011,  04:13 Найти цитируемый пост)
на схеме данных поле должность из таблицы оклады связано с полем профа из таблицы рабы. причем если посмотреть свойства этой связи, то у нее тип отношения "не определено". Что это значит?

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

Цитата(4YBAK @  6.11.2011,  04:13 Найти цитируемый пост)
у меня методом научного тыка в конструкторе получился такой запрос:

SELECT рабы.*, оклады.оклад
FROM рабы, оклады
WHERE ((([рабы]![профа])=[оклады]![должность]))
ORDER BY рабы.Код;

все работает.

Вы просто руками прописали условие отбора записей ( WHERE ((([рабы]![профа])=[оклады]![должность])) ) поэтому и работает как надо. А если бы были установлены связи таблиц, то запрос бы отбирал записи автоматом, кстати можно устанавливать связи в запросе (в схеме данных не отобразится, действует только для текущего запроса).
А вообще я в двух словах не смогу написать для чего нужно устанавливать связи между таблицами, лучше почитайте.
PM MAIL ICQ   Вверх
4YBAK
Дата 6.11.2011, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2006

Репутация: нет
Всего: нет



Цитата(Woodlin @  6.11.2011,  13:16 Найти цитируемый пост)
А если бы были установлены связи таблиц, то запрос бы отбирал записи автоматом


Цитата(Woodlin @  6.11.2011,  13:16 Найти цитируемый пост)
А вообще я в двух словах не смогу написать для чего нужно устанавливать связи между таблицами, лучше почитайте.

подскажите пж-та толковую статейку по данной теме

PM MAIL   Вверх
Woodlin
Дата 7.11.2011, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.7.2009
Где: Челябинская облас ть, г. Пласт

Репутация: нет
Всего: 1



Цитата(4YBAK @  6.11.2011,  16:51 Найти цитируемый пост)
подскажите пж-та толковую статейку по данной теме

Я книгу покупал, а вообще воспользуйтесь поисковиком, забейте "Связи таблиц в Access" и читайте.
PM MAIL ICQ   Вверх
4YBAK
Дата 7.11.2011, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2006

Репутация: нет
Всего: нет



Цитата(Woodlin @ 7.11.2011,  08:17)
Цитата(4YBAK @  6.11.2011,  16:51 Найти цитируемый пост)
подскажите пж-та толковую статейку по данной теме

Я книгу покупал, а вообще воспользуйтесь поисковиком, забейте "Связи таблиц в Access" и читайте.

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


Это сообщение отредактировал(а) 4YBAK - 7.11.2011, 18:53
PM MAIL   Вверх
Woodlin
Дата 8.11.2011, 05:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.7.2009
Где: Челябинская облас ть, г. Пласт

Репутация: нет
Всего: 1



Цитата(4YBAK @  7.11.2011,  21:51 Найти цитируемый пост)
назовите книгу и афтора

Access 2002. Библия пользователя, Керри Н. Праг, Майкл Р. Ирвин
моя первая книжка, покупал в магазине, в комплект входит диск с примером базы данных и другими полезностями.
PM MAIL ICQ   Вверх
4YBAK
Дата 9.11.2011, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2006

Репутация: нет
Всего: нет



спасибо! книгу обязательно прочту.

друзья, помогите пожалуйста.
запрос-то работает. но вот конкретная задача не выполняется.
выкладываю БД. Убрал из нее все связи и все ключевые поля.
Большая просьба, проставьте их. И выложите сюда ваш вариант базы.
Нужно чтоб на форме для каждого работника в зависимости от должности проставлялся оклад из таблицы оклады.
Для вас пять минут, для меня хоть какое-то понимание баз. Гуглил очень много, помогите плиз.


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  _____________.rar 28,97 Kb
PM MAIL   Вверх
Woodlin
Дата 10.11.2011, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.7.2009
Где: Челябинская облас ть, г. Пласт

Репутация: нет
Всего: 1



4YBAK, у меня Access 2003, Ваш пример открыть не могу.
Прилагаю свой
смотрите запрос1

Это сообщение отредактировал(а) Woodlin - 10.11.2011, 13:27

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  db1.rar 9,02 Kb
PM MAIL ICQ   Вверх
4YBAK
Дата 10.11.2011, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2006

Репутация: нет
Всего: нет



Woodlin, спасибо!

На базе вашей работы я наконец сделал то, что мне нужно.
Удалось сделать форму на базе запроса.
Посмотреть можно в прикрепленном файле, может кому пригодится.
В файле 2 версии: для access 2007 и для более ранних.

Добавлено через 14 минут и 9 секунд
По сути все просто. Обычная экселевская функция ВПР. 
С ее помощью и еще нескольких, я в экселе творю чудеса (увы, чудеса пока для дяди)
А в акСексе приходица долго трахаца, штоб сделать то, что в экселе делается за 1 минуту.
Может, есть какая-то программа, которая анализирует функции экселя и на их основе создает базу со связями в акСексе?
Я акСекс начал изучать только потому, что во фрилансе полно проектов на эту тему...


Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  1.rar 73,24 Kb
PM MAIL   Вверх
4YBAK
Дата 10.11.2011, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 179
Регистрация: 16.1.2006

Репутация: нет
Всего: нет



и такой вопрос:
можно ли обнулить щечик записей?
у меня в таблице почему-то он начался с цифры 2. а надо чтоб с цифры 1

PM MAIL   Вверх
Woodlin
Дата 10.11.2011, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.7.2009
Где: Челябинская облас ть, г. Пласт

Репутация: нет
Всего: 1



Цитата(4YBAK @  10.11.2011,  19:25 Найти цитируемый пост)
можно ли обнулить щечик записей?

Счетчик записей это рабочее поле, обеспечивающее уникальность каждой записи (две или больше записей с одинаковым значением счетчика не бывает) и обычно используется для связи с записями в других таблицах. В общем видеть пользователю это поле не обязательно. Если уж так хочется вести нумерацию записей, которую можно показать пользователю, заведите отдельное поле, и при желании можно будет в нем менять нумерацию как угодно.

По поводу обнуления счетчика, это можно делать когда таблица ни коим образом не участвует в связях с другими таблицами, и проще всего это сделать удалив (в режиме конструктора таблицы) поле Счетчик, а потом его снова добавить. Иначе произойдёт путаница, небольшой пример; в таблице Оклады (Счетчик=3 - к примеру сантехник, Счетчик=4 - инженер) удалили запись у которой Счетчик=3 (типа должность сантехник сократили), получается нарушен порядок нумерации (после 2 сразу идет 4). Если каким либо способом порядок следования значений Счетчика восстанавливаем (Счетчик = 1, 2, 3) то получаем должность у которой Счетчик был = 4 становится 3, и при построении запроса с таблицами Работники и Оклады мы получим работников - сантехников, которых запрос показал как инженеров.

PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0609 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.