U trendu

Access – Automatsko brisanje i kreiranje indeksa

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 dbs As Database
Dim tbl As TableDef
Dim idx As Index
Dim 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

Pratite Krstaricu i preko mobilne aplikacije za Android i iPhone.