background image

 

www.chomikuj.pl/MarWag987 

 

Przeszukiwanie bazy w celu znalezienia rekordów spełniających założone warunki odbywa 
się przez uzupełnianie siatki Kryteriów w projekcie kwerendy, lub ręczne pisanie polecenia 
SQL.  
Warunki dla różnych typów pól. 
 
DATA/GODZINA. Jeśli w kryteriach ustawiony zostanie dowolny warunek logiczny, np. 
data uradzenia osób powinna być późniejsza niż 1 stycznia 1950 roku-wtedy w kolumnie Data 
Urodzenia w wierszu kryteria wpisuje się formułę '>1950-01-01' lub '>#1950-01-01#'. Znaki # 
są dopisywane automatycznie dla prostych warunków, dla bardziej skomplikowanych 
użytkownik musi o nich pamiętać.  
 
TEKST. Gdy przeszukujemy bazę wg pól tekstowych należy w wierszu kryteria wpisać 
żą

dane słowo np.:'kowalski' lub "kowalski". Znaki "(cudzysłowu) są dopisywane 

automatycznie dla prostych warunków, dla bardziej skomplikowanych użytkownik musi o 
nich pamiętać. W przypadku wybierania rekordów spełniających kryterium tekstowe możemy 
ograniczyć liczbę wpisywanych liter przez zastosowanie funkcji LIKE, która powoduję że 
kwerenda nie szuka całkowicie zgodnego wzorca, lecz porównuje wpisaną część wyrazu lub 
pojedyncze litery i znajduje odpowiednie rekordy.  
Oto przykład: LIKE "k*" -wyszukane zostaną rekordy, w których pierwsza litera nazwiska 
jest równa 'k'. Zapis w SQL:  
SELECT Osoby.ID, Osoby.Imie, Osoby.Nazwisko, Osoby.[Data urodzenia], Osoby.rolnik 
FROM Osoby 
WHERE (((Osoby.Nazwisko) Like "k*")); 
 
LICZBA. Ten typ Ola nie posiada wymagań jeśli chodzi o dopisywanie znaków specjalnych 
pomagających odróżnić wzorzec warunku od składni pytania. Język wydawania warunków 
logicznych jest oparty na stosowaniu nawiasów wskazujących kolejność obliczeń i algebry na 
zbiorach. 
Oto przykład (zastosowany na polu powierzchni działki): '>0,4352' - zapis oznacza, że 
szukane są rekordy(działki), które posiadają powierzchnię większą niż 0,4352 ha; 
' >0,4352 and <0,8762' - zapis oznacza, że szukane są rekordy(działki), które posiadają 
powierzchnię w przedziale pomiędzy 0,4352 a <0,8762 ha, można uzyskać ten sam efekt za 
pomocą polecenia 'BETWEEN 0,4352 and 0,8762' 
 
LOGICZNE (Tak/Nie, Prawda/Fałsz). W polu tego typu wybieramy rekordy z zaznaczonym 
polek TAK lub PRAWDA przez wpisanie w polu kryteriów wyboru wartości '-1', natomiast 
wartość rekordów NIE lub FAŁSZ znajdujemy przez wpisanie w pole kryteriów wartości '0'. 
 
Przykład kwerendy w widoku projekt, i odpowiadająca jej składnia w języku SQL 
SELECT Osoby.ID, Osoby.Imie, Osoby.Nazwisko, Osoby.[Data urodzenia], Osoby.rolnik, 
Działki.Powierzchnia 
FROM Osoby INNER JOIN Działki ON Osoby.ID = Działki.ID 
WHERE (((Osoby.Imie)="Anna") AND ((Osoby.Nazwisko) Like "k*") AND ((Osoby.[Data 
urodzenia])>#1/1/1950#) AND ((Osoby.rolnik)=-1) AND ((Działki.Powierzchnia) Between 
0.5 And 0.94)); 
 
 
 
 

background image

 

www.chomikuj.pl/MarWag987 

 

GRUPOWANIE WYRAŻEŃ. Jeżeli w kwerendzie umieścimy wszystkie warunki w jednym 
wierszu kryteriów - będzie oznaczało to, że rekordy będą musiały spełniać wszystkie warunki 
jednocześnie. Będzie to część wspólna zbiorów, z których każdy z nich będzie zbiorem 
rekordów spełniających poszczególne kryteria.  
Jeżeli w kwerendzie umieścimy warunki w wielu wierszach kryteriów wyboru, będzie 
oznaczać to wyszukiwanie rekordów, które spełniają przynajmniej jeden z warunkow 
logicznych, będą one (warunki logiczne) połączone operatorem 'OR'.  
Oto przykład takiego zapisu w widoku projektu kwerendy i odpowiadająca mu składnia 
języka SQL 
SELECT Osoby.ID, Osoby.Imie, Osoby.Nazwisko, Osoby.[Data urodzenia], Osoby.rolnik, 
Działki.Powierzchnia 
FROM Osoby INNER JOIN Działki ON Osoby.ID = Działki.ID 
WHERE (((Osoby.[Data urodzenia])>#1/1/1950#) AND ((Działki.Powierzchnia) Between 0.5 
And 0.94)) OR (((Osoby.Nazwisko) Like "k*")) OR (((Osoby.Imie)="Anna")) OR 
(((Osoby.rolnik)=-1)); 
 
 
 
 
 
Kilka przykładów zastosowania funkcji LIKE: 
symbole wieloznaczne Accessa: 
* - dopasowuje dowolny ciąg znaków w danym polu, 
? - dopasowuje dowolny pojedynczy znak w danycm polu, 
[] - określają zakres znaków (również wartości liczbowe, 
! - wyklucza znak z zakresu określonego za pomocą [] 
 
 
Like "G*" - zwróci rekordy których przeszukiwane pole zaczyna się na literę "G" 
Not Like "G*" - zwróci rekordy których przeszukiwane pole nie zaczyna się na literę "G" 
Like "[A-G]*" - zwróci rekordy których przeszukiwane pole zaczyna się na litery 
A,B,C,D,E,F lub G 
Not Like "[A-G]*" - zwróci rekordy których przeszukiwane pole nie zaczyna się na litery 
A,B,C,D,E,F lub G 
Like "[A-G,T-Z]*" - zwróci rekordy których przeszukiwane pole zaczyna się na litery 
A,B,C,D,E,F,G,T,U,W,V,Z 
Like "an*" - zwróci rekordy których przeszukiwane pole zaczyna się od "an" 
Like "*an*" - zwróci rekordy których przeszukiwane pole w dowolnej pozycji zawiera "an" 
Like "b?c*" - zwróci rekordy których przeszukiwane pole na pierwszej pozycji zawiera literę 
"b" a na trzeciej "c" 
Like "c[a-c]*" - zwróci rekordy których przeszukiwane pole na pierwszej pozycji zawiera 
literę "c" a na drugiej ma literę "a", "b" lub "c" 
Like "c[!a-c]*" - zwróci rekordy których przeszukiwane pole na pierwszej pozycji zawiera 
literę "c" a na drugiej nie ma litery"a", "b" ani "c"