Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 9
  • 2.0K
Mam bazę danych "zamówienia", w której mam Sub-Form odpowiedzialny za pozycję na danym zamówieniu.
Wszystko działa dobrze, ale muszę dodać funkcję Kategoria, a potem Pod-kategoria.
1. Jak zrobić, by zależnie od tego, co wybiorę w pierwszym polu, odpowiednie wartości pokazywały się w drugim?
2.  Dodatkowo chcę mieć Sub-Form jako Continuous Form, więc dla każdej pozycji w zamówieniu muszę mieć możliwość wybrania innych wartości w combobox.
Uczestnik szkolenia
  • Zapytał
  • @ Uczestnik szkolenia | 22.01.2014

Odpowiedź (1)

  • 12

Witam.

Dla uproszczenia całej sytuacji przedstawmy jak ma wyglądać sytuacja:

Mamy formularz z podformularzem, gdzie  możliwa do wybrania jest kategoria, a na podstawie wybranej wartości kategoria chcemy ograniczyć wybór w polu podkategoria.

 

 

Dla uproszczenia nie będziemy tworzyć relacyjnie połączonych tabel kategorii i podkategorii tylko umieścimy te informacje razem (może nie jest to eleganckie rozwiązanie, ale na pewno szybsze do wykonania).

Zaczniemy od stworzenia tabeli oraz uzupełnienia kategorii i podkategorii.

 

 

Następnie na bazie tej tabeli stworzymy kwerendę, która będzie źródłem dla pola z listą kategorii.

Należy pamiętać, aby włączyć sumy dla uzyskania unikatów i ew. posortować wyniki, należy zawsze pamiętać o nadaniu odpowiedniej nazwy.

 

 

Otrzymaną w ten sposób kwerendę należy teraz umieścić jako źródło w polu na formularzu. Ponieważ ma to być pole typu combobox, należy je najpierw na takie skonwertować.

Możemy to zrobić będąc w widoku projektu formularza klikając na niego prawym przyciskiem myszy.

 

 

Następnie we właściwościach należy ustawić jako "źródło wierszy" wcześniej stworzoną kwerendę.

 

 

Następnie należy wykonać kwerendę, która wybierze listę podkategorii, ale ponieważ ma ona zależeć od kategorii musi to być kwerenda, która pobierze parametr z formularza.

Do kwerendy potrzebne jest pole kategorii, ale należy pamiętać, aby odznaczyć jego pokazywanie, gdyż będzie nam służyło jako parametr, następnie należy kliknąć prawym przyciskiem myszy na kryteriach i wybrać Konstruuj.

 

 

Należy wskazać lokalizację pola kategoria na podformularzu i wskazać jego wartość.

UWAGA !!! W polskiej wersji MS Accessa 2010 kreator nieprawidłowo wstawia 2 kropki. Należy to poprawić i zostawić jedną.

 

 

Następnym krokiem jest powrót do formularza i tak jak poprzednio konwersja na pole kombi i ustawienia jako źródła wierszy kwerendy.

 

 

Jako ostatni krok, aby po wybraniu kategorii pole podkategoria ładowało nową listę należy ponownie pobrać jego źródło.

Ponieważ chcemy, aby działo się to za każdym razem, gdy wybierana jest kategoria skorzystamy ze zdarzeń tego właśnie pola.

 

 

I za pomocą "konstruktora kodu" dodamy takie dwie linijki:


Me.Podkategoria.Value = Null

Me.Podkategoria.Requery

 

Tak powinna wyglądać procedura:

 

 

Jako efekt otrzymamy pole kombi, którego wartość będzie zależna od wyboru dokonanego w innym polu kombi.

 

 

 

Pozdrawiam.
Tomasz Grabowski.

Załączniki

  • accdb

    Pole_Kombi_Tomasz_Grabowski.ac... ( 1M )
  • Odpowiedział
  • @ | 22.01.2014
  • TRENER MODERATOR ALTKOM AKADEMII