210 likes | 354 Views
Podzapytania – zapytania SELECT umieszczone w innym zapytaniu SELECT. 01 . podzapytanie z równością – podaj wszystkich pracowników zatrudniony w biurze przy ulicy Małej 63: SELECT Personel.pracownikNr, Personel.imię, Personel.nazwisko, Personel.stanowisko FROM Personel
E N D
Podzapytania – zapytania SELECT umieszczone w innym zapytaniu SELECT 01. podzapytanie z równością – podaj wszystkich pracowników zatrudniony w biurze przy ulicy Małej 63: SELECT Personel.pracownikNr, Personel.imię, Personel.nazwisko, Personel.stanowisko FROM Personel WHERE Personel.biuroNr=(SELECT biuroNr FROM Biuro WHERE ulica = "Mała 63"); 02. podzapytanie z funkcją agregującą – podaj wszystkich pracowników, których pensja jest wyższa od średniej; pokaż różnice między poszczególnymi pensjami a średnią: SELECT Personel.pracownikNr, Personel.imię, Personel.nazwisko, Personel.stanowisko, [pensja]-(SELECTAVG(pensja) FROM personel) AS różnica FROM Personel WHERE (((Personel.pensja)>(SELECTAVG(pensja) FROM Personel)));
03. podzapytania zagnieżdżone – powtórzenia właścicieli nieruchomości: SELECT Nieruchomość.właścicielNr, Nieruchomość.nieruchomośćNr, Nieruchomość.miasto, Nieruchomość.ulica FROM Nieruchomość WHERE (((Nieruchomość.właścicielNr) IN (SELECT [właścicielNr] FROM[Nieruchomość] AS Tmp GROUP BY [właścicielNr] HAVING Count(*)>1 ))) ORDER BY Nieruchomość.właścicielNr; 04. zastosowanieANY / SOME – znajdź wszystkich pracowników, którzy mają pensję wyższą niż przynajmniej jeden pracownik biura o numerze B003 SELECT Personel.pracownikNr, Personel.imię, Personel.nazwisko, Personel.stanowisko, Personel.pensja FROM Personel WHERE pensja > SOME (SELECT pensja FROM Personel WHEREbiuroNr="B003");
05. zastosowanieALL – znajdź wszystkich pracowników, którzy mają pensję wyższą niż pensja każdego z pracowników biura o numerze B003 SELECT Personel.pracownikNr, Personel.imię, Personel.nazwisko, Personel.stanowisko, Personel.pensja FROM Personel WHERE.pensja>ALL (SELECT pensja FROM Personel WHERE biuroNr="B003"); Kwerendy z odnośnikami 06. Wpisywanie danych pracowników z uzupełnieniem danych o Biurze: SELECT Personel.pracownikNr, Personel.imię, Personel.nazwisko, Personel.stanowisko, Personel.płeć, Personel.dataUr, Personel.pensja, Personel.biuroNr, Biuro.ulica, Biuro.miasto FROM Biuro INNERJOIN Personel ON Biuro.biuroNr = Personel.biuroNr;
Pułapki w Access: 07 – Podaj nazwiska, stanowiska oraz wysokości pensji pracowników z biura o wpisanym numerze Problem maski: \B000 wówczas zapisywane dane do tabeli 002 003 004 itd. Powinna być maska w tabeli: \B000;0;_ Aby litera B była zapisywana razem z pozostałymi cyframi. 08 – informacje o nieruchomościach nadzorowanych przez pracownika Inna sytuacja gdzie kryteria mogą być wpisywane również małymi literami.
Właściwości sprzężenia w kwerendzie: 09 – Obiekt Biuro nie pasuje do obiektu Personel (właściwości sprzężenia w kwerendzie nr 2) SELECT Biuro.biuroNr, Biuro.miasto FROM Biuro LEFT JOIN Personel ON Biuro.biuroNr = Personel.biuroNr WHERE (((Personel.biuroNr) Is Null));
10a – liczba pracowników każdego z biur oraz ich sumaryczna pensja Uwaga Funkcje agregujące nie uwzględniają w obliczeniach rekordów zawierających wartości puste (Null). Również jeśli w wyrażeniu używany jest operator arytmetyczny (+, -, *, /) i jedno z pól w wyrażeniu ma wartość Null, wynik całego wyrażenia będzie Null. Można przekształcić wartość Null w zero używając np.. funkcji Nzlub IIf.
Przykłady pracy z wartościami Null za pomocą pól obliczeniowych: Wyrażenie: BieżącyKraj: IIf(IsNull([Kraj]); " "; [Kraj]) Używa funkcji IIf i IsNull do wyświetlania pustego ciągu znaków w polu "BieżącyKraj", jeśli wartość w polu "Kraj" jest Null. Jeśli nie, wyświetlana jest wartość z pola "Kraj". CzasDostawy: IIf(IsNull([DataWymagana] - [DataWysyłki]); "Znajdź brakującą datę"; [DataWymagana] - [DataWysyłki]) Używa funkcji IIf i IsNull do wyświetlania w polu "CzasDostawy" komunikatu "Znajdź brakującą datę" jeśli wartość w polu "DataWymagana" lub "DataWysyłki" jest wartością Null. Jeśli nie, wyświetlana jest różnica tych wartości.
SprzedażPółroczna: Nz([Sprz1Kwart];0) + Nz([Sprz2Kwart];0) W polu "SprzedażPółroczna" wyświetla sumę wartości w polach opisujących sprzedaż w pierwszym i drugim kwartale, wykorzystując funkcję Nz do przekształcania wartości Null w zero. IIf(IsNull([CenaJednostkowa]); 0 ;[CenaJednostkowa]) Zmienia wartość Null na zero (0) w polu "CenaJednostkowa". 10b – liczba pracowników każdego z biur oraz ich sumaryczna pensja Baza: Null.mdb
Inne przykłady operacji wykonywanych na wartościach tekstowych w polach obliczeniowych:
Wyrażenia wprowadzane są w komórce Pole w siatce projektu kwerendy. Left(wyr; n)Right(wyr; n)Mid(wyr; start; n) Argument wyr może być nazwą pola (ujętą w nawiasy) lub wyrażeniem tekstowym; Argument n oznacza liczbę znaków, które mają zostać wyodrębnione, a argument start określa położenie pierwszego wyodrębnianego znaku. 11-pierwszy znak z numeru nieruchomości itd.
Przykłady wyrażeń, w których jako kryteria zastosowano wartości tekstowe 12a – nieruchomości przy ulicach od A do K 12b – właściciele nieruchomości o numerach końcowych 46 lub 87 12c – miejscowości o nazwach dłuższych niż 5 znaków
Przykłady zmieniania i obliczania dat w polach obliczeniowych: Year(date)Month(date)Day(date)Hour(time)Minute(time)Second(time) Date(): 2005-04-28 Now(): 2005-04-28 13:07:52 Time(): 13:07:53 13-operacje na datach w polach obliczeniowych
Operacje na datach wykorzystywane w kryteriach: 14a-nieruchomości których wynajęcie kończy się w ciągu 3 miesięcy 14b- nieruchomości których wynajęcie skończyło się więcej niż 30 dni temu 14c-nieruchomości, których wynajęcie skończyło się w 2004 roku
15a-nieruchomości których wynajęcie kończy się w tym kwartale 15b- nieruchomości których wynajęcie kończy się ostatniego dnia miesiąca 15c-nieruchomości których wynajęcie kończy się w bieżącym roku i miesiącu
Opis funkcji dotyczących dat: DateDiff(część_daty, data1, data2[, firstdayofweek[, firstweekofyear]]) DatePart(część_daty, data[,firstdayofweek[, firstweekofyear]]) DateAdd (część_daty, liczba, data) Weekday(data, [firstdayofweek])
firstdayofweek argument: firstweekofyear argument:
Użytkownik „Biuro” 4 (zarząd biura): • Podaj informacje o wynajęciach nieruchomości zarejestrowanych w danym biurze, których termin końcowy upłynie w następnym miesiącu. • Podaj całkowitą liczbę umów najmu zawartych w biurach w Łomży na okres krótszy niż jeden rok.
Kreowanie formularzy: Kontrolowanie czasu wyświetlania: 1-Start - zamykany po 5 sekundach Private Sub Form_Open(Cancel As Integer) Me.TimerInterval = 5000 End Sub Private Sub Form_Timer() DoCmd.Close acForm, Me.Name DoCmd.OpenForm "2-Przełączający hiperłącza" DoCmd.OpenForm "3-Przełączający formularze" End Sub
Formularze przełączane przy użyciu hiperłączy do przekazywania fokusu 2-Przełączający hiperłącza Dla etykiety w właściwościach Formatu ustawiamy adres hiperłącza Przełączanie przy użyciu przycisków i kodu w VBA 3-Przełączający formularze z zamykaniem pozostawionych
4 – korzystanie z kreatorów i formatowanie warunkowe 5 – podformularze 6 – formularz wyszukujący do kwerendy z pola tekstowego 7 – Personel wybierany bezpośrednio z pola kombi