![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 14.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzień dobry.
Mam taki mały problem z procedurą do pola kombi. W bazie mam formularz powiedzmy o nazwie "fw_X'. W tym formularzu wyświetla się w polu 'szczegóły' pod formularz stworzony na podstawie kwerendy "kw_dzialki". W nagłówku znajduje sie pole kombi o nazwie "Kombi4'. Mam prośbę o jakąś przykładową procedurę która pozwoli filtrować ten pod formularz za pomocą listy pola kombi. Ponieważ dopiero zaczynam prosił bym o cierpliwość i w miarę "łopatologiczne" omówienie co do czego służy. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
Wykorzystaj zdarzenie "Po aktualizacji" dla combobox'a - ustawi filtr dla podformy z danymi.
Kod Me.Filter = "[Fieldname] = " & Me.comboname DoCmd.RunCommand acCmdApplyFilterSort Coś podobnego tutaj Ten post edytował mar1aczi 14.03.2013, 11:26:58 -------------------- Szanuj innych czas! Kliknij
![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 14.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Czyli powinno to wyglądać tak:
Kod Private Sub Kombi4_AfterUpdate() ' Find the record that matches the control. Dim rs As Object Set rs = Me.Recordset.Clone ( tu jest błąd) rs.FindFirst "[KW_DANE_DO_WYJAZDU_DZIAŁKI podformularz3] = " & Str(Nz(Me![Kombi4], 0)) If Not rs.EOF Then Me.Bookmark = rs.Bookmark End Sub Ale chyba nie będzie to poprawne ponieważ wyskakuje mi błąd: Cytat Run-time error '91': Object variable or With block variable not set. albo takiego: Kod Private Sub Kombi4_AfterUpdate()
Me.Filter = "[KW_DANE_DO_WYJAZDU_DZIAŁKI podformularz3] = " & Me.Kombi4 DoCmd.RunCommand acCmdApplyFilterSort End Sub Ten post edytował SQ7RJH 14.03.2013, 11:51:38 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
Zamiast "Me" powinieneś użyć nazwy podformularza. Jak to nie problem to wystaw do pobrania "projekt".
-------------------- Szanuj innych czas! Kliknij
![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 14.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
... ok, ale w którym miejscu kodu?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
W tej linii
Kod Me.Filter = "[KW_DANE_DO_WYJAZDU_DZIAŁKI podformularz3] = " & Me.Kombi4 "Me.Filter" to ma być odwołanie do podformularza, bo jego zamierzasz przefiltrować, a "Me.Kombi4" ma odwoływać się do pola kombi na formularzu. Dodane: Proszę: http://www.access-programmers.co.uk/forums...amp;postcount=9 Ten post edytował mar1aczi 14.03.2013, 15:37:37 -------------------- Szanuj innych czas! Kliknij
![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 14.03.2013 Ostrzeżenie: (0%) ![]() ![]() |
Skorzystałem z tego przykładu który kolega wstawił. I po wstawieniu nazw swoich do kodu wyszło mi coś takiego:
Kod Private Sub Kombi4_AfterUpdate() Call RunFilter End Sub Private Sub kwDzialkiSubForrm_Load() Call RunFilter End Sub Private Sub RunFilter() Dim strFilter As String Dim bFilter As Boolean bFilter = False strFilter = "" If Nz(Me.Kombi4, "<All>") > "<All>" Then 'ShortCode' If Len(Nz(strFilter)) > 0 Then strFilter = strFilter & " And " strFilter = strFilter & "ShortCode = '" & Me.Kombi4 & "'" bFilter = True End If If bFilter Then Me.kwDzialkiSubForm.Form.OrderBy = "" Me.kwDzialkiSubForm.Form.Filter = strFilter Me.kwDzialkiSubForm.Form.FilterOn = True Else Me.kwDzialkiSubForm.Form.FilterOn = False End If End Sub Problem polega na tym, że w zasadzie instrukcja nic nie zmienia w wybranym pod formularzu „kwDzialkiSubForm” (pole kombi ma nazwę „Kombi4”) może coś pominąłem? ![]() ps. co zauwarzyłem w przykładzie (notabene działającym) a czego u mnie nie ma, to że ja stworzyłem podformularz z kwerendy za pomocą Formantu : "Podformularz/Raport", a w przykładzie jest osobny formularz z tabelką. Czy to może mieć znaczenie ![]() Ten post edytował SQ7RJH 15.03.2013, 12:15:42 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 731 Pomógł: 141 Dołączył: 9.05.2011 Skąd: śląskie Ostrzeżenie: (0%) ![]() ![]() |
Jeśli nie zmienia zawartości podformularza, to coś nie tak - jak piszesz.
Jaka wersja Accessa? Mając źródła jest gdzie spojrzeć. Ten post edytował mar1aczi 15.03.2013, 12:44:58 -------------------- Szanuj innych czas! Kliknij
![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 1.08.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dla potomnych
Private Sub kwDzialkiSubForrm_Load() w pozostałych jest błąd samo "r" lub odwrotnie sprawdzałem kod z powyżej podanej strony działa prawidłowo. Ten post edytował bubaguba 1.08.2013, 13:04:31 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.04.2025 - 05:19 |