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:


Obrazek


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

konto usunięte

Temat: Filtrowanie formularza ciągłego w VBA.

Nikt nie pomoże? R



Wyślij zaproszenie do