Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / отображение данных в комбоксе... / 11 сообщений из 11, страница 1 из 1
05.04.2004, 18:58
    #32469654
geo_life
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение данных в комбоксе...
Можно ли сделать так что бы на форме (ленточная) в комбоксе отражались все данные из таблицы1.поле1, а в выподающем списке этого поля были видны только огранниченные данные. К примеру, в поле1 (комбоксе) отражаются сотрудники которые выполнили операцию1, их можно выбрать но только из числа не уволенных (логическое условие). Вот если это логическое условие поставить в источник строк поля1 (select ... where uvolen=false), то те сотрудники которые уволены (uvolen=true) вообще не отобразятся в поле1, а ведь именно они когда выполнили операцию1.
Как быть?
...
Рейтинг: 0 / 0
05.04.2004, 19:28
    #32469685
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение данных в комбоксе...
Способ 1. Показывать всех, но при попытке выбрать из списка запускать проверку.

Способ 2. Отказаться от комбобокса, а комбобокс показывать на другой форме при нажатии на кнопку.
...
Рейтинг: 0 / 0
05.04.2004, 19:34
    #32469692
geo_life
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение данных в комбоксе...
да, такие мысли уже были. Наверное придется воспользоваться 2.
...
Рейтинг: 0 / 0
06.04.2004, 09:59
    #32470059
Julius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение данных в комбоксе...
Ну почему же, если форма ленточная, можно сделать так как вы хотите.

1. Вместо комбобокса создаются 2 элемента, один под другим. Сверху - поле, в котором выбирается нужное для отображения значение при помощи "=DlookUp(...)", например
2. На задний план за это поле помещается комбобокс, таким образом, чтобы выглядывл только его ярлычок.
3. Когда пользователь клацает на ярлычок поля, выполняется (по OnGotFocus) обновление комбобокса. Таким образом, в текущей строке комбобокс отображает только свойственные ей значения.

Недостатки:
1. DlookUp часто обращается к базе данных (для каждой видимой строки).
2. При помещении фокуса ввода в ComboBox все видимые значения поля в других строках "могргают".

От недостатка DlookUp избавиться можно, если заменить его на свою функцию, которая получает с сервера или из БД набор записей для всех отображаемых значений и потом уже выбирает нужные, моргание пока непобедимо...
...
Рейтинг: 0 / 0
06.04.2004, 10:20
    #32470087
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение данных в комбоксе...
Я работаю с ADP поэтому к вариантам с DlookUp отношусь не очень.
Посему пользуюсь немного другим вариантом:
Вместо комбобокса создаются 2 элемента, один под другим
Сверху поле отображающее то что надо из источника формы
под ним комбобокс(полностью закрытый)
при получении фокуса верхним полем оно передает фокус комбобоксу.
таким образом комбобокс отображается только в той строке
в ктоторой юзер работает.

Я пользуюсь таким вариантом например когда необходимо
чтобы список комбобокса зависел от данных строки в ленточной форме.
...
Рейтинг: 0 / 0
06.04.2004, 10:23
    #32470093
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение данных в комбоксе...
PS В некоторых случаях на таких перекрывающихся парах контролов
может возникать раздражающее мелькание.

его можно устранить управляя видимостью нижнего поля.
...
Рейтинг: 0 / 0
06.04.2004, 10:54
    #32470157
Julius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение данных в комбоксе...
Latuk:

А как такая схема работает при добавлении новой записи? При изменении существующей записи? Что отображается в поле, если оно основано на наборе записей формы.

DLookUp в ADP я тоже не использую. Я пишу функцию, которая локализует набор значений для всех записей формы, выполняя запрос 1 раз и затем их отображает по мере вызова для каждой записи, не обращаясь лишний раз к серверу. Зато можно отображать даже те значения, которых еще нет в наборе записей формы.
Если я чего-то не понямаю, и отобразить значение можно и для новой либо только что измененной, но не сохраненной записи, расскажи пожалуйста как?
...
Рейтинг: 0 / 0
06.04.2004, 12:14
    #32470348
geo_life
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение данных в комбоксе...
Ну что же, попробую заморочиться с двумя полями...
...
Рейтинг: 0 / 0
06.04.2004, 12:27
    #32470387
фыыф
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение данных в комбоксе...
для .mdb в 97 неплохо рулит подмена источников по входу и выходу из комбо (соответсвенно на фильтрованный/не фильтрованный. даже в табличной форме. ищи по форуму. предложил GEO).
...
Рейтинг: 0 / 0
06.04.2004, 13:46
    #32470519
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение данных в комбоксе...
Такой изврат я делаю как раз когда необходимо динамически
менять источник комбобокса
например по Form_Current

При добавлении нового поля пользуюсь значениями по умолчанию
или обрабатываю NULL в конкретном контексте

В ADP поле не будет заполненно пока не прейдеш на сл запись
(заполнится после отработки команды синхронизации)
Если это не подходит надо сделать
DoCmd.RunCommand acCmdSaveRecord
Насильно запомнив запись и запустив команду снхронизации.
...
Рейтинг: 0 / 0
06.04.2004, 14:33
    #32470634
geo_life
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отображение данных в комбоксе...
Сделал комбокс (снизу) и текстбокс (сверху), пока что вроде все работает.
Пасобо всем за советы ! :-))
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / отображение данных в комбоксе... / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]