Modules |
5.18 Verificare se nel database corrente esiste un determinato oggetto (1) |
Roberto |
La funzione che segue serve a verificare se nel database corrente sia presente o meno un determinato oggetto.Public Function EsisteOggetto(TipoOggetto As String, NomeOggetto As String) As Integer On Error Resume Next Dim OggettoTrovato As Integer, CercaOggetto As String, NumOggetto As Integer Dim db As DAO.Database, t As DAO.TableDef Dim Q As DAO.QueryDef, C As DAO.Container Dim msg As String OggettoTrovato = False Set db = CurrentDb() Select Case TipoOggetto Case "Tabella" CercaOggetto = db.TableDefs(NomeOggetto).name Case "Query" CercaOggetto = db.QueryDefs(NomeOggetto).name Case Else If TipoOggetto = "Maschera" Then NumOggetto = 1 ElseIf TipoOggetto = "Modulo" Then NumOggetto = 2 ElseIf TipoOggetto = "Report" Then NumOggetto = 4 ElseIf TipoOggetto = "Macro" Then NumOggetto = 5 Else msg = "Il nome oggetto """ & TipoOggetto & """ non è un valido" msg = msg & " argomento per la funzione EsisteOggetto!" MsgBox msg, 16, "Funzione EsisteOggetto" Exit Function End If Set C = db.Containers(NumOggetto) CercaOggetto = C.Documents(NomeOggetto).name End Select If err = 3265 Or CercaOggetto = "" Then OggettoTrovato = False Else OggettoTrovato = True End If EsisteOggetto = OggettoTrovato End FunctionSe per esempio voglio verificare se nel database corrente esiste la maschera chiamata MiaForm richiamerò la funzione EsisteOggetto nel seguente modo: If EsisteOggetto("Maschera", "MiaForms") = True Then ' la maschera MiaForm esiste Else ' la maschera MiaForm NON esiste End IfCome primo argomento nel richiamo della funzione va usata la stringa "Tabella" se l'oggetto da cercare è una tabella, la stringa "Query" se l'oggetto da cercare è una query, la stringa "Maschera" se l'oggetto da cercare è una maschera, la stringa "Report" se l'oggetto da cercare è un report, la stringa "Macro" se l'oggetto da cercare è una macro e la stringa "Modulo" se l'oggetto da cercare è appunto un report. Il secondo argomento è invece una stringa che contiene il nome dell'oggetto. Nota La funzione EsisteOggetto fa riferimanto alla libreria microsoft DAO quindi, se si usa una versione di Access successiva as Access 97 è necessario aggiungere al database i riferimenti a Microsoft DAO 3.6 Object Library. |