| 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 Function
Se 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 If
Come 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. |