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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2011, 14:23   #1
Murphiks
 
Регистрация: 30.03.2011
Сообщений: 4
Восклицание Привязка поле со списком к 2 и более формам или таблицам

Есть задачка сделать программку , возникли пару вопросиков но по скольку только учусь решил спросить тех кто грамотней.

есть форма (Форма 1) на форме поле со списком, есть 3 таблицы (Таб1, Таб2, Таб3 - с разными типом и полями) .

Как лучше и правильней можно сделать при выборе одного значение в поле со списком чтоб в форме открывалось под. форма (в табличной форме) с данными из одной из этих 2-3 таблиц, и с ограниченным списком значений (например в той таблице 100 записей чтоб в форме просто открывались последние 10-15 записей) .

Есть 2 варианта у меня, но что то не получается привязать, каждое значение в поле со списком (там их не более 3-5 ) привязать по одной таблице, или же каждое значение в поле со списком будет иметь свою форму.
Посоветуйте и помогите разобраться пожалуйста.
Murphiks вне форума Ответить с цитированием
Старый 30.03.2011, 16:23   #2
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
1. Что Вы отображаете в поле со списком или иначе что конкретно Вы выбираете, с какой конечной целью? С целью перебора таблиц? Может объясните так: Выбираю такое-то конкретное значение в поле со списком и у меня на форме (в субформе - это и часть ответа на Ваш вопрос) отображаются данные по такому-то условию. 3-5 значений в поле со списком ни как не стыкуются с тремя таблицами, следовательно поле со списком должно быть связано с запросами...
2.
Цитата:
(например в той таблице 100 записей чтоб в форме просто открывались последние 10-15 записей)
Если Вы берёте последние записи безо всякой цели, то можете взять и первые. Чтобы взять последние 15 надо написать запрос:
Код:
SELECT TOP 15 * FROM Таб1 ORDER BY ПолеУсловиеКотороеВыСамиНеЗнаетеИлиНеГоворите DESC
3. Пока Вы чётко не опишите задачу, которую Вам нужно решить, никто Вам не в состоянии помочь. Если стесняетесь написать: "количество унитазов проданных тогда-то", замените на слово "количество цветов проданных тогда-то"
OlegVE вне форума Ответить с цитированием
Старый 30.03.2011, 20:41   #3
Murphiks
 
Регистрация: 30.03.2011
Сообщений: 4
По умолчанию

ок более подробнее

создаю журнал выполненных работ точней пытаюсь.
нужно так при выборе в поле со списком вида работ например (ремонт, профилактика, компоновка) открывалась в подчинённой форме данные именно этого вида работ а для удобство чтоб не была вся таблица а только последние например 10-15 записей .
надеюсь сейчас разборчивей.

1 таблица например ID и Вид работ
2 таблица данные 1 вида работ
3 таблица соответственно другово вида работ и так далее

В форме поле со списком и ниже другая форма в которой что выбрано просматривается (то есть тот список ограниченный).
Murphiks вне форума Ответить с цитированием
Старый 31.03.2011, 12:11   #4
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
Цитата:
Сообщение от Murphiks Посмотреть сообщение
ок более подробнее

создаю журнал выполненных работ точней пытаюсь.
нужно так при выборе в поле со списком вида работ например (ремонт, профилактика, компоновка) открывалась в подчинённой форме данные именно этого вида работ а для удобство чтоб не была вся таблица а только последние например 10-15 записей .
надеюсь сейчас разборчивей.

1 таблица например ID и Вид работ
2 таблица данные 1 вида работ
3 таблица соответственно другово вида работ и так далее

