Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Динамическое условие отбора для поля со списком / 19 сообщений из 19, страница 1 из 1
30.04.2004, 14:22
    #32504571
tim2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
Ленточная/табличная форма, поле со списком. Как сделать, чтобы каждое последущее поле содержало список без уже выбранных в других строках значений? И, соответственно, при удалении какой-нибудь записи, это значение в список возвращалось бы.
-----------------------------------------
Всех с наступающим...!
...
Рейтинг: 0 / 0
30.04.2004, 14:41
    #32504601
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
ты хочешь запретить повторный ввод одинаковых значений?
это делается в таблице, с которой работает твоя форма - смотри в сторону уникальных индексов
...
Рейтинг: 0 / 0
30.04.2004, 14:43
    #32504609
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
Ситуация ясна :)

Вот только код придумывать ломает - наверное он достаточно дольшой получиться :(

Примерно так:
1. Из формы составляешь список id, которые надо исключить в виде строки (например "1, 5, 10" - strNotID)
2. В RecordSoutre поля со списком пишешь SQL запрос, который тебя интересует и выкидываешь не нужные id-шки:
ПСС1.RecordSource = strSQL & "Where id not in (" & strNotID & ")"
3. Ну и что-то надо делать - если в ПСС1 не окажется (после изменения Source) записи на которую он указывал до изменения Source

Что-то вроде этого :)
...
Рейтинг: 0 / 0
30.04.2004, 14:51
    #32504632
tim2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
ты хочешь запретить повторный ввод одинаковых значений?
угадал! А как с индексами? Таблица "Состав", пусть будет 3 поля: id, idСостава, IdВагон. Ну залеплю я уникальный индекс на пару idСостава+IdВагон. И при попытке запихнуть в Состав уже имеющийся Вагон буду получать ругань. А мне надо, чтобы "использованные" позиции списка в нем вообще не показывались.
...
Рейтинг: 0 / 0
30.04.2004, 14:57
    #32504646
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
уважаемый paparone!
или не понимаю чего-то
или в вашем примере
после обновления источника поля со списком
каждая вводимая запись будет становиться null:
исчезла из выборки строка - id записи из таблицы дает null в запросе комбобокса -
стало нечего показывать - стал пустым комбобокс
...
Рейтинг: 0 / 0
30.04.2004, 15:00
    #32504653
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
Код: plaintext
1.
2.
3.
SELECT     SpisokVagonov.Name, MyTable.Name AS a
FROM         MyTable RIGHT OUTER JOIN
                      SpisokVagonov ON MyTable.Name = SpisokVagonov.Name
WHERE     (MyTable.Name IS NULL)


это - сурс для комбо
...
Рейтинг: 0 / 0
30.04.2004, 15:01
    #32504661
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
Код: plaintext
1.
2.
3.
4.
SELECT     SpisokVagonov.Name
FROM         MyTable RIGHT OUTER JOIN
                      SpisokVagonov ON MyTable.Name = SpisokVagonov.Name
WHERE     (MyTable.Name IS NULL)

т.е. вот так, зачем в комбе лишний столбец...
...
Рейтинг: 0 / 0
30.04.2004, 15:06
    #32504678
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
+ к сообщению zz
И надо полю .requery делать периодически, в OnCurrent, например.
...
Рейтинг: 0 / 0
30.04.2004, 15:09
    #32504686
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
+ к сообщению Geo
Абсолютно согласен :)
...
Рейтинг: 0 / 0
30.04.2004, 15:09
    #32504687
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
стандартными средствами не знаю как

как вариант:
на форме _над кнопкой со стрелкой вниз_ комбобокса
рисуешь свою кнопочку с тремя точками а-ля 1С
а комбобоксу даешь
enabled=no
locked=yes
= ввести/открыть список нельзя, а цвет не серый

а на кнопку вешаешь свою форму, которая дает выборку
исключая уже введенные
...
Рейтинг: 0 / 0
30.04.2004, 15:10
    #32504689
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
уважаемый paparone!
или не понимаю чего-то
или в вашем примере

