Strona 1 z 1

Ustawianie pola obliczając inne pole

: sob lut 06, 2010 4:26 pm
autor: socek
Moja tabela w bazie (dla uproszczenia) wygląda tak:
- ID (INT)
- Cena (INT)
- Ilosc (INT)
- Suma (INT)
W formularzu mam możliwość edytowania wszystkich pól, ale chciałbym, aby pole "Suma" mi się automatycznie generowało z pół Ilosc*Cena. Da się tak zrobić?

Re: Ustawianie pola obliczając inne pole

: ndz lut 07, 2010 4:17 am
autor: mg2
Da się zrobić poprzez kwerendę:
SELECT "id" AS "id", "nazwa" AS "nazwa", "ilosc" AS "ilosc", "cena" AS "cena", "ilosc" * "cena" AS "wartosc" FROM "towar"
Nie trzeba wpisywać ręcznie można wyklikać przez kreatora a na końcu dodać pole "ilość" * "cena".
W formularzu zmieniasz ustawienia pola "wartość" na "wymagana wartość: NIE", "możliwość edycji: NIE"
(+ zał.)

PS
Napisałeś "suma" ja to nazwałem z rozpędu "wartość" (ilość * cena).
Plik *.odb spakowałem zipem bo forum ma blokadę ładowania załączników bazodanowych.

Re: Ustawianie pola obliczając inne pole

: ndz lut 07, 2010 7:07 pm
autor: Jan_J
forum ma blokadę ładowania załączników bazodanowych
Przez niedopatrzenie. Odblokowałem

Re: Ustawianie pola obliczając inne pole

: pt lut 12, 2010 2:43 pm
autor: kris_IV
Z tego co pamiętam to rozwiązywanie tego typu problemów przez kwerendy miało wiele niedoskonałości... Można to zrobić jakoś inaczej?

Re: Ustawianie pola obliczając inne pole

: ndz lut 14, 2010 4:15 pm
autor: mg2
"Inaczej" tzn. inaczej wewnątrz silnika bazy czy "inaczej" poza silnikiem?

Można wykonać działanie z poziomu makra:
- pobierz wartości z danego rekordu bazy
- przypisz je do zmiennych BASICa
- wykonaj działanie
- wynik przypisz do danego rekordu bazy

Tylko co wtedy z uaktualnianiem danych?

Wewnątrz silnika można próbować jeszcze poprzez tabelę wirtualną (nie sprawdzałem):

Kod: Zaznacz cały

 SELEC VIEW "tab_wirt" as SELECT "pole" FROM "tabela" 
Wydaje mi się, że przez kwerendę jest najprościej i najbardziej naturalnie.