Maschera Access con istanze multiple

di il
20 risposte

20 Risposte - Pagina 2

  • Re: Maschera Access con istanze multiple

    Non si aporono POST così datati, si apre un NUOVO POST e si fa riferimento al Link oggetto dell'analisi.

    Provato e prende SUBITO il criterio... attenzione a dove metti la dichiarazione dell'Oggetto Form con la variabile [frm]... se lo scrivi così in una Function di certo non funziona perchè l'oggetto viene distrutto all'uscita e la Form si chiude...!

    Questo Non funziona, o meglio funziona se si implementa una Collection che ingloba le istanze... ma non cosi
    
    Option Compare Database
    Option Explicit
    
    Function OpenNewForm()
        Dim frm As Form
        Set frm = New Form_T1
    
        frm.Filter = "id=3"
        frm.FilterOn = True
        frm.Visible = True
    End Function
    Questo funziona perfettamente anche OneShot.
    
    Option Compare Database
    Option Explicit
    Private frm As Form
    
    Function OpenNewForm()
        Set frm = New Form_T1
    
        frm.Filter = "id=3"
        frm.FilterOn = True
        frm.Visible = True
    End Function
  • Re: Maschera Access con istanze multiple

    Grande Alex!
    Ho trovato il problema.
    Siccome ho delle sottomaschere alle quali imposto i filtri da codice su Form_Load che parte prima di impostare tramite frm.Filter, mi sembrava che non lo prendesse.
    Trovo il modo di sistemare le cose.

    Sai dirmi se posso passare una variabile al comando 'Set frm = <Parametro>'?
    Ho provato con il comando:
    Set frm = Forms(CurrentProject.AllForms(nItem).Name)
    nel modo che segue, ma non funziona.
        Dim nItem As Long
        Dim bFormExist As Boolean
        bFormExist = False
    
        For nItem = 0 To CurrentProject.AllForms.Count - 1
            'Debug.Print CurrentProject.AllForms(nItem).Name
            If CurrentProject.AllForms(nItem).Name = sFormName Then
                Set frm = Forms(CurrentProject.AllForms(nItem).Name)
                bFormExist = True
                Exit For
            End If
        Next
  • Re: Maschera Access con istanze multiple

    Cosa devi fare...?
    Nel codice che usi non servirebbe a nulla, poi non va bene ciclare come fai, includi anche gli Oggetti Chiusi e non distingui se sono Form o SubForm...
    Di solito si cicla la collection Forms che, comprende le SOLE form Aperte, e, se vuoi accedere alle SubForm, ciu cilcano i Controls individuando le SubForm come Type.

    Mi pare tu faccia molta confusione.

    Apri un 3D nuovo e dedicato spiegando BENE quello che devi fare e le condizioni.
  • Re: Maschera Access con istanze multiple

    Voglio rendere riutilizzabile il codice passando ad una sub due parametri:
    - Nome della maschera
    - Filtro
    Il problema è l'impostazione del nome della maschera come variabile, perché non conosco la sintassi corretta.
    Ho visto un esempio che lo faceva nel seguente modo: Set frm = Forms(CurrentProject.AllForms(nItem).Name).
    Quindi ho ciclato su tutte maschere perché la maschera che voglio aprire non è già aperta.

    Ho usato questo vecchio post, per non ripetere le cose già da te spiegate proprio su questo.
  • Re: Maschera Access con istanze multiple

    Shaul ha scritto:


    Voglio rendere riutilizzabile il codice passando ad una sub due parametri:
    - Nome della maschera
    - Filtro
    Il problema è l'impostazione del nome della maschera come variabile, perché non conosco la sintassi corretta.
    Ho visto un esempio che lo faceva nel seguente modo: Set frm = Forms(CurrentProject.AllForms(nItem).Name).
    Quindi ho ciclato su tutte maschere perché la maschera che voglio aprire non è già aperta.

    Ho usato questo vecchio post, per non ripetere le cose già da te spiegate proprio su questo.
    Il motivo per cui hai usato un vecchio POST non interessa se in contrasto con il Regolamento, che hai letto vero...?.
    Ti ho già spiegato di aprire un NUOVO 3D, vedi di adoperarti.
  • Re: Maschera Access con istanze multiple

    Oh ecco.
    Me ne ero dimenticato.
    Grazie @Alex
Devi accedere o registrarti per scrivere nel forum
20 risposte