Pulsante di modifica in visualizzazione continua - sottomaschera

di il
7 risposte

Pulsante di modifica in visualizzazione continua - sottomaschera

Buonasera a tutti,
vorrei porvi un problema e capire il motivo per cui non riesco a risolverlo.
Si tratta della possibilità di utilizzare un pulsante in visualizzazione continua per aprire una maschera con la quale modificare un determinato record.
Questa operazione in realtà riesco a eseguirla solo in un determinato caso e vorrei poterlo trasferire sul caso di mio interesse.
Spero di essere il più chiaro possibile.

Ho creato una maschera continua (che qui chiamo frm_subMain) e al termine della riga ho inserito un pulsante per aprire una nuova maschera (frm_Mod) e che mi permette di modificare i dati relativi al record dal quale ho schiacciato il pulsante.

Se la maschera di partenza (frm_subMain) è una maschera l'operazione va a buon fine e riesco effettivamente ad aprire la nuova maschera (frm_Mod) facendo apparire il record corretto.

Se invece, come è il mio caso, la maschera di partenza è una sottomaschera, quando premo il pulsante mi chiede di specificare l'ID del record che frm_Mod deve mostrarmi.

Una possibile alternativa penso sia quella di utilizzare una cbo nella sottomaschera frm_subMain ma questo rallenterebbe un po' il flusso di operazioni che l'utente deve eseguire e vorrei evitare.

Sapreste dirmi il motivo per cui non riesco ad accedere all'ID del record nella sottomaschera frm_subMain?
I dati nelle maschere vengono sempre pescati da query specifiche.

Grazie mille

7 Risposte

  • Re: Pulsante di modifica in visualizzazione continua - sottomaschera

    Il codice che usa l'evento click..?
    Se è una macro devi verificare il criterio che viene passato all'azione in quanto sicuramente passerà il campo Pk ed il controllo che ne valorizza il valore....
  • Re: Pulsante di modifica in visualizzazione continua - sottomaschera

    È probabile che devi dichiarare "esplicitamente" il concetto di sottomaschera con la sintassi:
    Forms![NomeMascheraPrincipale]![NomeSottomaschera]![CampoID]
    Altrimenti mostra i tuoi codici: quello che funziona e quello no.
  • Re: Pulsante di modifica in visualizzazione continua - sottomaschera

    @Alex ha scritto:


    Il codice che usa l'evento click..?
    Se è una macro devi verificare il criterio che viene passato all'azione in quanto sicuramente passerà il campo Pk ed il controllo che ne valorizza il valore....
    L'evento è una macro che apre la nuova maschera, la condizione WHERE imposta che l'ID del record nella query sia identico a quanto contenuto nella casella di testo.

    OsvaldoLaviosa ha scritto:


    È probabile che devi dichiarare "esplicitamente" il concetto di sottomaschera con la sintassi:
    Forms![NomeMascheraPrincipale]![NomeSottomaschera]![CampoID]
    Altrimenti mostra i tuoi codici: quello che funziona e quello no.
    Il problema è che non ho un codice funzionante e uno non funzionante. Se parto da una sottomaschera non funziona, ma da una maschera sì.
    Non posso postare il codice prima di domani mattina purtroppo.
  • Re: Pulsante di modifica in visualizzazione continua - sottomaschera

    Esattamente quello che Osvaldo cerca di spiegarti... possibile che la sintassi voglia capire in modo esplicito se il riferimento è una FORM piuttosto che una SUBFORM...
  • Re: Pulsante di modifica in visualizzazione continua - sottomaschera

    Nella clausola WHERE io ho una cosa del tipo:
    ([qry_DaCuiPescoLeInformazioni].[IDRecord])=[Maschere]![frm_Main]![frm_subMain]![IDrecord]
    dove il secondo IDRecord è il nome della casella di testo che contiene l'ID del record nella sottomaschera. In questo caso non funziona.

    Se la stessa clausola la applico quando parto da una maschera invece che da una sottomaschera, ovviamente modificando il codice come:
    ([qry_DaCuiPescoLeInformazioni].[IDRecord])=[Maschere]![frm_Main]![IDrecord]
    funziona perfettamente.
  • Re: Pulsante di modifica in visualizzazione continua - sottomaschera

    Se stai usando le macro, mi pare che la logica è ripetibile e la sintassi similare
    [Maschere]![NomeMascheraPrincipale]![NomeSottomaschera]![CampoID]

    ...mmhhh...nel frattempo vedo che hai postato le tue espressioni...il tuo ragionamento apparirebbe coerente, ma non capisco perchè dichiari [qry_DaCuiPescoLeInformazioni]. Se stiamo parlando di maschere, la prima parte dell'espressione dovrebbe essere il solo campo [IDRecord].
    Sono andato a pescare in un mio database una situazione analoga alla tua, dove, tradotto secondo le sintassi delle macro, dovrebbe essere così:
    ApriMaschera
    Nome maschera: qry_DaCuiPescoLeInformazioni (se davvero si chiama così la maschera da aprire)
    Condizione WHERE: [IDRecord]=[Maschere]![frm_Main]![frm_subMain]![IDrecord]
  • Re: Pulsante di modifica in visualizzazione continua - sottomaschera

    OsvaldoLaviosa ha scritto:


    Se stai usando le macro, mi pare che la logica è ripetibile e la sintassi similare
    [Maschere]![NomeMascheraPrincipale]![NomeSottomaschera]![CampoID]

    ...mmhhh...nel frattempo vedo che hai postato le tue espressioni...il tuo ragionamento apparirebbe coerente, ma non capisco perchè dichiari [qry_DaCuiPescoLeInformazioni]. Se stiamo parlando di maschere, la prima parte dell'espressione dovrebbe essere il solo campo [IDRecord].
    Sono andato a pescare in un mio database una situazione analoga alla tua, dove, tradotto secondo le sintassi delle macro, dovrebbe essere così:
    ApriMaschera
    Nome maschera: qry_DaCuiPescoLeInformazioni (se davvero si chiama così la maschera da aprire)
    Condizione WHERE: [IDRecord]=[Maschere]![frm_Main]![frm_subMain]![IDrecord]
    Grazie mille. Ho risolto. Non avevo dichiarato la sottomaschera in maniera corretta e la tua sintassi ha messo in luce il problema. Purtroppo senza codice sotto mano vado a memoria e questa volta ho ricordato male ciò che avevo scritto.

    Riguardo alla nomenclatura che ho usato forse c'è un problema di gestione nel modo in cui io uso le query e le maschere visto che è da poco che utilizzo Access. In questo caso ho creato delle query specifiche che raccolgono i dati da inserire nella maschera o nella sottomaschera. La query in questione è appunto qry_DaCuiPescoLeInformazioni, mentre la maschera si chiama frm_Main (e subMain). Quindi quando dichiaro la clausola WHERE dico che il criterio che la query deve utilizzare quando viene aperta è che il campo IDRecord sia uguale a quello chiamato con la cbo, da cui: [qry_DaCuiPescoLeInformazioni].[IDRecord]=[Maschere]![frm_Main]![frm_subMain]![IDrecord]

    Grazie ancora.
    Saluti
Devi accedere o registrarti per scrivere nel forum
7 risposte