Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wstawianie kolumny z kwerendy do tabeli.
Forum PHP.pl > Forum > Bazy danych > Access
Kurdtt
Witam serdecznie,

Posiadam bazę danych "wypożyczalnia samochodów" w celu edukacyjnym, kolumnę "DNI" w tabeli "WYPOŻYCZENIA", która oznacza ilość dni na którą ktoś wypożycza samochód oraz kolumnę "KOSZT_DNIA", która ustala z góry cenę kosztu wypożyczenia samochodu na jeden dzień z tabeli "SAMOCHODY".

Teraz pytanie - jak do tabeli "WYPOŻYCZENIA" wstawić kolumnę "KOSZT", by liczył automatycznie iloczyn dni i kosztu dnia. Nie mam pojęcia, jak wstawiać te dane bezpośrednio, dlatego stwierdziłem, że zrobię kwerendę która mnoży i całą kolumnę bym wstawiał do tabeli. Pytanie - jak?

Dziękuję za odpowiedź,
Pozdrawiam.
Morfina
Witam,
Kolego Kurdtt, jeżeli dobrze interpretuję sytuacje to problemem jest wstawienie do tabeli dodatkowej kolumny, która to będzie iloczynem pól z nią powiązanych w innej tabeli.

Rozwiązanie 1.
Jeżeli nie potrzebujesz tych wartości przechowywać w dokładnie w tej tabeli to stwórz odpowiednią kwerendę, która będzie wyglądać dokładnie tak samo jak tabela pierwotna a dodatkowo będzie posiadać pole obliczeniowe o które Ci chodzi.

Rozwiązanie 2.
Jeżeli potrzebujesz wartość tą przechowywać w tej tabeli powinieneś wykorzystać wiedzę z Rozwiązania 1 i na tej podstawie stworzyć kwerendę aktualizującą. Wadą jest to, że wymaga ona odpalenia po każdej aktualizacji ww. Tabeli. ( można to zautomatyzować poprzez VBA)

Rozwiązanie 3.
Najtrudniejsze ale działające dokładnie tak jak tego potrzebujesz. Migracja bazy do SQL-a a następnie wykorzystanie mechanizmu wyzwalacza (ang. trigger). Po każdej aktualizacji trigger będzi ?odpalany? i wprowadzi wartość do kolumny Koszt.

Pozdrawiam
Morfina
Kurdtt
"Najtrudniejsze ale działające dokładnie tak jak tego potrzebujesz. Migracja bazy do SQL-a a następnie wykorzystanie mechanizmu wyzwalacza (ang. trigger). Po każdej aktualizacji trigger będzi ?odpalany? i wprowadzi wartość do kolumny Koszt."

Fajna sprawa, nie powiem, pytanie jak zrobić coś takiego w Accessie. Kwerenda aktualizująca jest fajna, tyle, że nie mogę nigdzie znaleźć makra na
uruchamianie jej zaraz po wpisaniu rekordu, natomiast o triggerach nigdzie nie mogę znaleźć jakichkolwiek informacji do Accessa 2013.
Morfina
Witam,

Access jako "mniej poważna" baza danych nie posiada trigger-ów.

Mam bardzo mało informacji nt. twojej bazy więc ciężko mi zająć stanowisko jak to powinieneś realizować.

Zakładając, że baza została wykonana zgodnie z arkanami tworzenia baz dla Accessa zapewne dane wprowadzasz za pomocą formularza. W tym formularzu jest pole które uzupełniasz jako ostatnie w kolejności dokonując nowego wpisu ( tworząc nowy rekord ). W właściwościach dla tego pola w zakładce zdarzenia dla rekordu po aktualizacji, zagnieżdżasz macro, które uruchamia kwerendę aktualizującą .

Pozdrawiam
Morfina
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.