Thread View: pl.comp.bazy-danych.msaccess
2 messages
2 total messages
Started by dzagorski
Mon, 27 Jul 2015 13:49
filtry na formularzu
Author: dzagorski
Date: Mon, 27 Jul 2015 13:49
Date: Mon, 27 Jul 2015 13:49
32 lines
2134 bytes
2134 bytes
Proszę o pomoc Mam tabelę: Tabela ID (Integer) Name(Varchar) IsGrupa1 (Integer, Default 0 CHECK Is Grupa1 0 OR 1) IsGrupa2 (Integer, Default 0 CHECK Is Grupa2 0 OR 1) IsGrupa3 (Integer, Default 0 CHECK Is Grupa1 0 OR 1) IsGrupa4 (Integer, Default 0 CHECK Is Grupa1 0 OR 1) i tak 10 grup oraz cała masa innych pól Na formularzu wstawiam pole kombi i pole listy: CBoxFilterGrupa - którego źródłem jest lista wartości (wpisana z palucha): 1;IsGrupa1; 2;IsGrupa2; 3;IsGrupa3; 4;ISGrupa4; itd. Dwie kolumny, związana kolumna 1 ListBox - źródło rekordów SELECT ID, Name, IsGrupa1, IsGrupa 2 ..... FROM Tabela Po aktualizacji CBoxFilterGrupa ma się filtrować lista wartości w ListBox oraz rekordy z tabeli i dalej po kliknięciu na konkretnej wartości w ListBox formularz ma przejść do konkretnego rekordu wg ID wybranego w polu ListBox. I utknąłem na CBoxFilterGrupa_AfterUpdate (). Jak zapisać poprawnie warunek filtrowania z wykorzystaniem SELECT CASE.
Re: filtry na formularzu
Author: md
Date: Tue, 28 Jul 2015 09:53
Date: Tue, 28 Jul 2015 09:53
63 lines
3095 bytes
3095 bytes
W dniu 27-07-2015 o 15:49, dzagorski@wp.pl pisze:
> Proszę o pomoc
>
>
> Mam tabelę: Tabela
> ID (Integer)
> Name(Varchar)
> IsGrupa1 (Integer, Default 0 CHECK Is Grupa1 0 OR 1)
> IsGrupa2 (Integer, Default 0 CHECK Is Grupa2 0 OR 1)
> IsGrupa3 (Integer, Default 0 CHECK Is Grupa1 0 OR 1)
> IsGrupa4 (Integer, Default 0 CHECK Is Grupa1 0 OR 1)
> i tak 10 grup oraz cała masa innych pól
>
>
>
> Na formularzu wstawiam pole kombi i pole listy:
> CBoxFilterGrupa - którego źródłem jest lista wartości (wpisana z palucha):
> 1;IsGrupa1;
> 2;IsGrupa2;
> 3;IsGrupa3;
> 4;ISGrupa4;
> itd.
> Dwie kolumny, związana kolumna 1
>
>
> ListBox - źródło rekordów
> SELECT ID, Name, IsGrupa1, IsGrupa 2 ..... FROM Tabela
>
>
> Po aktualizacji CBoxFilterGrupa ma się filtrować lista wartości w ListBox oraz rekordy z tabeli i dalej po kliknięciu na konkretnej wartości w ListBox formularz ma przejść do konkretnego rekordu wg ID wybranego w polu ListBox. I utknąłem na CBoxFilterGrupa_AfterUpdate (). Jak zapisać poprawnie warunek filtrowania z wykorzystaniem SELECT CASE.
>
>
>
>
w zdarzeniu po aktualizacji dla kombi ustaw
select case
case is=1
zap="Select Tabela* where Tabela.Isgrupa1=1"
case is=2
..................................................
zapytania oczywiście dla wszystkich przypadków
end select
forms!....ListBox.RowSource=zap
forms!....ListBox.requery
tu załatwiliśmy pole listy zawiera ono tylko rekordy z wybranej grupy
analogicznie postępujesz po wybraniu wartości na liście tylko zapytanie
wstawiasz do źródła formularza jako podstawę ograniczenia przyjmując id
rekordu
md
ps.
wg mnie masz nieprawidłowo skonstruowaną w tabelę Tabela
powinieneś rozbić ją na 2 tabele
Tabela - zawierającą wszystkie dane bez pól IsGrupa
Tabela1 - zawierająca pola ID i GrupaNr
ograniczy to rozmiar bazy i będzie zgodne przynajmniej z 2 postacią normalną
md
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads