Tehnika Krstarice > Rad na kompjuteru > 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 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

Preporučite ovaj članak

Članak još uvek nije ocenjen.