Script vba per riferirsi ad un controllo contenuto una sottomaschera di una maschera inserita in una maschera di spostam

di il
4 risposte

Script vba per riferirsi ad un controllo contenuto una sottomaschera di una maschera inserita in una maschera di spostam

Salve a tutti,
sono un novellino in Access, utilizzo access 2019....e sto cercando uno script vba per copiare il testo contenuto in una casella di testo (txt1), contenuta in una maschera (frm1), in una casella di testo (txt2) contenuta in una sottomaschera (subfrm1) di una maschera (frm2) che ho inserito in una maschera di spostamento (frmspostamento).


se utilizzo le maschere a schede invece che maschera di spostamento con questo codice funziona:
su evento click di txt1
Forms!frm2!subfrm1.Form!txt2 = Me.txt1 (dove me. è la frm1)

se utilizzo le maschere di spostamento (Navigation Form) non funziona niente....le ho provate tutte!!!
navigando tra un sito ed un altro ho trovato questi script:

1)Forms!NavFormName.Form!NavigationSubform.Form!SubformControlName.Form.ControlName
2) Forms!FormName.SubformControlName.Form!SubformControlName.Form!ControlName
3) 'Forms!NavFormName.Form!NavigationSubform.Form!SubformControlName.Form.ControlName
4) Forms!NavFormName.Form!NavigationSubform.Form!FrmSGSystems.Form.....
'5) Forms(0).[mySubformControl].[Form].[mySubformControl].[Form].[mySubformControl].[Form].[Name]



ma non funzionano... aiuto!!!

qualsiasi di questi script mi danno vari errori:

evento click su txt1
Forms!frmspostamento.Form!NavigationSubform.Form!frm2.Form!subfrm1!txt2 = Me.txt1
err.: impossibile trovare il campo NavigationSubform

allora ho cambiato con Sottomascheradispostamento (in italiano)
Forms!frmspostamento.Form!sottomascheradispostamento.Form!frm2.Form!subfrm1!txt2 = Me.txt1
err.: impossibile trovare il campo frm2

togliendo sottomascheradispostamento
Forms!frmspostamento.Form!frm2.Form!subfrm1!txt2 = Me.txt1
err.: impossibile trovare il campo frm2


Forms!frmspostamento.frm2.Form!frm2.subfrm1.Form!txtIDCondBis = Me.txtIDCondBis
err.: run-time 2465


insomma non vi sto scrivendo tutte le prove. se potreste aiutarmi ve ne sarei grato...

ringrazio anticipatamente

4 Risposte

  • Re: Script vba per riferirsi ad un controllo contenuto una sottomaschera di una maschera inserita in una maschera di spostam

    Mro006 ha scritto:


    ...in una casella di testo (txt2) contenuta in una sottomaschera (subfrm1) di una maschera (frm2) che ho inserito in una maschera di spostamento (frmspostamento).
    Si parte dall'elemento che contiene gli altri e verifica il nome del container (il controllo che contiene una sottomaschera). E' inutile dirti di far prove o tentativi un po' sparati a caso finché non c'è la certezza dei nomi di tutto. Ricorda: il nome della sottomaschera (intendendo per tale una maschera contenuta in una maschera, indipendentemente dal livello) può essere diverso dal container, dettaglio non da poco.
  • Re: Script vba per riferirsi ad un controllo contenuto una sottomaschera di una maschera inserita in una maschera di spostam

    Ho risolto subito dopo aver fatto richiesta di assstenza, per chi avesse problemi in questo modo:

    .

    lo script corretto è

    Forms!frmspostamento.Form!SottomascheraSpostamento.Form!subfrm1!txt2 = Me.txt1


    "SottomascheraSpostamento" è il nome che access ha assegnato a tutte le le maschere inserite nelle maschere spostamento nei pulsanti spostamento. quindi non c'è bisogno di inserire "frm2".
    grazie a chi ha dedicato il tempo per rispondere.
  • Re: Script vba per riferirsi ad un controllo contenuto una sottomaschera di una maschera inserita in una maschera di spostam

    Non è uno script ma una linea di codice.
  • Re: Script vba per riferirsi ad un controllo contenuto una sottomaschera di una maschera inserita in una maschera di spostam

    Mro006 ha scritto:


    Forms!frmspostamento.Form!SottomascheraSpostamento.Form!subfrm1!txt2 = Me.txt1
    "SottomascheraSpostamento" è il nome...
    è il nome del controllo di tipo container che ospita di volta in volta la maschera selezionata. Non è una maschera ma un controllo, con le proprietà tipiche di un controllo, come ControlType, che è acSubform - 112.
    Se vai a cercare nella collection Forms non trovi un elemento che si chiama "SottomascheraSpostamento" mentre sicuramente troverai frmspostamento, frm2, subfrm1. Se cerchi nel controllo SottomascheraSpostamento non troverai i metodi Recalc o Refresh che invece ci sono in una maschera.
    Scritta così sembrerà una "perla di saggezza" ma lo è solo dal punto di vista informatico: il contenitore non è il suo contenuto.
    Siccome confondere le due cose, anche da un punto di vista grafico in visualizzazione struttura è molto facile, meglio avere le idee chiare.
Devi accedere o registrarti per scrivere nel forum
4 risposte