В форме поле со списком и ниже другая форма в которой что выбрано просматривается (то есть тот список ограниченный).
Для начала:
1. Посмотрите в базе данных Борей.mdb (C:\Program Files\Microsoft Office\Office10\Samples\Борей.mdb может у Вас в другом месте) форму "Заказы клиентов".
2. На сколько различаются ваши виды работ, что необходимо для каждой создавать свою таблицу? Например поля для подробностей по видам работ: 1) ID вида работ (внешний ключ), 2) Название отдельной операции, 3) Время начала, 4) Время окончания...
3. Я предположил, что Вам нужны три таблицы:
а) тблСотрудник (или тблРемонтныйУчасток)
б) тблВидРабот
и) тблОперацииДляВидовРабот
4. Создайте отношения "один ко многим" для, таблиц:
тблСотрудник -> тблВидРабот
тблВидРабот -> тблОперацииДляВидовРабот

И и Вас получится как в вышеназванной форме "Заказы клиентов".

5. Использование поля со списком для навигации по записям.
Код:
Sub НазваниеВашегоПоляСоСписком_AfterUpdate()
'Содержание следующей строки зависит от того, какой тип данных будет у Вашего "ID вида работ"
   Me.RecordsetClone.FindFirst "[ID вида работ] = " & Me![НазваниеВашегоПоляСоСписком].Value 
   Me.Bookmark = Me.RecordsetClone.Bookmark
End Sub
После того, как Вы определитесь и создадите таблицы, можно будет продолжать разговор, и не только со мной.
До свидания
OlegVE вне форума Ответить с цитированием
Старый 31.03.2011, 14:41   #5
Murphiks
 
Регистрация: 30.03.2011
Сообщений: 4
По умолчанию

да спасибо вы правильно почти всё поняли.
Дело не в том что намного отличаются поля таблицы что нужны 3, а в том что если по мере пополнение записей их будет много чтоб меньше нагружалось всё, поэтому и подумал что так эффективней.
А разница в таблице только то что один вид работ имеет дату и примечание , другой вид работ тоже самое а вот третий вид работ имеет дату примечание и серийные номера и год выпуска.
И вот пустые поля не должны по моему мнению и думаю лучше будет чтоб не выводились на экран.
Murphiks вне форума Ответить с цитированием
Старый 31.03.2011, 17:28   #6
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Цитата:
Сообщение от Murphiks Посмотреть сообщение
...А разница в таблице только то что один вид работ имеет дату и примечание , другой вид работ тоже самое а вот третий вид работ имеет дату примечание и серийные номера и год выпуска...
Пересмотрите, может у вас вид работ связан с каким-то объектом, у которого есть "серийные номера и год". Т.е., если начать сначала, а) к вам пришел автомобиль на ремонт (ввели по нему данные, в том числе "серийные номера и год", владельца (чек-то Вы кому-то выписываете, к стати, у него может быть два автомобиля, получается заказчик в иерархии первый)), б) ремонт поручили какому-то человеку/бригаде, в) им/ею произведены работы над каким-то узлом, г) расписываем работы по операциям. IDвладельца <- IDавтомобиля <- IDвидаработы <- IDоперации.
Цитата:
Сообщение от Murphiks Посмотреть сообщение
...И вот пустые поля не должны по моему мнению и думаю лучше будет чтоб не выводились на экран...
Если это кого-то раздражает, используйте страницы на форме или вкладки на которых свои субформы для своих таблиц или с ограниченным набором полей и при выборе вида работ одновременно показывайте нужную страницу или вкладку (тогда будут загружаться данные из 3 таблиц).
Цитата:
Сообщение от Murphiks Посмотреть сообщение
... а в том что если по мере пополнение записей их будет много чтоб меньше нагружалось всё, поэтому и подумал что так эффективней...
Это решайте сами, хотя-бы по условию выводите, например, за последний день-два...
Думаю теперь Вам надо много читать и создавать несколько тем для получения ответа уже на конкретные вопросы.
До свидания
OlegVE вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поле с раскрывающимся списком MickMick Microsoft Office Excel 9 05.01.2011 22:08
поле со списком new_here Microsoft Office Access 2 03.10.2010 19:08
Поле со списком Diamand Microsoft Office Access 4 14.05.2010 21:28
Поле со списком Underfinder Microsoft Office Access 7 21.03.2010 17:17
Поле со списком d_adilet Microsoft Office Access 5 08.02.2010 07:37