![]() |
|
Модераторы: Poseidon |
![]()
|
|
| 4YBAK |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.1.2006 Репутация: нет Всего: нет |
Есть таблица работники.
Там поля: ФИО Должность Например там такая строка есть: чувак инженер И еще таблица Оклады В ней поля Должность Оклад К примеру, строки в ней такие: Сантехник 20000 Слесарь 25000 Токарь 22000 инженер 30000 какой запрос надо сделать, чтоб отобразить у каждой записи из таблицы работники соответствующей должности оклад? разжуйте плиз все подробно, куда надо нажать в аксессе 07, штоб было щастье. (увы, функции "получить щастье" в данной программе нет :() Это сообщение отредактировал(а) 4YBAK - 26.10.2011, 20:06 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 17 Всего: 454 |
Для домашних заданий, курсовых и вопросов типа "Сделайте за меня" существует раздел "Центр Помощи".
Тема перенесена. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| 4YBAK |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.1.2006 Репутация: нет Всего: нет |
это не курсовик. это попытка понять хоть што-то в БД. че, никто не подскажет? |
|||
|
||||
| Woodlin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.7.2009 Где: Челябинская облас ть, г. Пласт Репутация: нет Всего: 1 |
4YBAK, я бы сделал так:
в таблице Оклады создал поле, к примеру КодОклады, тип данных счетчик, сделал его индексированным (индексированное поле - Да (Совпадения не допускаются)). Забегая вперёд, как я думаю, одной должности и окладу может соответствовать несколько работников. Далее в таблице Работники создаём поле, например как я делаю для связи таблиц ОкладыКод. Тип данных числовой, размер длинное целое (такой размер поля делается для связи с полем, у которого тип данных счетчик), индексированное поле - Да (Допускаются совпадения), как я уже писАл одной должности и окладу может соответствовать несколько работников и возможны повторения значений поля ОкладыКод. В схеме данных отображаем эти две таблицы, создаёшь между ними связь, связь должна быть один ко многим. Потом создаёшь запрос. В конструкторе запроса отображаешь эти две таблицы, между ними уже должна быть связь. Закидываешь в поля запроса поля таблиц, которые тебе нужны... и вот оно щастье. |
|||
|
||||
| 4YBAK |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.1.2006 Репутация: нет Всего: нет |
ничего не понял по поводу связей... для чего они нужны? у меня методом научного тыка в конструкторе получился такой запрос: SELECT рабы.*, оклады.оклад FROM рабы, оклады WHERE ((([рабы]![профа])=[оклады]![должность])) ORDER BY рабы.Код; все работает. на схеме данных поле должность из таблицы оклады связано с полем профа из таблицы рабы. причем если посмотреть свойства этой связи, то у нее тип отношения "не определено". Что это значит? |
|||
|
||||
| Woodlin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.7.2009 Где: Челябинская облас ть, г. Пласт Репутация: нет Всего: 1 |
Скорее всего одно из связанных полей, или оба не индексированы. Вы просто руками прописали условие отбора записей ( WHERE ((([рабы]![профа])=[оклады]![должность])) ) поэтому и работает как надо. А если бы были установлены связи таблиц, то запрос бы отбирал записи автоматом, кстати можно устанавливать связи в запросе (в схеме данных не отобразится, действует только для текущего запроса). А вообще я в двух словах не смогу написать для чего нужно устанавливать связи между таблицами, лучше почитайте. |
|||
|
||||
| 4YBAK |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.1.2006 Репутация: нет Всего: нет |
подскажите пж-та толковую статейку по данной теме |
||||
|
|||||
| Woodlin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.7.2009 Где: Челябинская облас ть, г. Пласт Репутация: нет Всего: 1 |
||||
|
||||
| 4YBAK |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.1.2006 Репутация: нет Всего: нет |
я тоже, и не одну. назовите книгу и афтора а так же если можно толковую статью в инете. в яндексе вылезает убогий мусор по данному запросу. Это сообщение отредактировал(а) 4YBAK - 7.11.2011, 18:53 |
|||
|
||||
| Woodlin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.7.2009 Где: Челябинская облас ть, г. Пласт Репутация: нет Всего: 1 |
Access 2002. Библия пользователя, Керри Н. Праг, Майкл Р. Ирвин моя первая книжка, покупал в магазине, в комплект входит диск с примером базы данных и другими полезностями. |
|||
|
||||
| 4YBAK |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.1.2006 Репутация: нет Всего: нет |
спасибо! книгу обязательно прочту.
друзья, помогите пожалуйста. запрос-то работает. но вот конкретная задача не выполняется. выкладываю БД. Убрал из нее все связи и все ключевые поля. Большая просьба, проставьте их. И выложите сюда ваш вариант базы. Нужно чтоб на форме для каждого работника в зависимости от должности проставлялся оклад из таблицы оклады. Для вас пять минут, для меня хоть какое-то понимание баз. Гуглил очень много, помогите плиз. Присоединённый файл ( Кол-во скачиваний: 5 )
_____________.rar 28,97 Kb |
|||
|
||||
| Woodlin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.7.2009 Где: Челябинская облас ть, г. Пласт Репутация: нет Всего: 1 |
4YBAK, у меня Access 2003, Ваш пример открыть не могу.
Прилагаю свой смотрите запрос1 Это сообщение отредактировал(а) Woodlin - 10.11.2011, 13:27 Присоединённый файл ( Кол-во скачиваний: 4 )
db1.rar 9,02 Kb |
|||
|
||||
| 4YBAK |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.1.2006 Репутация: нет Всего: нет |
Woodlin, спасибо!
На базе вашей работы я наконец сделал то, что мне нужно. Удалось сделать форму на базе запроса. Посмотреть можно в прикрепленном файле, может кому пригодится. В файле 2 версии: для access 2007 и для более ранних. Добавлено через 14 минут и 9 секунд По сути все просто. Обычная экселевская функция ВПР. С ее помощью и еще нескольких, я в экселе творю чудеса (увы, чудеса пока для дяди) А в акСексе приходица долго трахаца, штоб сделать то, что в экселе делается за 1 минуту. Может, есть какая-то программа, которая анализирует функции экселя и на их основе создает базу со связями в акСексе? Я акСекс начал изучать только потому, что во фрилансе полно проектов на эту тему... Присоединённый файл ( Кол-во скачиваний: 2 )
1.rar 73,24 Kb |
|||
|
||||
| 4YBAK |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.1.2006 Репутация: нет Всего: нет |
и такой вопрос:
можно ли обнулить щечик записей? у меня в таблице почему-то он начался с цифры 2. а надо чтоб с цифры 1 |
|||
|
||||
| Woodlin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.7.2009 Где: Челябинская облас ть, г. Пласт Репутация: нет Всего: 1 |
Счетчик записей это рабочее поле, обеспечивающее уникальность каждой записи (две или больше записей с одинаковым значением счетчика не бывает) и обычно используется для связи с записями в других таблицах. В общем видеть пользователю это поле не обязательно. Если уж так хочется вести нумерацию записей, которую можно показать пользователю, заведите отдельное поле, и при желании можно будет в нем менять нумерацию как угодно. По поводу обнуления счетчика, это можно делать когда таблица ни коим образом не участвует в связях с другими таблицами, и проще всего это сделать удалив (в режиме конструктора таблицы) поле Счетчик, а потом его снова добавить. Иначе произойдёт путаница, небольшой пример; в таблице Оклады (Счетчик=3 - к примеру сантехник, Счетчик=4 - инженер) удалили запись у которой Счетчик=3 (типа должность сантехник сократили), получается нарушен порядок нумерации (после 2 сразу идет 4). Если каким либо способом порядок следования значений Счетчика восстанавливаем (Счетчик = 1, 2, 3) то получаем должность у которой Счетчик был = 4 становится 3, и при построении запроса с таблицами Работники и Оклады мы получим работников - сантехников, которых запрос показал как инженеров. |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |