Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Access _ Wstawianie kolumny z kwerendy do tabeli.

Napisany przez: Kurdtt 22.04.2014, 17:04:43

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.

Napisany przez: Morfina 24.04.2014, 11:57:46

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

Napisany przez: Kurdtt 24.04.2014, 19:35:36

"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.

Napisany przez: Morfina 24.04.2014, 19:57:18

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)