Dynamiczne wyszukiwanie na liście w MS Access

  Рет қаралды 4,906

MS Access w praktyce

2 жыл бұрын

Jak zbudować dynamiczne wyszukiwanie z użyciem listy oraz dynamicznego SQL-a.
Link do pliku: 1drv.ms/u/s!Auwiauu8pC5lj9gHDVJpKZ4Gadk1PA?e=35ALMk

Пікірлер: 15
@ryszardswiatek3087
@ryszardswiatek3087 2 жыл бұрын
Bardzo dobra lekcja
@alekx303
@alekx303 9 ай бұрын
Witam Proszę o pomoc jak skonstruować kwerendy by z tabeli gdzie są daty sprzedaży urządzeń i tabeli gdzie są daty przeglądów tych urządzeń, wylistowała urządzenia z datami sprzedaży , jeżeli dane urządzenie nie miało jeszcze przeglądu, a od sprzedaży minęło, już 23 miesiące, i datami OSTATNICH przeglądów pozostałych urządzeń od których upłynęło więcej niż 23 miesiące. Czyli jak urządzenie kupione było w 2015r, a były przeglądy w 2017, 2019, 2021, to pokaże tylko ten przegląd z 2021r od którego upłynęło 23 miesiace, Każde urządzenie ma numer unikatowy.
@msaccess
@msaccess 9 ай бұрын
Witam. Zawsze możemy napisać zapytanie w SQL używające podzapytań do rozwiązania problemów takich jak ten jednak to wymaga już znajomości SQL. Aby rozwiązać to zadanie w samym Accessie możemy zrobić zbudować 2 kwerendy. 1 z nich powinna być kwerendą grupującą która grupuje przeglądy według klucza i pokazuje maksymalną datę danego przeglądu. Znajdą się w niej tylko urządzenia, które miały przegląd i wyświetli się ostatnia data takiego przeglądu. Nie do końca zrozumiałem czy 23 miesiące miały upłynąć od daty ostatniego przeglądu czy od daty zakupu. Założę, że jest to data zakupu od której po 23 miesiącach trzeba dokonać przeglądu. 2 kwerenda odwołuję się do danych sprzedaży gdzie warunkiem jest data różnica w miesiącach która upłynęła od daty sprzedaży do aktualnego dnia (do użycia funkcja DateDiff()). Najlepiej dodać kolumnę obliczeniową która na podstawie wspomnianej funkcji zwróci np. wartość True jeśli warunek 23 miesięcy jest spełniony. Kiedy mamy już kwerendę 2 pokazującą wszystkie sprzedane produkty z informacją czy od dnia sprzedaży minęło 23 miesiące (lub więcej) możemy utworzyć 3 kwerendę, która łączy 1 i 2. Podstawową tabelą jest kwerenda 2 natomiast kwerenda 1 dołączona jest na zasadzie sprzężenia left join. Dzięki temu widzimy całą sprzedaż plus informację od terminie 23 miesięcy i możemy dołączyć dane z 1 kwerendy, która pokazuje ostatnie przeglądy. Kiedy to wszystko mamy w jednym widoku kwerendy możemy napisać wyrażenie, które zwraca nam to co chcemy np. z użyciem funkcji iif. Oczywiście zawsze możemy tworzyć bardziej skomplikowane kwerendy, które pozwolą na zmniejszenie liczby obiektów jednak warto zacząć od prostszego podejścia a potem usprawniać. Podpowiem, że da się to napisać w jednej kwerendzie z wykorzystaniem podzapytań i aliasów tabel. Jeśli napotkasz problemy podeślij proszę bazę na maila tomek@msaccess.pl to zrobię takie zapytanie dla Ciebie. Pozdrawiam
@bzzmaja
@bzzmaja 2 жыл бұрын
Panie Tomaszu, jak się z panem skontaktować?
@ryszardswiatek3087
@ryszardswiatek3087 2 жыл бұрын
Pytanie jak zliczyć numery na danej ulicy
@msaccess
@msaccess 2 жыл бұрын
Witam. W tym przypadku najlepiej policzyć je od razu tworząc tabelę pomocniczą. To zawsze będzie szybsze niż liczenie w locie. W sytuacji np kiedy chcielibyśmy policzyć ilość adresów dla wszystkich pasujących ulic można również użyć sumy z policzonej już kolumny w tabeli pomocniczej adresów. Załączam przykład 1drv.ms/u/s!Auwiauu8pC5lj9xbI2kEVTDx4y1gew?e=RD6Tbl Pozdrawiam tomek
@ryszardswiatek3087
@ryszardswiatek3087 2 жыл бұрын
Dzięki za proste rozwiązanie nie doceniłem właściwości kwerend , przechodzę do następnych lekcji Pozdrawiam
@ukaszchwiendacz5370
@ukaszchwiendacz5370 2 жыл бұрын
Witam co znaczy Sub Szukaj_Na_Liscie() I skąd to sie wzięło
@tywonek
@tywonek 2 жыл бұрын
To jest procedura która można wywołać Sub nazwa_procedury() Jakiś kod do wykonania End Sub Potem możemy napisać: Call nazwa_procedury()
@ukaszchwiendacz5370
@ukaszchwiendacz5370 2 жыл бұрын
@@tywonek a czy za Sub Szukaj_Na_Liscie() może być wpisane cokolwiek czy nie ?
@msaccess
@msaccess 2 жыл бұрын
Nazwa procedury może być dowolna ale wtedy konsekwentnie używany tej innej. W tym przykładzie użyłem takiej nazwy ale to tylko przykład procedury mogą mieć dowolne nazwy.
@ukaszchwiendacz5370
@ukaszchwiendacz5370 2 жыл бұрын
@@msaccess Powie Pan jakiem kodem zrobić enter tak żeby tekst był pod innym a nie obok siebie
@msaccess
@msaccess 2 жыл бұрын
Jasne najlepiej połączyć String z vbNewLine: "Jakiś tekst" & vbNewLine & "inny tekst'
Slow motion boy #shorts by Tsuriki Show
00:14
Tsuriki Show
Рет қаралды 2,6 МЛН
路飞被小孩吓到了#海贼王#路飞
00:41
路飞与唐舞桐
Рет қаралды 75 МЛН
Самый Молодой Актёр Без Оскара 😂
00:13
Глеб Рандалайнен
Рет қаралды 2,8 МЛН
Looks realistic #tiktok
00:22
Анастасия Тарасова
Рет қаралды 103 МЛН
Slow motion boy #shorts by Tsuriki Show
00:14
Tsuriki Show
Рет қаралды 2,6 МЛН