prośba o pomoc - formularz z relacyjnymi tabelami i bieżąca

Użytkowanie programu bazodanowego
gatto
Posty: 3
Rejestracja: czw lut 02, 2012 11:45 pm

prośba o pomoc - formularz z relacyjnymi tabelami i bieżąca

Post autor: gatto »

Mam do was ogromną prośbę. Od jakiegoś czasu próbuję stworzyć relacyjną bazę danych z formularzami ale nie potrafię przeskoczyć dwóch rzeczy
1. mam tabelę z osobami i drugą z jakąś tam oceną tych osób - jedna osoba może mieć wiele ocen no i teraz mając już wypełnioną tabelę z osobami chciałabym mieć taki formularz by u góry była rozwijana lista z osobami z pierwszej tabeli a po wybraniu osoby automatycznie id_osoby z tabeli osób przepisywało się do id_osoby w tabeli ocen a resztę wypełniałoby się ręcznie
próbowałam kombinować na wiele sposobów z formularzem i podformularzem ale coś mi nie wychodzi
2. chciałabym by przy wypełnianiu formularza datę można było edytować ale by domyślnie po otworzeniu formularza data była bieżąca tj z danego dnia, wiem, że to trzeba zrobić przez makro ale kompletnie nie wiem jak to zrobić, znalazłam w sieci coś takiego
"ALTER TABLE "YourTable" ALTER COLUMN "DateField" DEFAULT CURRENT_DATE;
ALTER TABLE "YourTable" ALTER COLUMN "TimeField" DEFAULT CURRENT_TIME;
ALTER TABLE "YourTable" ALTER COLUMN "DateTimeField" DEFAULT CURRENT_TIMESTAMP;"
ale jak próbuję to wpisać w zdarzenia to wywala mi błędy i nie chce działać
Dodam, że na samym sql się w miarę znam (pracowałam z mysql i php) ale openoffice, szczególnie makra to dla mnie dość nowy temat a muszę do pracy zrobić taką bazę.
Pomożecie????
OpenOffice 3.1 na Windows Vista
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: prośba o pomoc - formularz z relacyjnymi tabelami i bież

Post autor: Jan_J »

gatto pisze:[...]znalazłam w sieci coś takiego
"ALTER TABLE "YourTable" ALTER COLUMN "DateField" DEFAULT CURRENT_DATE;
ALTER TABLE "YourTable" ALTER COLUMN "TimeField" DEFAULT CURRENT_TIME;
ALTER TABLE "YourTable" ALTER COLUMN "DateTimeField" DEFAULT CURRENT_TIMESTAMP;"
ale jak próbuję to wpisać w zdarzenia to wywala mi błędy i nie chce działać
Mi też.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Arghil
Posty: 112
Rejestracja: sob lip 04, 2009 7:39 pm
Kontakt:

Re: prośba o pomoc - formularz z relacyjnymi tabelami i bież

Post autor: Arghil »

Poprawna składnia jest ciut inna*):

Kod: Zaznacz cały

ALTER TABLE "Nazwa tabeli" ALTER COLUMN "Nazwa kolumny" SET DEFAULT "wartość domyślna"};
czyli powinno raczej być tak:

Kod: Zaznacz cały

ALTER TABLE "YourTable" ALTER COLUMN "DateField" SET DEFAULT CURRENT_DATE;
ALTER TABLE "YourTable" ALTER COLUMN "TimeField" SET DEFAULT CURRENT_TIME;
ALTER TABLE "YourTable" ALTER COLUMN "DateTimeField" SET DEFAULT CURRENT_TIMESTAMP;
*) - Wątek w tym temacie na OO en
LibreOffice || Microsoft Office
gatto
Posty: 3
Rejestracja: czw lut 02, 2012 11:45 pm

Re: prośba o pomoc - formularz z relacyjnymi tabelami i bież

Post autor: gatto »

Dzięki za pomoc ale nie za bardzo jednak sobie z tym radzę :(

jak konkretnie - od początku do końca powinno wyglądać makro przypisujące aktualną datę do pola?
OpenOffice 3.1 na Windows Vista
Jan_J
Posty: 4576
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: prośba o pomoc - formularz z relacyjnymi tabelami i bież

Post autor: Jan_J »

Do pola? to we właściwościach formularza. Powyższa składnia ALTER TABLE deklaruje kolumnę data, w której przy wstawianiu nowego rekordu pojawi się data bieżąca, o ile wartość tej kolumny nie zostanie określona w żądaniu INSERT.

Rzecz w tym, że wizualizacja danych w formularzu następuje PRZED wstawieniem rekordu, więc siłą rzeczy tej daty jeszcze NIE MA w tabeli, zatem nie da się jej pobrać i wyświetlić.

Ja bym definiował pole formularza typu data, z bieżącą datą ustawianą jako wartość domyślna, a potem przepisywał ją do nowego rekordu. W takiej sytuacji klauzula DEFAULT current_date jest niepotrzebna (choć z drugiej strony nic nie szkodzi).
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