konto usunięte
Temat: Filtrowanie formularza ciągłego w VBA.
Witam,Zakładam nowy temat, gdyż problem dotyczy filtrowania w kodzie VBA.
Mam prostą bazę danych o poniższej budowie:
Utworzyłem formularz ciągły, dla którego źródłem danych jest tabela "Uwaga" W sekcji "Nagłówek formularza" umieściłem niezwiązane kontrolki służące do filtrowania tabeli"Uwaga":
- pole kombi "cboFilterNumber" pobierające dane (wiersze) z tabeli "Numery" (de facto są to po prostu numery 1...30),
- pole kombi "cboFilterColour" pobierające dane (wiersze) z tabeli "Rodzaj_uwagi",
- przycisk "Filtruj".
W sekcji "Stopka formularza" umieściłem drugi formularz ciągły, dla którego źródłem danych jest tabela "Poduwaga", związana z tabelą "Uwaga". Po co? Bo chciałem dla tabeli "Uwaga" pokazywać związane z nią rekordy tabeli "Poduwaga"...ale w sekcji "Szczegóły" formularza, gdzie pokazywane są rekordy tabeli "Uwaga" nie można w Accesie umieścić drugiej tabeli ciągłej...za to w "Stopce" jak najbardziej to przechodzi. Dzięki temu, jak kliknę na wybrany wiersz w sekcji "Szczegóły" to dla tabeli "Uwaga" w sekcji "Stopka" pokazują mi się wszystkie powiązane z nią rekordy tabeli "Poduwaga".
Tabelę "Uwaga" (czyli de facto sekcję "Szczegóły") filtruję w kodzie na następujący sposób (zdarzenie naciśnięcia przycisku "Filtruj"):
Dim strWhere As String
If Not IsNull(Me.cboFilterNumber) Then
strWhere = strWhere & "([NumerID] = " & Me.cboFilterNumber & ") AND "
End If
If Not IsNull(Me.cboFilterColour) Then
strWhere = strWhere & "([KolorID] = " & Me.cboFilterColour & ")"
End If
Me.Filter = strWhere
Me.FilterOn = True
Wszystko działa OK, wybieram dla przykładu z pola kombi "cboFilterColour" wartość pierwszą i formularz w sekcji "Szczegóły" wyświetla mi tylko te rekordy tabeli "Uwaga", dla których pole KolorID=1 i tak dalej...
Chciałem jednak rozszerzyć funkcjonalność tego wyszukiwania, czyli funkcjonalność tych niezwiązanych kontrolek w ten sposób, by, dla przykładu, po wybraniu ze wspomnianego powyżej pola kombi "cboFilterColour" wartości pierwszej, w sekcji "Szczegóły" pojawiły się te rekordy tabeli "Uwaga", dla których pole KolorID=1 (jak poprzednio) ale również wszystkie te rekordy tabeli "Uwaga", dla których w powiązanej tabeli "Poduwaga" pole "Rodzaj_poduwagi" (odpowiednik pola "KolorID" w tabeli nadrzędnej) ma także wartość 1.
Nie wiem, jak ten dodatkowy warunek rozwinąć w kodzie VBA. Z góry serdeczne dzięki za pomoc...R