napisz procedurę OnChange dla pierwszego Combo i w niej w zależności
od wyboru dokonanego przez Użyszkodnika, ustal rowsource drugiego
combo. polecam także by do momentu dokonania wyboru w piewszym combo,
drugie miało właściwość 'Visible' ustawioną na 'False'.
Można także w SQL który wypełnia wiersze drugiego Combo uzależnić
wybór rekordów od wyboru w pierwszym Combo - uzywając WHERE, np
SELECT [Czynnosc] FROM [tbl_Czynnosci] WHERE
((tbl_Czynnosci.ID_Czynnosci)=[Forms]![Nazwa_Twojego_Formularza]!
[Nazwa_Pierwszego_ComboBoxa])
nadal jednak polecam ukryć drugie combo do momentu dokonania wyboru w
pierwszym
pzdr
Szymon
Odp: Zdarzenie OnChange raczej do tego nie nadaje sie, poniewaz:
1) wykonuje sie przy kazdym nacisnieciu klawisza (co skutkuje kazdorazowym
przeliczeniem sie drugiej listy)
2) wpisujac z klawiatury wartosc, OnChange widzi stara wartosc Me!Kombi1
(dlatego wpisanie wartosci i opuszczenie pola spowoduje bledna
synchronizacje)
3) rozwiazaniem problemu z pkt. 2 jest uzycie Me!Kombi1.Text, ale wtedy
trudno wychwycic zdarzenie wycofania wpisu (uzytkownik moze wycofac wpis za
pomoca Esc, ctrl+Z, opcji w menu i jeszcze moze czegos). Powstaje sytuacja,
ze uzytkownik wycofal wpis, a nasze Kombi2 juz zostalo odswiezone i
mechanizm znow sie rozsynchronizowal.
Zdecydowanie lepiej wykorzystac zdarzenie przy wejsciu do druigiej listy.
(ew. powyzsze OnChange stosowac jedynie do wyczyszczenia drugiej listy)
K.P.
Tego Nie wedziałem Krzysztofie! - wielkie dzięki...
moze więc AfterUpdate?
pzdr
Szymon