Microsoft Access: capire se un oggetto esiste all’interno di un progetto
Spesso, nella stesura di un’applicazione Access, potrebbe rendersi necessario appurare se una data maschera esiste nell’applicazione corrente. Microsoft Access, a tale scopo, propone l’insieme AllForms, una proprietà dell’ oggetto CurrentProject. Questo particolare insieme consente di verificare se una maschera esiste nel MDB. Tuttavia esistono funzioni che consentono non solo di verificare l’effettiva esistenza di una maschera, ma che riescono persino a stabilire se esiste un oggetto e di che tipo si tratta. Il codice che segue implementa la funzione EsisteOggetto. Passando alla funzione dei parametri quali il nome e il tipo di un oggetto, essa restituisce un valore di tipo booleano che indica l’esistenza o meno dell’oggetto fornito come parametro; il parametro relativo al tipo di oggetto, se non specificato, assume il valore acForm, ovvero indica un oggetto di tipo maschera.
Public Function EsisteOggetto(OggSTR As String, Optional IngType As AcObjectType = acForm) As Boolean
   Dim Tipo As AccessObject
   On Error Resume Next
   Select Case IngType
        Case acDataAccessPage
             Set Tipo = CurrentProject.AllDataAccessPages(OggSTR)
        Case acForm
             Set Tipo = CurrentProject.AllForms(OggSTR)
        Case acMacro
             Set Tipo = CurrentProject.AllMacros(OggSTR)
        Case acModule
             Set Tipo = CurrentProject.AllModules(OggSTR)
        Case acReport
             Set Tipo = CurrentProject.AlIReports(OggSTR)
        Case acStoredProcedure
             Set Tipo = CurrentData.AllStoredProcedures(OggSTR)
        Case acDiagram
             Set Tipo = CurrentData.AllDatabaseDiagrams(OggSTR)
        Case acServerView
             Set Tipo = CurrentData.AllViews(OggSTR)
        Case acQuery
             Set Tipo = CurrentData.AllQueries(OggSTR)
        Case acTable
             Set Tipo = CurrentData.AllTables(OggSTR)
        Case Else
             Err.Raise 1
    End Select
 EsisteOggetto = (Err.Number = 0)
    Err.Clear
End Function
Ed ecco il codice che si occupa di richiamare tale funzione:
If EsisteOggetto(”Anagrafe”, acTable) Then
……………
…………………
…………
End If
L’esempio verifica se all’interno del progetto Access esiste una tabella denominata Anagrafe.
If EsisteOggetto(”Clienti”)Â Then
……………
…………………
…………
End If
Questo altro esempio verifica la presenza del form Clienti; non è specifichiamo alcun tipo e la funziona cerca quindi l’oggetto Clienti come maschera del progetto.
Â
Grande!
Grazie mille