Języki programowania 1 Kreator form Piotr Górczyński 20/09/2003 1 Wstęp Kreator form danych służy do stworzenia formy, która umożliwia edycję danych. Programista definiuje tylko źródło danych i typ formy, a kreator tworzy graficzną formę oraz procedury jej obsługi. 20/09/2003 2 Krok 1 - Dodanie formy do projektu 1. Z menu Project wybieramy polecenie Add form 2. Z okna dialogowego, które się pojawi wybieramy z zakładki New ikonę VB Data Form Wizard i naciskamy Open 20/09/2003 3 Krok 2 - Skorzystanie z gotowego profilu Stworzone formy danych można zapisać w profilu. Ponieważ dodajemy formę po raz pierwszy, to jeszcze nie mamy żadnych form danych zapisanych, więc naciskamy przycisk Next. 20/09/2003 4 Krok 3 - Sposób definicji połączenia z bazą danych Access Połączenie będzie zdefiniowane za pomocą ścieżki do pliku bazy danych MS Access Remote (ODBC) Połączenie będzie zdefiniowane za pomocą Data Source Name (DSN) wskazującego bazę danych zdefiniowanych w źródłach ODBC. Dzięki temu forma może być podłączona do dowolnej bazy danych, która została zdefiniowana w ODBC. 20/09/2003 5 Krok 4 - Wybranie bazy danych W zależności od sposobu definicji połączenia wybranego w kroku poprzednim: Access Pokaże się okno dialogowe, w którym musimy wpisać lub wskazać za pomocą przycisku Browse ścieżkę i plik bazy MS Access UWAGA: Połączenie może nie działać dla nowych wersji MS Access. Należy wtedy zdefiniować źródło w ODBC (patrz prezentacja JP1-Laczenie z baza danych.ppt). Remote (ODBC) Pokaże się okno dialogowe, w którym musimy wybrać już zdefiniowane DSN, lub zdefiniować źródło ODBC wpisując odpowiednie informacje do pól tekstowych Database, Driver i Server. 20/09/2003 6 Krok 5 - Nazwa i wygląd formy oraz sposób zaprogramowania procedur jej obsługi W polu What name... wpisujemy nazwę formy (zwyczajowa konwencja frmNazwa) W liście Form Layout wybieramy wygląd formy: Single record - na formie będzie tylko pojedynczy rekord Grid - na formie będzie arkusz rekordów Master/detail - na formie będzie jeden rekord z tabeli master i arkusz rekordów powiązanych z tabeli detail W grupie Binding Type wybieramy ADO Code, dzięki czemu będą jawnie stworzone wszystkie procedury obsługi formy i będzie można je w razie potrzeby zmieniać 20/09/2003 7 Krok 6 - Źródło rekordów i pola Z listy rozwijanej Record Source wybieramy tabelę, z której mają być pobierane rekordy Dostępne pola pokazują się w liście Available Fields Za pomocą strzałek > i >> przenosimy do listy Selected Fields wybrane pola, które mają być pokazane na formie UWAGA! Jeżeli w poprzednim kroku wybrano wygląd formy Master/Detail, to okno z definicją źródła rekordów i pól pokaże się dwa razy najpierw dla tabeli Master, a potem Detail 20/09/2003 8 Krok 7 - Przyciski W tym kroku należy odznaczyć przyciski, które nie mają się pokazywać na formie. Ich funkcja jest następująca: Add - dodaj rekord Edit - edytuj rekord Delete - usuń rekord Refresh - odśwież Close - zamknij formę 20/09/2003 9 Krok 8 - Zapisanie ustawień w pliku Profile Jeśli nie chcemy zachowywać ustawień naciskamy przycisk Next Ustawienia bieżącej formy można zapisać w pliku nazywanym Profile. Dzięki temu jeśli będziemy chcieli stworzyć podobną formę, będzie można z pliku Profile skorzystać w kroku 2, wtedy wszystkie ustawienia będą takie same jakie wybraliśmy dla bieżącej formy 20/09/2003 10 Krok 9 - Zakończenie Po dodaniu formy do projektu i zakończeniu pracy kreatora VB informuje nas oknem dialogowym. Naciskamy OK. 20/09/2003 11 Plik formy Domyślnie plik formy przyjmuje taka samą nazwę, jaką wprowadziliśmy dla formy w kroku 5. Na rysunku widać formę frmWydawnictwa i jej plik w oknie projektu frmWydawnictwa.frm 20/09/2003 12 Modyfikacja sposobu połączenia ze źródłem danych Sposób połączenia z bazą danych jest zdefiniowany w procedurze Form_Load() (patrz KOD #1) Jeżeli połączenie jest zdefiniowane globalnie dla całego programu na przykład w frmMain.Connection, to KOD #1 należy przerobić do postaci pokazanej w KOD #2. Przerobienie polega na: usunięciu definicji połączenia do bazy danych zmiany połączenia w zestawie danych adoPrimaryRS 'KOD #1 Private Sub Form_Load() Dim db As Connection Set db = New Connection db.CursorLocation = adUseClient db.Open "PROVIDER=MSDASQL;dsn=SOB2;uid=;pwd=;" Set adoPrimaryRS = New Recordset adoPrimaryRS.Open "select Wydawnictwo from Wydawnictwa", db, adOpenStatic, adLockOptimistic Set grdDataGrid.DataSource = adoPrimaryRS mbDataChanged = False End Sub 'KOD #2 Private Sub Form_Load() Set adoPrimaryRS = New Recordset adoPrimaryRS.Open "select Wydawnictwo from Wydawnictwa", frmMain.Connection, adOpenStatic, adLockOptimistic Set grdDataGrid.DataSource = adoPrimaryRS mbDataChanged = False End Sub 20/09/2003 13 Literatura www.vba.matrix.pl vb4all.canpol.pl 20/09/2003 14