Developer

Microsoft Access: capire se un oggetto esiste all’interno di un progetto

Spesso, nella stesura di un’applicazione Microsoft 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.

Comments (1)

  1. Grande!
    Grazie mille

Comments are closed.