Jak cię złapią, to znaczy, że oszukiwałeś. Jak nie, to znaczy, że posłużyłeś się odpowiednią taktyką.
Database
Set baza = CurrentDb 'policz, ile tabel znajduje siê w otwartej bazie danych liczbaTabel = baza.TableDefs .Count 'okreÅ“l dok³adny rozmiar tablicy ReDim NazwyTabel(0 To liczbaTabel) 'wpisz i poka¿ nazwy tabel For licznik = 0 To liczbaTabel - 1 NazwyTabel(licznik) = baza.TableDefs(licznik).Name Debug.Print NazwyTabel(licznik) Next licznik 'sprawdŸ, czy to naprawdê jest tablica If IsArray(NazwyTabel()) Then MsgBox "Zmienna NazwyTabel () jest tablic¹." End If End Sub J â– Funkcja Erase JeÅ“li chcesz usun¹æ dane z tablicy, to mo¿esz skorzystaæ z funkcji Erase. Funkcja ta wymazuje wszystkie dane z tablic statycznych i dynamicznych. Przy usuwaniu da- ych z tablicy dynamicznej zwalniana jest równie¿ pamiêæ przeznaczona na przecho- wvwanie tych elementów tablicy. JeÅ“li program ma ponownie odwo³aæ siê do tablicy lynamicznej, to nale¿y u¿yæ instrukcji ReDim i okreÅ“liæ rozmiar tablicy. Poni¿szy 158 Programowanie w Acci przyk³ad ilustruje sposób, w jaki mo¿na usun¹æ dane w przygotowanej wczeÅ“niej procedurze uiubioneMiasta. 1. Wpisz kod procedury UlubioneMiasta3 pocany poni¿ej: tablicy 1 zacznij numeracjê tablicy od 1 Option Base I Sub UlubioneMiasta3() 'zadeklaruj tablicê Dim Miasta(1 To 5) As String 'przypisz wartoÅ“ci elementom tablicy Miasta(1) = "Warszawa" Miasta(2) = "Kraków" Miasta(3) = "Katowice" Miasta (4) = "Gdañsk" Miasta(5) = "Poznañ" 'poka¿ wszystko, co zosta³o wpisane MsgBox Miasta(1) & Chr(13) & Miasta(2) & Chr(13) _ & Miasta(3) & Chr(13) & Miasta(4) & Chr(13) _ & Miasta(5) Erase Miasta 'poka¿ zawartoϾ tablicy MsgBox Miasta(1) & Chr(13) & Miasta(2) & Chr(13) _ & Miasta(3) & Chr(13) & Miasta(4) & Chr(13) _ & Miasta(5) End Sub Po usuniêciu elementów tablicy przez funkcjê Erase okno komunikatu puste. V , w I Funkcje LBound i UBound Funkcje LBound oraz UBound zwracaj¹ liczby ca³kowite odpowiadaj¹ce i górnemu zakresowi tablicy. Poni¿ej podano jeszcze jedn¹ modyfikacjê pr< ulubioneMiasta4. Znajdziesz w niej przyk³ad u¿ycia obu tych funkcji. 1. Wpisz kod procedury uiubioneMiasta4 podany poni¿ej: Sub UlubioneMiasta4() 'zadeklaruj tablicê —^^m w Access 2000 Praca z tablicami 159 )licy Miasta Dim Miasta(1 To 5) As String 'przypisz wartoÅ“ci elementom tablicy Miasta (1) = "Warszawa" Miasta(2) = "Kraków" Miasta(3) = "Katowice" Miasta(4) = "Gdañsk" Miasta(5) = "Poznañ" 'poka¿ wszystko, co zosta³o wpisane MsgBox Miasta(1) & Chr(13) & Miasta(2) & Chr(13) _ & Miasta(3) & Chr(13) & Miasta(4) & Chr(13) _ & Miasta(5) 'poka granicê tablicy MsgBox "Dolny zakres tablicy wynosi " & LBound(Miasta) & "." MsgBox "Górny zakres tablicy wynosi " & UBound(Miasta) & "." End Sub Przy sprawdzaniu dolnego i górnego zakresu tablicy dwuwymiarowej w funkcjach LBound i UBound nale¿y podaæ numer wymiaru - 1 dla pierwszego wymi- aru, 2 dla drugiego. Aby sprawdziæ dolny i górny zakres tablicy dwuwymiarowej, dopisz podane poni¿ej instrukcje na koñcu przygotowanej w tym rozdziale procedury Wymiana ):â– (w wierszach poprzedzaj¹cych s³owa End sub). MsgBox "Dolny zakres (pierwszy wymiar) tablicy wynosi " & LBound(Waluta, 1) & "." MsgBox "Górny zakres (pierwszy wymiar) tablicy wynosi " nikatu bêdzie & UBound(Waluta, 1) & "." MsgBox "Dolny zakres (drugi wymiar) tablicy wynosi " & LBound(Waluta, 2) & "." MsgBox "Górny zakres (drugi wymiar) tablicy wynosi " & UBound(Waluta, 2) & "." j¹ce dolnemu jê procedury B³êdy w tablicach Pracuj¹c z tablicami, nietrudno siê pomyliæ. Najczêœciej spotykany b³¹d „Indeks poza zakresem" (Subscript out of range) jest przedstawiony na rysunku 1.31. jjr w^' 160 Programowanie w Access Mii it:» (rfl Vi-.ua! Ii )*ii Run-b'me error '9": Subscript out of range Rysunek 1.31. Ten b³¹d zosta³ spowodowany prób¹ przypisania wartoÅ“ci do nieistniej¹cego elementu tablicy Komunikat ten pojawia siê przy próbie odwo³ania siê do elementu, który j duje siê poza zadeklarowanym wymiarem tablicy. Na przyk³ad, gdy zadeklarujesz! blicê jednowymiarow¹ o szeÅ“ciu elementach i próbujesz przypisaæ wartoϾ ósir elementowi tablicy, Visual Basic wyÅ“wietla komunikat o b³êdzie informuj¹cy o u¿jj indeksu spoza zakresu tablicy. Gdy otrzymasz taki komunikat, najlepiej kliknij [ cisk Analizuj program (Debug) wówczas Visual Basic zaznaczy wprocedi wiersz, w której zaistnia³ b³¹d (zob. rysunek 1.32). SprawdŸ deklaracjê tabl i odpowiednio zmieñ numer indeksu w nawiasie w zaznaczonym wierszu proceduJ
|
WÄ…tki
|