AdamN pisze: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:
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
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:
w którym będziesz rejestrował czy rekord reprezentuje kobietę lub nie. Następnie tworzymy nową kwerendę:
Kod: Zaznacz cały
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.