Access - Automatsko brisanje i kreiranje indeksa Access - Automatsko brisanje i kreiranje indeksa
05.03.2002
Evo jednog zanimljivog trika koji će vam pomoći u tome da izbegnete eventualne greške u vreme izvršavanja aplikacije, i to prilikom uvoza podataka u Access. Ukoliko probate da uvezete podatke sa formiranim indeksima, gotovo je sigurno da će se desiti greška, a pored toga sam proces uvoza podataka je mnogo brži ukoliko uvezene tabele nemaju indekse. Za postizanje maksimalne brzine, potrebno je pre uvoza podataka iz, recimo, tekstualnih fajlova ukloniti indekse iz Access tabela. Nakon uvoza podataka, ponovo ćemo kreirati indekse uz pomoć programskog koda. Sve ovo se dešava automatski, u jednom paketnom procesu. Da biste izbegli greške, pre uklanjanja i ponovnog rekreiranja indeksa, potrebno je odrediti da li oni (indeksi) uopšte i postoje. Za ovo određivanje upotrebićemo kratku funkciju. Kada funkciji prosledite naziv tabele i naziv indeks-polja, funkcija će vratiti True ukoliko je polje indeksovano, i False ukoliko nije indeksovano.
Public Function Index_Postoji( _ strTable As String, strField As String) As Boolean On Error GoTo Index_Exists_ERR Dim Dim Dim Dim
dbs As Database tbl As TableDef idx As Index fld As Field
Set dbs = CurrentDb Set tbl = dbs.TableDefs(strTable) Index_Exists = False With tbl For Each idx In tbl.Indexes For Each fld In idx.Fields If fld.Name = strField Then Index_Exists = True End If Next Next End With Index_Exists_EXIT: Set dbs = Nothing Exit Function Index_Exists_ERR: MsgBox Err.Description Resume Index_Exists_EXIT End Function