powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "Каскадное изменение данных в полях со списком"
39 сообщений из 39, показаны все 2 страниц
"Каскадное изменение данных в полях со списком"
    #32187689
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Владимир Саныч, Senin Viktor и пр. "зубрам" аксеса в целом и этого форума в частности...
Мой вопрос можно сформулировать так: есть форма с двумя полями со списами. В одном поле выбираем (например) предприятие, а в другом - список работников, ограниченный, соответственно, по принадлежности к данному предприятию.
В одной из книг г-на Гетца и Ко есть раздел, начинающийся со слов, названных мною в теме.
Раздел хороший, слова очень правильные. Все работает. До тех пор, пока юзер не захочет перейти в режим таблицы. После этого при любой попытке сделать выборку в поле работников, с остальными записями таблицы в столбце "работник" происходит бог знает что (вернее, все поля записей, в которых упомянуто предприятие, отличное от текущего, временно, пока полю не будет возвращен полный набор значений, очищаются - но пользователь от этого впадает в глубокую задумчивость до тех пор, пока его мысли не натыкаются на номер моего телефона).
В 97-м аксесе, после 2-х requery, 3-х recalc'ов и 4-х ударов в бубен (шаманский, хехе :) проблема обходилась. В 2000 и ХР - не могу.
М.б. кто-нить сталкивался с такой штукой, и знает панацею. Кто подскажет, чес-слово, не поленюсь в ближайшие выходные приехать в любую точку столицы нашей родины и поставить пиво.
С уважением, уже почти отчаявшийся, Георгий.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187730
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я это только сегодня тоже обошел след.образом:

по событию GotFocus комбобокса, где сотрудники должны выбираться, подменяю RowSource этого бокса уже в усеченном виде (по имеющемуся значению в боксе предприятия обрезаю список). Пока доволен.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187746
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не тормоз. Я не тормоз.
Действительно, GotFocus, а не активация, вход и прочие.
Спасибо большое.
Куда везти пиво?
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187748
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пиво учителям моим отвези, Лоху, Виктору, Санычу в Израиль.

Я их должник большой :-)
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187756
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Им я тока спасибо сказать могу отсюда.
Не поеду я туда в ближайшие пару лет - во-первых, они коды задом-наперед пишут %)...
Но все равно, помог(ла) ты мне очень!
Спасибо большое.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187766
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лифчик - существительное мужского рода :-)
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187843
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покушал. Попробовал из примера перенести полученный результат в программу. Вырвал последние три волоса не скажу из какого места.
Итак, новая загадка. Все работает, до тех пор пока все три таблицы (предприятия, работники, и оперативные данные) находятся непосредственно в том же файле, что и форма. Если они связаны с другой БД (тако же аксес 2000), результат - опять нишиша. :(
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187865
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вот, пока меня не было, пиво заработал...
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187868
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
P.S.

> Не поеду я туда в ближайшие пару лет - во-первых, они коды задом-наперед пишут %)...

На всякий случай: Лох и Виктор - не тут, и они коды пишут задом назад.

