Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: ACCESS-filtrowanie za pomocą pól kombi w formularzu
Antek




Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005
ACCESS-filtrowanie za pomocą pól kombi w formularzu

Dlaczego to nie działa?
Krótki opis tego co muszę zrobić...
Zdarzenie filtrowania ma następić po kliknięciu na przycisk, który pobierze wartości z dwóch pól kombi, a następnie wyświetli wynik w podformularzu. Mój projekt do zdarzenia:

Private Sub cmdZastosuj_filtr_Click()
    Dim db As DAO.Database
  Dim rst As DAO.Recordset
Dim FilterRst As DAO.Recordset
 
  Set db = CurrentDb
Set rst = db.OpenRecordset("ACLI", dbOpenDynaset) 'nazwa tabeli - ACLI
  rst.Filter = "Kombi22 and Kombi24"
     
Set FilterRst = rst.OpenRecordset() 'i tutaj się zatrzymuje
    Do Until FilterRst.EOF
    Debug.Print FilterRst.Fields("Prenom_Nom" ).Value
    FilterRst.MoveNext
 
  Loop
rst.Close
FilterRst.Close
 
End Sub

Komunikat błędu:
Run-time error'3061';
Za mało parametrów. Oczekiwano 3.

W czym tkwi błąd tego programu? Co zrobić aby działało? Czekam na jakąś pomoc Będę ogromnie wdzięczny za każdą rade.

22-03-2005 21:43
Pokaż profil Antek  Wyślij email do Antek   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Jak dobrze rozumiem Kombi22 i Kombi 24 to nazwy pól kombi, a Ty masz się odwołać do pól tabeli!!!
Czy masz pole Kombi22 i Kombi24 w tabeli ACLI?

Podformularz ma źródło w postaci kwerendy lub tabeli.
Aby wyświetlić interesujące Cię dane w podformularzu musisz utworzyć takie zapytanie SQL, które odpowiednio pobierze rekordy.

zap = "SELECT *" & vbcr & _
    "FROM ACLI" & vbcr & _
    "WHERE (((ACLI.Pole1)= '" & Me.Kombi22 & "') AND ((ACLI.Pole2)= '" & Me.Kombi24 & "'));"
Me.Podformularz.Form.Recordsource = zap

Pole 1 i Pole2 to pola tabeli ACLI, które są źródłem pól kombi.
Jeśli w polach kombi przechowywane są wartości liczbowe, usuń ' (apostrofy) przed i za cudzysłowami.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

24-03-2005 19:53
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Antek




Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005

Dziękuje z góry za próbe pomocy
Zgadza się Kombi22 i Kombi24 to nazwy pól kombi, itd. Jednak nie mam pól Kombi22 i 24 w tabeli...Oba pola kombi powiązałem obecnie odpowiednio z kolumnami znajdującymi się w tabeli ACLI, jednak będę musiał je zmienić, aby pobierało mi z całkowicie innej tabeli ponieważ w polu kombi powtarzają się wartości, czyli wyświetla wszystkie rekordy jak leci w tej kolumnie.

Zrobiłem podformularz, który pobiera dane z tabeli ACLI i wyświetla mi ładnie wszystkie rekordy po kolei, jednak nie robi tego co powinien potem...
Może napiszę co już zrobiłem. Na początku w formularzu ACLI1 podformularz wyświetla wszystkie rekordy z tabeli ACLI a po wybraniu z pól kombi odpowiednich wartości (w jednym nazwiska a w drugim roku), następnie po kliknięciu na przycisk w podformularzu powinny wyświetlić się tylko te rekordy, które odpowiadają wybranym wcześniej ograniczeniom. Niestety tak się nie dzieje.

Mam pytanko. Czy moglibyśmy tak zrobić, że wyśle Tobie moją bazke a Ty po jej sprawdzeniu powiedziałbyś mi co źle zrobiłem? Wydaje mi się, iż tak będzie najlepiej, jeżeli nic nie masz przeciwko.
Co do tej książki to kupiłem już Programowanie w Accesie wyd. Mikom i troszke wydałem...jednak jeżeli nikt mi nie będzie w stanie pomóc to wiadomo, że tonący nawet brzytwy się chwyci.

25-03-2005 21:02
Pokaż profil Antek  Wyślij email do Antek   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Nie ma sprawy podsyłaj.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

26-03-2005 12:43
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Antek




Typ: neutral
Postów: 11
Zarejestrowany: Mar 2005

Wysłałem z konta mam nadzieje, że wszytko dotarło.

pozdrawiam
Patryk Antoszczuk

30-03-2005 13:07
Pokaż profil Antek  Wyślij email do Antek   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Dotarło...
Nie miałem czasu się tym zająć, ale już wysłałem działający formularz.

Pragnę tylko zauważyć, żeby to było wszem wiadome:
Formularze mają swoje źródło w postaci tabeli lub kwerendy, czyli należy to rozumieć tak, że każdy formularz jest powiązany ze źródłem (tabelą lub kwerendą) określonym poleceniem SQL!
Podstawiając w miejsce
Me.Recordsource = "jakieś_SQL"
uzyskamy coś w rodzaju filtra.


war = Nz(Me.Kombi22,""

'brak warunku = wszystkie rekordy
if war = "" then zap = "SELECT * FROM ACLI;"
'warunek = filtr
if war <> "" then zap = "SELECT * FROM ACLI WHERE(ACLI.ACLI)='" & war & "');"

Me.Recorrdsource = zap



_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

30-03-2005 20:21
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Wszystkich odpowiedzi: 5 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1