Sub CzyToisArray ()'zadeklaruj tablicê dynamiczn¹ Dim NazwyTabel() As String Dim liczbaTabel As Integer Dim licznik As Integer Dim baza As DAO...

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 po­ni¿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
Powered by wordpress | Theme: simpletex | © Jak ciÄ™ zÅ‚apiÄ…, to znaczy, że oszukiwaÅ‚eÅ›. Jak nie, to znaczy, że posÅ‚użyÅ‚eÅ› siÄ™ odpowiedniÄ… taktykÄ….