E' possibile copiare il contenuto dei campi di una maschera terza ad una maschera con sottomaschera a record continui?

Anonimo
2023-01-21T06:31:37+00:00

Buongiorno a tutti!

Ho due maschere una dove apro gli articoli per visualizzarli nel dettaglio (che chiamerò maschera A), ed un'altra dove gestisco una lista di articoli (che chiamerò maschera B).

Maschera A è una maschera a record singolo

Maschera B è una maschera con sottomaschera a record continui.

Una volta scelto l'articolo dalla Maschera A vorrei inserirlo nella sottomaschera della B.

Quanto scritto fino'ora riesco a farlo con delle semplici istruzioni del tipo

Forms!frmMascheraB!sbfrmMascheraB!CampoSottomascheraB = Me.txtCampoMascheraA

La mia difficoltà sta nel posizionarmi in un nuovo record della SottomascheraB.

Procedendo come ho fatto fin'ora riesco a scrivere sempre sullo stesso record cioè il primo.

Devo dire che non avrei problemi se usassi il sistema DAO in questo modo :

Dim rs As DAO.Recordset 
Set  rs = CurrentDb.OpenRecordset("tblRigheSottomascheraB") 
rs.AddNew 
rs![Campo1] = Me.txtCampo1MascheraA 
rs![Campo2] = Me.txtCampo2MascheraA 
ecc...
rs.Update 
rs.Close 
Set rs = Nothing  

ma è un metodo che non mi convince.

Dunque: ci si potrebbe posizionare ad un vuovo record (una sorta di rs!AddNew) della SottomascheraB usando un pulsante nella MascheraA per poi scrivere i dati?

Grazie mille anticipatamente.

Michele

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2023-01-21T08:07:19+00:00

Ciao

Sono Abdal e sarei felice di aiutarti con la tua domanda.

Sì, è possibile copiare il contenuto dei campi del modulo A in un nuovo record nella sottomaschera record continuo del modulo B. Un modo per ottenere questo risultato consiste nell'utilizzare . Metodo AddNew del recordset della sottomaschera nel modulo B per creare un nuovo record, quindi utilizzare l'istruzione di assegnazione descritta per copiare i dati dal modulo A al nuovo record nel modulo B.

È inoltre possibile utilizzare . Proprietà RecordsetClone della sottomaschera per accedere al recordset della sottomaschera, quindi utilizzare . Metodo AddNew del recordset per aggiungere un nuovo record e assegnare i valori del modulo A ai campi del nuovo record.

Ecco un esempio di come potresti farlo:

Forms!frmMascheraB!sbfrmMascheraB.Form.RecordsetClone.AddNew Forms!frmMascheraB!sbfrmMascheraB.Form! SubformFieldB = Me.txtMaskFieldA Forms!frmMascheraB!sbfrmMascheraB.Form.RecordsetClone.Update

Verrà creato un nuovo record nella sottomaschera del record continuo del modulo B e verrà copiato il valore da txtMaskFieldA nel modulo A al SubformFieldB nel nuovo record.

Spero che questa informazione aiuti.

Saluti

Abdal

Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2023-01-21T12:16:00+00:00

    Buongiorno Abdal;

    grazie al tuo consiglio sono riuscito ad ottenere quanto volevo!

    Mi è bastato utilizzare solo

    Forms!frmMascheraB!sbfrmMascheraB.Form.RecordsetClone.AddNew

    Modificandolo in

    Forms!frmMascheraB!sbfrmMascheraB.Form.Recordset.AddNew

    La proprietà RecordSetClone essendo in sola lettura non mi permetteva di aggiungere record posizionandosi sempre al primo.

    Non è stato necessario nemmeno mettere il RecordSet.Update.

    Grazie ancora Abdal.

    Michele

    La risposta è stata utile?

    0 commenti Nessun commento