Newsgroup: it.comp.appl.access
Titolo: aggiornare maschera da altra maschera con nome variabile

Grazie se potete darmi un aiuto.
 
Come faccio ad aggiornare i dati di una maschera (padre) da un'altra maschera (figlia) dove il nome del form padre è variabile?
Ho trovato solo esempi del tipo:
 
Forms!frmMaschera.Form.Refresh
 
oppure
 
Form![BefRicevuteAC]!IdBef.Requery
Form![BefRicevuteAC]!Controllo.Requery
 
Dove frmMaschera e BefRicevuteAC sono nomi statici di form, mentre vorrei che il nome della form venisse preso da una variabile, per esempio in questo modo:
Form!VariabileNomeForm.Form.Refresh
 
E' possibile?
Altrimenti devo procedere con un classico If o Select Case sul nome form, specificando un comando diverso per ogni nome diverso di form.
Grazie ancora.


supponi che hai una maschera padre chiamata "padre"
con una etichetta chiamata "tuaAtichetta"
 
dalla maschera figlio puoi eseguire questo codice
 
Dim nomeMacheraPadre As String
nomeMacheraPadre = "Padre"
Forms(nomeMacheraPadre).Requery
Forms(nomeMacheraPadre).tuaEtichetta.Caption = "xxx"
 
 
che ti permette di fare sia il requery che intervenire sulle proprietà 
degli oggetti del padre direttamente dal figlio
 
BFS

BFS brought next idea :

però l'istruzione
 
nomeMacheraPadre = "Padre"
 
è fissa, servirebbe un qualcosa tipo
 
nomeMacheraPadre = form.FatherFormName
 
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........


lui parla di prendere il valore da una variabile...
ad ogni modo basta :
 
 
Dim nomeMacheraPadre As String
nomeMacheraPadre = 
Me.Parent.Name
 
Forms(nomeMacheraPadre).Requery
Forms(nomeMacheraPadre).tuaEtichetta.Caption = "xxx"
 
BFS
 
 

Grazie a tutti faro delle prove!
Il nome della maschera padre lo passo alla maschera figlia alla sua apertura, vado ad alimentare un campo chiamato ad es. "txtChiamante".

 Il nome della maschera padre lo passo alla maschera figlia alla sua apertura, vado ad alimentare un campo chiamato ad es. "txtChiamante".
 
Come promesso, scrivo per confermare che ho risolto il problema grazie alla vostre istruzioni!
Se puo essere utile ad altri, funziona egregiamente ed elegantemente con una procedura semplice del tipo:
 
Private Sub Caller()
On Error GoTo Err_Caller
Dim strCaller As String
 
    strCaller = Nz(Me.txtCaller.Value, "")
 
    If strCaller <> "" Then Forms(strCaller).Refresh
 
Exit_Caller:
    Exit Sub
Err_Caller:
    Resume Exit_Caller
End Sub


Non ho letto il resto del thread. Limitatamente a queste righe, si può fare con 1 sola.
 
If Len(Me.txtCaller.Value & vbNullString) = 0 Then Forms(strCaller).Refresh 
 
senza usare strCaller.

 Dove frmMaschera e BefRicevuteAC sono nomi statici di form, mentre vorrei che il nome della form venisse preso da una variabile
 
Già che c'ero ho buttato l'occhio sulla richiesta iniziale. Per lanciare il requery (o refresh?) della maschera principale dalla sottomaschera usa questa sintassi
 
Me.Parent.Requery
 
dove Me ovviamente è la sottomaschera
 
Questa pagina è da salvare e mettere al sicuro: 
http://theaccessweb.com/forms/frm0031.htm
 

dove Me ovviamente è la sottomaschera
 
Giusto, ma la mia "sottomaschera" è in realtà una pop-up con uso non bloccante, quindi non credo funzioni il parent.

 Giusto, ma la mia "sottomaschera" è in realtà una pop-up con uso non bloccante, quindi non credo funzioni il parent.
Allora dobbiamo chiarirci sul significato di sottomaschera. Una sottomaschera è ... dentro una maschera principale, altrimenti non è una sottomaschera ma una maschera autonoma, anche se il suo utilizzo avviene solo in presenza di altre maschere aperte. Una sottomaschera, quindi, per definizione deve avere una maschera Parent.
Se invece è l'altra situazione... ecco, ti suggerisco di non chiamarla sottomaschera, tutto qui.

in gergo tecnico si dice CASTING del dato.
;-)
 
Ciao Phil
@Alex


Perché in italiano "conversione del tipo di dato" non può andare? Nel dubbio parto con "spiegazioni comprensibili" che a non farmi capire ho sempre tempo.
E sai bene quanto mi costi scrivere-pensare in italiano con Access, viste le mie ultime vicissitudini con l'idioma nazionale (che fumo!!! )
 
Ciao @Alex.

 Ciao @Alex.
 
Già sei prolisso di tuo... "Casting" al posto di "Conversione del tipo di dato" è tanta roba... ;-)
 
@Alex