Strona 1 z 1

płeć i forma męska/żeńska w formularzu

PostNapisane: Śr lut 19, 2014 1:42 pm
przez AdamN
Witam!
Chciałbym przygotować bazę danych na podstawie których będą potem wystawiane zaświadczenia. Owe zaświadczenia chciałbym drukować z odpowiednio przygotowanych formularzy.
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ą?
Z góry dziękuję za pomoc.

Re: płeć i forma męska/żeńska w formularzu

PostNapisane: Cz lut 20, 2014 9:58 pm
przez belstar
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.

Re: płeć i forma męska/żeńska w formularzu

PostNapisane: So lut 22, 2014 3:24 pm
przez Jan_J
belstar napisał(a):trzeba wprowadzić nowe pole do tabeli:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
Kobieta    TAK/NIE
Z punktu widzenie tzw. poprawności politycznej bezpieczniejsze chyba byłoby pole
Kod: Zaznacz cały   Rozszerz widokZwiń widok
Plec varchar(1) M/F
Nie do końca poważnie ...