End P.S.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187873
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы с Виктором задом пишем? Оригинально-с
Видимо это показатель виртуозности. Хендрикс на гитаре зубами играл, а мы жопой на кнопки жмем. Так наверное быстрее получается - кнопок сразу много нажимается.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187879
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хехе )) Не хотел обидеть. Это почти цитата из вашего диалога в одном из сообщений: "ENDIF q=2 ELSE q=1 THEN..." Вот )))
А вообче, пиво заработано не совсем. В приложении к проге нифига не вышло :( - см. предыдущее мое сообщение.
Еще раз спасибо тем, кто всю эту пургу читают. Надеюсь, и у меня когда-нить достанет времени и терпения помогать страждущим сотоварищам.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187887
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх! Надо было вовремя забирать пиво :-(
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187890
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты помоги лучше добить задачу. Пиво - не вопрос. Млин. Уже сил нет. Мир потеряет хорошего программера в моем лице с коротким некрологом: очередной сюицид в нашем районе...
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187895
Фотография Лифчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, это уже действительно тонкий вопрос, к зубрам. Я меньше года осваиваюсь. Гипотезу только могу высказать, что если таблицы и формы отдельно, то происходит несанкционированный Requery, который и портит всю колонку. Тебе от этого, конечно, не легче, но суицид рекомендую до утра отложить хотя бы
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187896
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох, я его уже неделю оттягиваю. Понял, что в хелпе нету нишиша, купил пару книжек (одна, оказывается, от пресловутого Гетца), с тем же результатом. Сказал клиентам: ждите, м.б. решиться (я их и так балую). И вот решаю...
Кстати, если хочешь, могу прогу слить (там много интересного, несмотря на то, что этот форум и вообще людей, которые мне по аксесу могут подсказать, я нашел недавно (с гордостью)). Во 2.х rar'е весит около 500 кб.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187898
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если они связаны с другой БД (тако же аксес 2000), результат - опять нишиша. :(
Странные вещи ты говоришь. Не должно так быть. Различия между связанной таблицей и обычной, конечно, есть, но здесь сказываться не должны.
В 97-м такая конструкция со связанными таблицами работала, завтра на работе проверю в 2002-м
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187899
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если обозначиш какой-нибудь майл, могу отправить 2 mdb из 3-х таблиц и одной формы в сумме. Не работает.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187902
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что там Гетц пишет, задача какая то уж больно простая, в чем там могут быть проблемы без Гетца и не поймеш.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187905
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Книжка называется "Сборник рецептов" издательства "Питер" 2003 г.
На последних страницах, в разделе про ADP (что это такое, я, чес-слово, не имею ни малейшего понятия) авторы, в том числе Гетц пишет (цитирую): "На ФОРМЕ имеется набор полей со списками, поддерживающих каскадное изменение данных, причем данные для них поставляются параметризованными сохраненными процедурами..." и т.д. Про таблицы ни слова. Процедуры мне не нужны, поскольку, судя по предложенной им реализации, в моем случае это не отличается от простой передачи параметров запросу или урезке оного при входе/получении фокуса/клике мышью/нажатии на клавишу/двойном ударе в бубен на требуемом поле.
И-эх-хх...
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32187912
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз порыл программы на 97-м.
В дополнении к условию захотел сказать, что если поле № 1 пустое, то поле 2 д.б. с полным списком. Для этого в 97 я писал так:

sub поле2_enter()
If me.Поле1 > 1 then
me.Поле2.rowSource="запрос1" '(! - именно запрос, с инструкцией sql почему-то тоже глючило, насколько я помню, дюже форма была перегружена);
else
me.поле2.RowSource="запрос2"
endif
endsub

а на выход поле делал полным, неважно, запросом ли, или инструкцией.
Все работало.
Дошло до того, что (во избежание неправильности перевода) я вручную создавал в 2000-м 3 аналогичные таблицы и форму, писал буковка в буковку код... Нет. Нет в жизни счастья. Все напрасно...
Эх... Обожруся и помру молодой... :(
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188061
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo
В 2002-м все работает как часы. И в одной базе, и в разных базах.
Если хочешь - могу выслать 2 mdb из 4-х таблиц и одной формы в сумме
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188075
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Высылайте Бд, просто интересно посмотреть:
Tosty@yandex.ru

Просто интерсно посмотреть, задачу постараюсь решить, по ветке не совсем понял в чём дело...
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188121
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я обходил это по - другому

рисовал два контрола текстовое поле - привязанное к данным и рядом с ним комбобокс от которого по ширине оставалась только стрелка

не забудь принудительно назначить ширину списка.

вот и все собственно
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188184
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лох
Очень хочу! :)
Шли(те)

2АлексейК
А вот это уже очень интересно. С другой стороны, в режиме таблицы текстовое поле и комбобокс юзверя смогут растащить в разные стороны. Не совсем то, что нужно, но хорошо.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188189
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: plaintext
1.
Я не знаю, о чем вы говорите, но ехать надо.
        Старый анекдот.


Я не знаю, о чем вы говорите, но я решал бы эту задачу так: два контрола, лежащих один на другом. Один - текстбокс, который показывает текст из привязанной через join таблицы. Второй - комбо, как и задумано. Во всех записях виден текстбокс, и при переходе с записи на запись ничего не очищается. А комбо спрятан позади него, от него торчит наружу только стрелочка, и если на нее нажать, то комбо открывается.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188192
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а насчет того что в режиме таблицы могут растащить - изменение размеров можно и код сделать который не будет давать растаскивать что неположено )).
если не ошибаюсь был пример на VBVET
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188193
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 АлексейК:

Мир-дружба. А я опоздал.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188197
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч
мир-дружба
выскочки не дают догнаться до юбилея? )))
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188205
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Файл с зип архивом повреждён, интересует файл с db1.
А решение уже подсказали...
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188206
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Во-первых, выскочкой оказался я. Во-вторых, не хочется въехать в юбилей на трепе.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188223
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
санычу
иногда хочется красиво код оформить, скриншотов накидать а пока сделаешь - смотришь уже и топик закрыт ))
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188401
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, похоже придется делать именно так. И следить за изменение размеров/положения столбцов в таблице. Жалко. :( В основной форме таких полей штуки три, а она и так довольно перегружена. Придется ковырять на предмет быстродействия.
Ну ничего, на то они и выходные, чтоб работать ))
Еще раз спасибо всем.
2АлексейК
А вопрос о пиве остается в силе :)
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188402
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 GEO
дык какие проблемы? - я в Москве если что ))
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32188405
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свисни на мыл, куда везти. Завтра или в след. субботу будет ))
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32189702
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел. М.б. кому-нибудь пригодится:
Гетц писал:
При использовании логически связанных полей со списками в области данных ленточной формы
(и таблицы - прим. меня) могут возникнуть проблемы. Свободные поля выводят одно и то же
значение во всех записях, а присоединенные поля загадочным образом очищаются при потере фокуса.
Это происходит в том случае, если в зависимом поле со списком отображается столбец, который не
является присоединенным. <...> Access не может вывести данные, не принадлежащие текущему
источнику записей, если они не хранятся в присоединенном столбце.



