AdamN napisał(a):Jak to zrobić, żeby przy wprowadzaniu danych wybierać płeć osoby a potem w zależności od tego wyboru odpowiednie wyrażenia w formularzu automatycznie przyjmowały formę męską lub żeńską?
Ad. Pole w tabeli (druga cześć odpowiedzi)
Załóżmy że masz prostą bazę z jedną tabelą o nazwie Znajomi, jej struktura przedstawia się następująco:
- Kod: Zaznacz cały Rozszerz widokZwiń widok
ID autopole
Imie tekst
Nazwisko tekst
W tabeli posiadasz ileś tam rekordów, i rozróżnienie kobiet od mężczyzn w tym przypadku można zrealizować za pomocą kwerendy która wykorzysta właściwość j.polskiego. Zagadka: podaj trzy imiona męskie kończące się na A. Takich imion jest 3 z małym kawałkiem (wyjątkiem - JAN MARIA ROKITA).
Przykład:
- Kod: Zaznacz cały Rozszerz widokZwiń widok
SELECT "Imie", "Nazwisko", CASEWHEN( ASCII( RIGHT( "Znajomi"."Imie", 1 ) ) = 97, 'PANI', 'PAN' ) As "Zwrot" FROM "Znajomi"
Wykorzystano trzy funkcje SQL:
1. RIGHT - pobiera ona ostatnią literę imienia
2.
ASCII - Zwraca ona kod
Ascii litery pobranej przez funkcję RIGHT
3. CASEWHEN - Zwraca wyrażenie (PAN lub PANI) w zależności od porównania (czy kod
ascii jest liczbą 97 - litera a.
W dzisiejszych czasach gdy przepływ ludności jest duży (emigranci i imigranci) powyższe rozwiązanie może być niewystarczające (przykład - trafi się klientka o imieniu Kathryn i całe rozwiązanie o kant stołu...). Dlatego trzeba wprowadzić nowe pole do tabeli:
- Kod: Zaznacz cały Rozszerz widokZwiń widok
Kobieta TAK/NIE
w którym będziesz rejestrował czy rekord reprezentuje kobietę lub nie. Następnie tworzymy nową kwerendę:
- Kod: Zaznacz cały Rozszerz widokZwiń widok
SELECT "Imie", "Nazwisko", "Kobieta", CASEWHEN( "Znajomi"."Kobieta", 'Pani', 'Pan' ) AS "Zwrot" FROM "Znajomi"
Wykorzystano funkcje SQL CASEWHEN która sprawdza zawartość pola Kobieta i wyświetla odpowiedni wynik (PAN lub PANI). Oczywiści zwracany zwrot możesz zmienić na co tylko chcesz.
Teraz wystarczy zbudować odpowiedni formularz (polecam wykorzystanie
filtra) z polem pobierające dane z wyniku kwerendy i zaświadczenia gotowe. Na temat filtrowania danych w formularzu, poszukaj na forum, gdzieś wstawiłem przykład.
Rozwiązanie zagadki: arutnewanoB, abanraB, amsoK.