Для этого я написал 3 пункт
Я же не пример писал - это так сказать - эскиз

Или я что-то не понимаю?
...
Рейтинг: 0 / 0
30.04.2004, 15:26
    #32504733
вспомнил
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
2 Geo

авторформа ленточная/табличная,
а не тот ли случай, когда вместо рекваери надо делать подмену рекордсетов по входу и выходу.
...
Рейтинг: 0 / 0
30.04.2004, 15:27
    #32504739
Динамическое условие отбора для поля со списком
тьфу, рекордСурсов
...
Рейтинг: 0 / 0
30.04.2004, 15:35
    #32504759
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
2 Вспомнил
Ты хотел сказать "когда НЕ надо"? :))
Мне так и не удалось заставить то, про что ты вспомнил, устойчиво работать в a>=2000.
Да и в 97-м это работать вроде бы не должно :)

Насколько я понял, при добавлении записи со значением, это значение должно пропадать из списка, и наоборот.
Мне кажется, вариант zz тут самый оптимальный.
И подмену recordsource делать не надо.
Хотя...
Его надо так переписать:

Код: plaintext
1.
2.
3.
4.
private sub form_current()
  me.LstCtrl.RowSource = "SELECT Name FROM MyTable RIGHT JOIN " & _
                          "SpisokVagonov as sv ON MyTable.Name = sv.Name " & _
                          "WHERE (MyTable.Name IS NULL) or sv.Name='" & me.LstCtrl & "'"
end sub
...
Рейтинг: 0 / 0
30.04.2004, 15:38
    #32504764
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
:(
Ерунду какую-то написал, про то, что "не надо делать"...
Конечно, в табличной или ленточной форме это будет работать криво, если связанный столбец <> видимый столбец...
...
Рейтинг: 0 / 0
30.04.2004, 16:11
    #32504821
вспомнил
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
если поле связанное - при пропадании уже введенных значений будут неприятные визуальные эффекты (незаполненные уже введенные данные). (Способ позволял менять источник, не пересчитывая/перерисовывая другие записи.)



2 Geo
По поводу 2к - специально перегнал туда тест :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Sub cmbSum_Enter()
Dim sSQL As String
    sSQL = "SELECT testS.Summ " & _
        " FROM testS " & _
        " WHERE (((testS.Summ)=[Forms]![testM_f]![testS_sf].[Form]![Summ]));"
    Me.cmbSum.RowSource = sSQL

End Sub

Private Sub cmbSum_Exit(Cancel As Integer)
Dim sSQL As String
    sSQL = "SELECT testS.Summ " & _
        " FROM testS "
    Me.cmbSum.RowSource = sSQL
End Sub


вроде работает (mdb). Но возможно, если запросы посложнее, да данных побольше - будут траблы. Не припомнишь, в чем трабл? Если в работе с сервером - могабыть всосать данные в массив, и формировать источники как строки из массива? (чтобы не было лишних общений с сервером)?
...
Рейтинг: 0 / 0
30.04.2004, 16:27
    #32504863
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
Совсем плохо жпрс работает...\r
\r
Вот:\r
/topic/36567\r
\r
ЗЫ. Скоро год, как я этот форум нашел :)
...
Рейтинг: 0 / 0
30.04.2004, 16:34
    #32504876
вспомнил
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
об чем и речь.
до этого я только в ленте делал с всплывающим из под поля (по воходу) списком.

кстати этих тем тут поднято с десяток. с периодичностью раз в месяц/неделю


но так и не понял, когда решение не работает в 2000. тест меня не разубедил.
...
Рейтинг: 0 / 0
30.04.2004, 16:46
    #32504897
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое условие отбора для поля со списком
авторно так и не понял, когда решение не работает в 2000. тест меня не разубедил.
Работать-то оно работает, а от "визуальных эффектов" избавиться я не смог.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Динамическое условие отбора для поля со списком / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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