Riferimento a sottomaschera2 da sottomaschera1

di il
8 risposte

Riferimento a sottomaschera2 da sottomaschera1

Buon giorno a tutti,

ho una maschera che al suo interno ha 2 sottomaschere.
La maschera mostra i dettagli di un cliente, la sottomaschera1 le fatture relative a quel cliente e la sottomaschera2 le rate di pagamento relative ad una specifica fattura.

Ho facilmente disposto che ricercando un cliente la maschera principale viene filtrata in base all'IDCliente mostrandone i dettagli anagrafici e la sottomaschera1 (sempre filtrando in base all'IDCliente) mi mostri solo le fatture relative.

Non riesco però ad applicare alla sottomaschera2 un filtro a partire da un bottone posizionato nella sottomaschera1.

Ho creato un tasto dettagli nella sottomaschera1 e, nell'evento clic ho fatto vari tentativi di riferimento alla sottomaschera2:
    Forms!sottomaschera2.Form.Filter = "IDFattura=" & Me.IDFattura.Value
    Forms!sottomaschera2.Form.FilterOn = True
Ho provato anche le varie metodologie indicate qui

ma ottengo sempre Errore di run-time '2450' - Impossibile trovare la maschera 'sottomaschera2'

Cosa sbaglio ?

8 Risposte

  • Re: Riferimento a sottomaschera2 da sottomaschera1

    VincMc ha scritto:


    Ho provato anche le varie metodologie indicate qui
    Si chiamano davvero sottomaschera1 e sottomaschera2? che non ci inceppiamo in nomi fittizi che poi devi calare nel caso concreto e il problema è proprio lì.
    Le due sottomaschere sono entrambe sottomaschere della principale o sottomaschera2 è a sua volta sottomaschera di sottomaschera1?
  • Re: Riferimento a sottomaschera2 da sottomaschera1

    Se il pulsante sta in sottomaschera1 occorre dichiarare tutto per intero ossia:
    Forms!MascheraClienti!sottomaschera2.Form.TuoArgomento
  • Re: Riferimento a sottomaschera2 da sottomaschera1

    @Philcattivocarattere, scusami avevo usato nomi fittizi pensando di semplificare
    @OsvaldoLaviosa grazie 1000 applicando la dichiarazione completa riesco a far funzionare il filtro
  • Re: Riferimento a sottomaschera2 da sottomaschera1

    Come spesso accade si guarda il dettaglio ma non l'insieme... stai facendo una cosa INUTILE e sbagliata tecnicamente.

    Strutturalmente quello che fai non è corretto perchè, la Sottomaschera2 "RatePagamenti" è relazionata M-1 con la Sottomaschera1 [Fatture] che sarà in maschere continue.
    Quindi 1 Fattura molte RatePagamenti... questo tecnicamente è un sistema Form-Subform, mentre tu le hai gestite slegate, ovvero come 2 form NON dipendenti che poi vuoi rendere dipendenti da azione e codice.

    In linea teorica la Sottomaschera1 avrebbe dovuto/pootuto avere nel PieDiPaginaMaschera la Sottomaschera2 gestendo correttamente i Link MasterDetail o Master/Secondario, ed non avresti avuto alcun problema tutto avrebbe funzionato in automatico senza alcun codice.

    Perchè mettere la SottoMaschera2 nella Maschera non sfruttando quindi i rapporti relazionali di base...? Boh... spiegalo tu a noi.

    Se fosse una questione grafica e tu preferissi gestire le 2 maschere in modo affiancato, la tecnica da usare è un'altra e non serve alcun codice nè filtrare nulla... perchè si sfrutta sempre il legame Master/Secondario o Master/Detail
    La soluzione tecnica è questa:
    Quindi nella Form Principale si mette una TextBox [rifFattura] con Origine Controllo il controllo IdFattura della Sottomaschera1, che verrà aggiornato automaticamente su Corrente.
    Nella Sottomaschera2, nella proprietà Campo MASTER metti il riferimento alla TextBox [rifFattura], mentre nel campo Secondario il controllo IdFattura della Sottomaschera.
  • Re: Riferimento a sottomaschera2 da sottomaschera1

    Ciao Alex,

    come al solito ti devo ringraziare per i preziosi spunti che mi offri.

    La mia non è stata una scelta grafica ma semplicemente... una scelta da "ignorante"!

    Proverò a studiare quanto da te proposto ed implementarlo.
    Non fatico ad ammettere che per quanto mi sia chiara la questione delle relazioni tra le due sottomaschere (e tra le due tabelle fatture e pagamenti) devo studiare come impostare i campi Master e Secondario.

    Grazie sempre
  • Re: Riferimento a sottomaschera2 da sottomaschera1

    VincMc ha scritto:


    Proverò a studiare quanto da te proposto ed implementarlo.
    Non fatico ad ammettere che per quanto mi sia chiara la questione delle relazioni tra le due sottomaschere (e tra le due tabelle fatture e pagamenti) devo studiare come impostare i campi Master e Secondario.
    Se le relazioni sono corrette, sfrutta la creazione guidata di maschera/sottomaschere che consente di impostare tutto automaticamente le maschere fino a 3 livelli (maschera principale/sottomaschera/sotto-sottomaschera).
  • Re: Riferimento a sottomaschera2 da sottomaschera1

    OsvaldoLaviosa ha scritto:


    Se le relazioni sono corrette, sfrutta la creazione guidata di maschera/sottomaschere che consente di impostare tutto automaticamente le maschere fino a 3 livelli (maschera principale/sottomaschera/sotto-sottomaschera).
    Dici che per la struttura prospettata il Wizard possa funzionare...?
    La sottomaschera1 è in visualizzazione continua quindi nel corpo non supporta sottomaschere quindi il Wizard non va bene, infatti suggerivo di metterlo nel pie di pagina, dove non essendoci controlli associati non applicherebbe il riconoscimento Master/Detail in automatico, da fare quindi a mano.
    Potrebbe solo se usasse Datasheetview... ma non mi pare sia la scelta.

    Se usa, come ha fatto 2 maschere pari livello non può usare il Wizard... non troverebbe corrispondenze e vanno impostate sempre a mano.
    Quindi il Wizard può essere impiegato SOLO se la Sottomaschra1 fosse in Singola e la Sottomaschra2 inserita nel corpo della Sottomaschra1.
    Insomma... come sempre...
  • Re: Riferimento a sottomaschera2 da sottomaschera1

    Buon giorno Osvaldo ed Alex,

    ho messo in pratica i vostri suggerimenti.
    Effettivamente, come scriveva Alex, tramite il Wizard sembra possibile configurare solo la relazione tra la prima sottomaschera e la maschera principale.
    Non sembra esserci modo di indicare nel Wizard un campo Master diverso da quelli della maschera principale.

    Ho quindi, applicando quanto detto da Alex, creato una casella di testo sulla maschera principale che riporta l'IDFattura del record selezionato nella prima sottomaschera (maschere continue).
    Poi ho manualmente collegato il campo Master ed il campo Secondario della seconda sottomaschera.

    Funziona perfettamente

    Grazie sempre!
Devi accedere o registrarti per scrivere nel forum
8 risposte