Tehnika Krstarice > Programiranje > VBA - Provera da li određeni objekt postoji u Access bazi

VBA - Provera da li određeni objekt postoji u Access bazi

19.11.2000.

Pomoću sledeće funkcije možemo saznati da li određeni objekat (tabela, upit, izveštaj, makro ili modul) postoji u određenoj Access bazi podataka. U Access-u postoji funkcija IsLoaded na osnovu koje možemo dobiti podatak da li je neka forma otvorena, ali uz pomoć navedene funkcije možemo odrediti da li bilo koji objekat baze uopšte postoji u bazi. Korišćenje je vrlo jednostavno, samo iskopirajte kod funkcije u novi modul. Funkcija vraća vrednost True ili False u zavisnosti od toga koji ste objekat poslali funkciji. Jednostavno pošaljite funkciji tip objekta (acTable, acQuery, acForm, acReport, acMacro, acModule) i string-naziv samog objekta, na primer:

If ObjectExists(acTable, "tblNarudzbe") Then ...   ILI
If ObjectExists(acForm, "frmMojaForma") Then ...

Funkcija može biti vrlo korisna kada imate ogroman broj objekata u jednoj Access bazi.

Function ObjectExists(ObjType As Integer, ObjName As String) As Boolean
    'Primer: If ObjectExists(acTable, "tblNarudzbe") then ...
  On Error Resume Next
    Dim db As Database
    Dim strTemp As String, strContainer As String
    Set db = CurrentDb()
    
    Select Case ObjType
        Case acTable
            strTemp = db.TableDefs(ObjName).NAME
        Case acQuery
            strTemp = db.QueryDefs(ObjName).NAME
        Case acMacro, acModule, acForm, acReport
            Select Case ObjType
                Case acMacro
                    strContainer = "Scripts"
                Case acModule
                    strContainer = "Modules"
                Case acForm
                    strContainer = "Forms"
                Case acReport
                    strContainer = "Reports"
            End Select
        strTemp = db.Containers(strContainer).Documents(ObjName).NAME
    End Select
    
    ObjectExists = (Err.Number = 0)
End Function

Preporučite ovaj članak

Članak još uvek nije ocenjen.