Formularz uzupełniający wiele tabel

Odpowiedz Nowy wątek
2015-05-11 09:57
0

Mam ogromny problem z tworzeniem formularzy. Aby go zobrazować wstawię tutaj screen'a moich relacji w bazie.
relacje.png

Jeśli chodzi o samą strukturę bazy to proszę nie pisać że coś jest bez sensu bo niestety taka musi zostać (nie będę pisał dlaczego ale prosił bym to uszanować). Chce utworzyć formularz dodawania auta i tutaj pojawia się problem ponieważ jak chcę dodać jakieś auto z marką jaką jeszcze nie wprowadziłem do bazy to pojawia się problem...

Co chciałbym osiągnąć. Najlepiej by było jakbym mógł za pomocą jednego formularza dodać np. model, markę czy też inne dane do tabel które mają relacje z auta.

Mam też drugi problem. Mam liste i teraz po wybraniu z niej chciałbym żeby formularz przeszedł do wybranego rekordu

Prowadzący wspominał coś podformularzach ale nie wiem jak by to miało działać...

edytowany 1x, ostatnio: shimizu, 2015-05-11 16:51

Pozostało 580 znaków

2015-05-14 15:33
0

Jak się upierasz, że chcesz to mieć w jednym formularzu to da się to zrobić jednak nie będzie to zbyt eleganckie (ani niekiedy wydajne). Załóżmy tabelę Marka dajesz tam Unique constraint na nazwę. Podobnie robisz z tabelą Model. Teraz robisz sobie procedurę w bazie np DodajAuto. W niej jako parametry dodajesz pola, które są w tabeli Auta (nie chce mi się ich wszystkich wymieniać wiec sobie je sam przeklepiesz), a oprócz tego robisz dwa dodatkowe parametry pNazwaModelu i pNazwaMarki. Następnie w pierwszym kroku procedury weryfikujesz parametr pNazwaMarki pod kątem występowania tej nazwy w tabeli Marki jak jest to super zwracasz identyfikator marki do zmiennej i używasz w kolejnych krokach lub jak nie ma robisz insert i zwracasz identyfikator nowego rekordu. Podobnie robisz z modelem ponieważ tak czy siak masz już identyfikator marki to robisz drugą zmienną i przypisujesz do niej idModelu istniejącego lub gdy go nie ma robisz insert do tabeli Modele i zwracasz identyfikator nowego modelu ...

Osobiście nie polecam ale skoro tak musi być ... no to innego wyjścia nie widzę.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0