napisał: affix postów: 7
umieszczony: 7 grudnia 2007 02:24
|
|
OK JUŻ WIEM
=DCount("*";"qry_pilkarze_last_sezon";"(ostatni_sezon = '2007/08' AND runda ='j') OR (ostatni_sezon = '2007' AND runda ='j') OR (ostatni_sezon = '2007' AND runda is null)")
JESZCZE RAZ SERDECZNE DZIĘKI !!!
---
Pozdrawiam
Marek Walczak
affix@poczta.onet.pl
http://affix.republika.pl |
|
napisał: affix postów: 7
umieszczony: 7 grudnia 2007 02:13
|
|
DZIĘKI !!!! DZIAŁA !!!
Mam jeszcze jedną prośbę
Przy żródle formantu
=DCount("*";"qry_pilkarze_last_sezon";"ostatni_sezon = '2007/08' OR (ostatni_sezon = '2007' AND runda ='j')")
zwraca mi tylko rekordy:
ostatni_sezon = '2007/08'
a nie zwraca mi rekordów:
ostatni_sezon = '2007' AND runda ='j'
GDZIE ROBIĘ BŁĄD ??? |
|
napisał: jalamas postów: 316
umieszczony: 7 grudnia 2007 01:22
|
|
Select cały zestaw już masz przecież .
Użyj wobec tego funkcji agregacji domeny DCount, dokładny opis w okienku VBA pod tytułem : DCount Function
W konstruktorze wyrażeń w dziale Funkcje wbudowane/Agregat domeny.
Na przykład (zakładka Dane/Źródło formantu)
- dla 1-dnej kontrolki TexBox : =DCount("*";"kw_podformularza";"idp>100")
- dla kontrolki 2-giej przykładowy warunek =DCount("*";"kw_podformularza";"idp>200")
itd...warunki oczywiście napisz swoje.
Gdzie kw_podformularza to nazwa kwerendy na jakiej oparty jest podformularz (jeśli nie jest zapisana, zapisz ją) |
|
napisał: affix postów: 7
umieszczony: 6 grudnia 2007 19:08
|
|
Dzieki za odpowiedz, ale...
Ja juz mam oprogramowane przyciski i nie o to mi chodzi. Podkreslam - jestem laikiem, samoukiem, pomimo tego, ze pracuje w branzy IT (ale jako Koordynator Handlowcow a nie programista).
O co mi chodzi.
Mam prywatna baze danych dotyczaca klubu, ktoremu kibicuje (nie szowinistycznie). Zawiera informacje typu: wszyscy zawodnicy i trenerzy w historii klubu, dane doyczace kariery pilkarzy przeciwnika, statystyki z meczow , etc.
Mam formularz - nazwijmy go frm_FORM - z podformularzem - nazwijmy go frm_SBFORM. Kwerenda, ktora jest zrodlem formularz w widoku SQL prezentuje sie nastepujaco:
SELECT Last(tbl_Kluby.NazwaKlubu) AS klub, Last(tbl_Zawodnicy_kariera.IDZawKariera) AS IDkariera, tbl_Zawodnicy.IDzawodnika AS IDzawodnika, tbl_Zawodnicy.Nazwisko, tbl_Zawodnicy.Imie AS imie, Last(tbl_Sezony.Sezony) AS ostatni_sezon, Last(tbl_Sezony.IdSezonu) AS OstatniOfIdSezonu, Last(tbl_Zawodnicy_kariera.runda) AS runda, tbl_Zawodnicy.uwagi, Last(tbl_Zawodnicy_kariera.uwagi) AS [sezon uwagi]
FROM tbl_Zawodnicy INNER JOIN (tbl_Kluby INNER JOIN (tbl_Zawodnicy_kariera INNER JOIN tbl_Sezony ON tbl_Zawodnicy_kariera.IDsezonu = tbl_Sezony.IdSezonu) ON tbl_Kluby.IDklubu = tbl_Zawodnicy_kariera.IDklubu) ON tbl_Zawodnicy.IDzawodnika = tbl_Zawodnicy_kariera.IDzawodnika
GROUP BY tbl_Zawodnicy.IDzawodnika, tbl_Zawodnicy.Nazwisko, tbl_Zawodnicy.Imie, tbl_Zawodnicy.uwagi
ORDER BY Last(tbl_Kluby.NazwaKlubu), tbl_Zawodnicy.Nazwisko, tbl_Zawodnicy.Imie;
W formularzu sa przyciski (odpowiednio do sezonow: 2007/08, 2006/07, 2005/06 itd.), ktore filtruja mi podformularz i po wcisnieciu wyswietlaja mi rekordy wedlug zadanych kryteriow okreslonych w VBA np.:
Private Sub cmd_0708_Click()
Me.frm_SBFORM.Form.Filter = "ostatni_sezon = '2007/08' OR
(ostatni_sezon = '2007' AND runda ='j')"
Me.frm_SBFORM.Form.FilterOn = True
End Sub
Mnie chodzi o to aby pod kazdym takim przyciskiem byl umieszczony textbox, ktory mi wyswietli liczbe rekordow ktore zostalyby wyswietlone po wcisnieciu filtra.
Czyli... Laduje sie formularz z podformularzem i wyswietla rekordy wg zadanego filtra (powyzszy kod VBA). Ale jednoczesnie w textboxach umieszczonych pod kazdym przyciskiem widze ilosc rekordow jaka wyswietlilaby sie, gdybym wcisnal dany przycisk. Jestem "w rekordach" 2007/08 ale w textbox'ach widze ile mi sie wyswietli (chodzi o posumowanie) rekordow jak wcisne 2006/07, 2005/06 itd.
W innej grupie dyskusyjnej dostalem odpowiedz:
Ja bym zrobił SELECT aby uzyskac cały zestaw, po czym
w tle select count(*) dla każdego filtra.
I pewnie bym to zrobil gdybum wiedzial - jak. Niestety moje pytanie pozostalo bez odpowiedzi.
Pozdrawiam
Marek Walczak
affix@poczta.onet.pl
http://affix.republika.pl |
|
napisał: jalamas postów: 316
umieszczony: 6 grudnia 2007 14:17
|
|
W podformularzu, w stopce umieść kontrolkę TextBox, o nazwie na przykład txtCount
- usuń etykietę
- ustaw na przeźroczysty, tło jak tło formularza, kolor tekstu też
- przechodzenie tabulatorami na nie
- włączony na tak
- zablokowany na tak
- lewy, górny 0
- wymiary minimum lub 0
- dane: =Policz(*)
W formularzu umieść kontrolkę TextBox, o nazwie na przykład txtile
- przechodzenie tabulatorami na nie
- włączony na tak
- zablokowany na tak
W kodzie procedury zdarzenia przycisku, (ja nadaję swoje nazwy dla kontrolki podformularza (DaneSB)
Private Sub cmdfiltr_Click()
With Me.DaneSB.Form
.Filter = "idP>" & CStr(Nz(Me.txtjak, 0))
.FilterOn = True
.txtCount.Requery
End With
End Sub
To 1-dna z metod.
Przy czym, nie wiem czy się domyślam, ale napisałeś:
Cytat:frm_SBFORM
pytam wobec tego jak nazywa się u Ciebie kontrolka podformularza oraz jak się nazywa sam podformularz w jego okienku projektu, ponieważ podejrzewam, że użyłeś nazwy klasy formularza, a nie nazwy kontrolki ?
Oraz patrząc na Twój filtr, dlatego go tutaj nie zamodelowałam, a użyłam swojego przykładu, śmiem przypuszczać, że Twoje pola nie są typu data/godzina.
Jeśli mam słuszność, to nie jest to poprawne.
Pola takie powinny być data/godzina, a filtr oparty o wyrażenia Year Month. |
|
napisał: affix postów: 7
umieszczony: 5 grudnia 2007 17:11
|
|
Witam Szacowne Grono.
Mam w Accessie formularz frm_FORM. Umiescilem w nim poformularz frm_SUBFORM oraz kilka przyciskow, ktore filtruja podformularz wedlug zadanych parametrow. Zrodlem formularza jest kwerenda qry_QUERY. Podformularz
wyswietla zawodnikow (IDzawodnik) oraz ostatni sezon gry z nazwa klubu oraz runda, np.
KOWALSKI Jan - KLUB - 2007/08 jesien (IDzawodnika, IDklubu, sezon, runda)
Pola filtrowane to sezon i runda.
Mam przyciski: 2007/08, 2006/07, 2005/06 itd. Po kliknieciu filtruje mi podformularz wg filtra umieszczonego w VBA, np:
Private Sub cmd_0708_Click()
Me.frm_SBFORM.Form.Filter = "ostatni_sezon = '2007/08' OR
(ostatni_sezon = '2007' AND runda ='j')"
Me.frm_SBFORM.Form.FilterOn = True
End Sub
Chce w formularzu glownym umiescic pod kazdym przyciskiem textbox w ktorym bylaby wyswietlona ilosc rekordow po zastosowaniu filtra. Czyli w momencie, kiedy formularz sie otwiera i wyswietla wszystkie rekordy w kazdym textbox'ie wyswietlilaby sie liczba rekordow i od razu widzialbym (bez koniecznosci wcisniecia przycisku) ile jest rekordow przy zalozonym filtrze.
Czy ktos jest mi w stanie pomoc?
----
Pozdrawiam
Marek Walczak
affix@poczta.onet.pl |
|
wstecz 1 dalej wszystkich stron: 1
|
|