Newsgroup: it.comp.appl.access
Titolo: Testare se una sezione di una maschera esiste

Ho necessità di sapere utilizzando vba se una sezione di una maschera
esiste oppure no.
Ho provato con:
 
    Dim frm As Form, cntr As Control, criteria As String, sect As
Integer
    Dim PROP As Property, obj As AccessObject, dbs As Object
    Dim db0 As Object, partenza As Integer, testo As String
    Set db0 = Application.CurrentProject
 
    For Each obj In db0.AllForms
 
      DoCmd.OpenForm obj.Name, acDesign
      For Each frm In Forms
            for i = 0 to 4
                 For Each prop In frm.Section(i).Properties
                      .....
                      .....
                 next prop
            next i
 
      Next frm
 
Ma quando viene testata una sezione che non esiste il programma si
blocca cin un errore.
Come posso testare a priori l'esestenza di una sezione di una
maschera?
 
Come posso fare?
 
Grazie per qualsiasi suggerimento
 
Marco


Dopo un po' di lavoro e ricerca ho trovato la soluzione.
Se a qualcuno interessa ecco come:
Ho creato una maschera con un pulsante (Comando40) e l'ho inserito in
un database con tre o quattro maschere.
 
--------------------------------------------------------------------------------------------------------------------
Private Sub Comando40_Click()
    Dim frm As Form, cntr As Control, criteria As String, Sect As
Section, I As Integer
    Dim PROP As Property, obj As AccessObject, dbs As Object, trovata
As Boolean
    Dim db0 As Object, partenza As Integer, testo As String
    Set db0 = Application.CurrentProject
 
    For Each obj In db0.AllForms
        If obj.Name = Me.Name Then
                    GoTo 400
        End If
        DoCmd.OpenForm obj.Name, acDesign
        For Each frm In Forms
        If frm.Name = Me.Name Then GoTo 300
             For I = 0 To 4
                 trovata = CercaSezione(frm, I)
                      If I = 0 Then
                        If trovata = True Then MsgBox "Trovata sezione
acdetail.", vbInformation + vbOKOnly
                        If trovata = False Then MsgBox "Non Trovata
sezione acdetail.", vbInformation + vbOKOnly
                      End If
                      If I = 1 Then
                        If trovata = True Then MsgBox "Trovata sezione
acHeader.", vbInformation + vbOKOnly
                        If trovata = False Then MsgBox "Non Trovata
sezione acHeader.", vbInformation + vbOKOnly
                      End If
                      If I = 2 Then
                        If trovata = True Then MsgBox "Trovata sezione
acFooter.", vbInformation + vbOKOnly
                        If trovata = False Then MsgBox "Non Trovata
sezione acFooter.", vbInformation + vbOKOnly
                      End If
                      If I = 3 Then
                        If trovata = True Then MsgBox "Trovata sezione
acPageHeader.", vbInformation + vbOKOnly
                        If trovata = False Then MsgBox "Non Trovata
sezione acPageHeader.", vbInformation + vbOKOnly
                      End If
                      If I = 4 Then
                        If trovata = True Then MsgBox "Trovata sezione
acPageFooter.", vbInformation + vbOKOnly
                        If trovata = False Then MsgBox "Non Trovata
sezione acPageFooter.", vbInformation + vbOKOnly
                      End If
             Next I
300     Next frm
        DoCmd.Save acForm, obj.Name
        DoCmd.Close acForm, obj.Name, acSaveYes
400 Next obj
    'db0.Close
    DoCmd.Close acForm, Me.Name
    Exit Sub
err_Comando30_Click:
End Sub
------------------------------------------------------------------------------------------------------------------
 
Function CercaSezione(NomeMaschera As Form, sezione As Integer)
    On Error Resume Next
    Dim Sect As Section
    Set Sect = NomeMaschera.Section(sezione)
    If Err > 0 Then
        CercaSezione = False
    Else
        CercaSezione = True
    End If
End Function
-----------------------------------------------------------------------------------------------------
 
Vengono visualizzate tutte le maschere e mi viene segnalato se le
sezioni delle maschere esistono oppure no.
 
Questo mi servirà per poter modificare i controlli nelle sezioni delle
maschere o i colori di fondo delle maschere stasse.
 
Saluti
 
Marco