Jak zbudować dynamiczne wyszukiwanie z użyciem listy oraz dynamicznego SQL-a. Link do pliku: 1drv.ms/u/s!Auwiauu8pC5lj9gHDVJpKZ4Gadk1PA?e=35ALMk
Пікірлер: 15
@ryszardswiatek30872 жыл бұрын
Bardzo dobra lekcja
@alekx3039 ай бұрын
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.
@msaccess9 ай бұрын
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
@bzzmaja2 жыл бұрын
Panie Tomaszu, jak się z panem skontaktować?
@ryszardswiatek30872 жыл бұрын
Pytanie jak zliczyć numery na danej ulicy
@msaccess2 жыл бұрын
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
@ryszardswiatek30872 жыл бұрын
Dzięki za proste rozwiązanie nie doceniłem właściwości kwerend , przechodzę do następnych lekcji Pozdrawiam
@ukaszchwiendacz53702 жыл бұрын
Witam co znaczy Sub Szukaj_Na_Liscie() I skąd to sie wzięło
@tywonek2 жыл бұрын
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()
@ukaszchwiendacz53702 жыл бұрын
@@tywonek a czy za Sub Szukaj_Na_Liscie() może być wpisane cokolwiek czy nie ?
@msaccess2 жыл бұрын
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.
@ukaszchwiendacz53702 жыл бұрын
@@msaccess Powie Pan jakiem kodem zrobić enter tak żeby tekst był pod innym a nie obok siebie
@msaccess2 жыл бұрын
Jasne najlepiej połączyć String z vbNewLine: "Jakiś tekst" & vbNewLine & "inny tekst'