Не знал, не знал... Поэтому в свое время от '97 добился-таки устойчивой работы (таблицы связаны с другим
.mdb, присоединенный (первый) столбец не отображается - ширина = 0):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Private Sub Field1_Enter()
  Me.Field1.RowSource =  "QueryEnter" 
End Sub

Private Sub Field1_Exit(Cancel As Integer)
  Me.Field1.RowSource =  "QueryExit" 
End Sub

, где QueryEnter:
Код: plaintext
1.
2.
3.
4.
SELECT tDrivers.idDriver, tDrivers.NameDriver
FROM tDrivers 
WHERE ((tDrivers.idCar=Forms![tOrders]![tlOrders].[Form].[NumCar])
OR Forms![tOrders]![tlOrders].[Form].[NumCar] Is Null) ORDER BY tDrivers.NameDriver;

, QueryExit (он же сохранен в источнике данных поля Field1):
Код: plaintext
1.
SELECT tDrivers.idDriver, tDrivers.NameDriver FROM tDrivers;


Чувствую, что и в 2000/ХР можно провернуть что-нибудь подобное, но не знаю как.
Кстати, неадекватно ведущую себя таблицу выпускать на суд пользователей не стал - зело неудобно.

Поэтому, как говорил один мой товарищ, "за неимением горнишной, иметь будем дворника" :) - т.е. пойдем другим путем.
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32565273
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имел дворника (В случае ленточной формы, с возможностью переключения в таблицу). Акс 97.
Обнаружились еще особенности:

В cmb_Exit добавил (вернее в вызываемую ReSetcmbSQL1)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Function ReSetcmbSQL1() As Boolean
On Error Resume Next
Dim sSQl As String
    sSQl = "...." 'че надо
    Me.cmb.RowSource = sSQl
' -- устраням баг со сдвигом позиций
 
Dim me_Dirty As Boolean

    If Me.cmb & "" <> "" Then
        me_Dirty = Me.Dirty
        Me.cmb = Me.cmb 'Баг с абсолют позишн при смене источника
        Me.Dirty = me_Dirty 'восстанавливаем "сохраненность"
        'Me.cmb.Requery - тут нельзя - перерисовка в других записях
    End If
' -- конец бага
 
    ReSetcmbSQL1= err= 0 
End Function

еще одна проблема нашлась при активации формы, если фокус в контроле
(перерисовка отсутствующих значений)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Sub Form_Activate()
Dim ctl As Control, ctla As Control
On Error Resume Next
    Set ctl = Me.Controls("cmb")
    Set ctla = Me.ActiveControl
    If ctla.Name <> ctl.Name Then 'If ctlA Is ctl Then
    Else
        ReSetcmbSQL0 'перерисовка остальных записей
        ReSetcmbSQL1 'возврат списка в нужное
    End If
    Set ctl = Nothing: Set ctla = Nothing
End Sub
где в ReSetcmbSQL0 (установка полного списка):
Код: plaintext
1.
2.
3.
4.
...
    Me.cmb.RowSource = scmbSQL0
    Me.cmb.Requery
    DoEvents 'откладываем OnEnter до перерисовки - важно для Activate
End Function
Ну и проблемсы с перерисовкой закрываемых выпадающем списком полей в табличном режиме после закрытия выпадающего списка. В 2000 схожие траблы, но чуть иная перерисовка при активации.

Так что поковырявшись, решил с дворником не иметь... (в моем частном случае). (т.е. вернулся к подмене контролов (в ленте) по входу. Что тоже не фонтан.)
Но как возможность наваять междумордие в неком стиле...
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32744204
mift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно как обходить проблему в ленточной форме.

А что делать в случае с табличной? Вообще есть приемлемое решение?
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32747641
mift
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo
Приемлемого решения для табличных форм нету?
...
Рейтинг: 0 / 0
"Каскадное изменение данных в полях со списком"
    #32747646
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что выше написано, относиться и к ленточным, и к табличным формам.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "Каскадное изменение данных в полях со списком"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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