![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 2.04.2014 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 4.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
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 Ten post edytował Morfina 24.04.2014, 12:00:11 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 2.04.2014 Ostrzeżenie: (0%) ![]() ![]() |
"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. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 4.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 1.05.2025 - 06:22 |