Newsgroup: it.comp.appl.access
Titolo: indicare nome sottomaschera

Buonasera a tutti.
Finora ricercavo l'idarticolo da una form aprendo una maschera di
ricerca con
DoCmd.OpenForm "RicercaArticoli", , , , , , Me.Name
da cui su click del pulsante conferma, la maschera di ricerca si
chiudeva e tramite
Forms(Me.OpenArgs).IdArticolo = Forms!ricercaarticoli!Elenconominativi
memorizzava il valore sul campo IdArticolo della form chiamante.
Ora ho la necessità che identica situazione avvenga quando la form
chiamante in realtà è una sottomaschera.
Su  conferma della maschera di ricerca mi dà il seguente messaggio:
"impossibile trovare la maschera "sottomascherarighefattura" a cui si
fa riferimento in un'espressione ecc...
Come faccio ad indicare nome maschera e sottomaschera sul codice che
chiama la maschera di ricerca?
Un grazie anticipato.
Giuseppe.


Me!
NomeSubForm.Form.Name
@Alex

 chiama la maschera di ricerca?
Se ti capisco bene la soluzione diventa un po' pi� complicato perch�
devi mandare pi� stringhe nel OpenArgs. P.e. puoi usare
DoCmd.OpenForm "Artikel4", , , , , , _
    Me.Name & "/NomeSottoMaschera" & "/IdArticolo"
e poi nella maschera di ricerca:
Dim strfrm As String, strsfrm As String, strctl As String
strfrm = Split(Me.OpenArgs, "/")(0)
strsfrm = Split(Me.OpenArgs, "/")(1)
strctl = Split(Me.OpenArgs, "/")(2)
Forms(strfrm)(strsfrm)(strctl) = Me!Elenconominativi
-- 
cu
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 Access FAQ:
www.donkarl.com/it
Ciao Alex, ciao Karl  grazie per la risposte.
Per la soluzione di Alex ho questa situazione:
Ho messo sia
DoCmd.OpenForm "RicercaArticoli", , , , , , Me!
sottomascherarighefattura.form.Name
che
DoCmd.OpenForm "RicercaArticoli", , , , , , Me!
sottomascherarighefattura.frmfatture.Name
ma ora quando clicco sul pulsante esce il seguente messaggio
errore di run-time '2465'
impossibile trovare il campo 'sottomascherarighefattura' a cui si fa
riferimento nell'espressione
Per quella di Karl stamattina ci provo e faccio sapere.
Grazie ad entrambi.
Ciao.
Giuseppe


Per la soluzione di Karl su evento conferma della maschera di ricerca
ho messo:
If Me.OpenArgs = "frmfatture!sottomascherarighefattura" Then
Dim strfrm As String, strsfrm As String, strctl As String
strfrm = Split(Me.OpenArgs, "/")(0)
strsfrm = Split(Me.OpenArgs, "/")(1)
strctl = Split(Me.OpenArgs, "/")(2)
Forms(strfrm)(strsfrm)(strctl) = Me!Elenconominativi
end if
il risultato è "tipo non corrispondente".
Allora ho messo nella maschera di ricerca una casella di testo che
all'apertura della form prende il valore dell'openargs.
Il valore è sottomascherarighefattura/sottomascherarighefattura/
idarticolo
Ho anche provato a sostituire
If Me.OpenArgs = "frmfatture!sottomascherarighefattura" Then
con
If Me.OpenArgs = "sottomascherarighefattura/sottomascherarighefattura/
idarticolo" Then
e il risultato è
impossibile trovare la maschera sottomascherarighefattura a cui si fa
riferimento in un'espressione macro o nel codice di Visual Basic
Giuseppe.

 fa riferimento in un'espressione macro o nel codice di Visual Basic
Nella tua domanda no 29879 finalmente dovresti abituarti a indicare
dove si trova il tuo codice. ;-)
Il principio inteso �:
DoCmd.OpenForm "NomeDellAltraMaschera", , , , , , _
NomeMascheraPrincipale & "/" & NomeSottomaschera & "/" _
& NomeCampoOControllo
Se capisco bene il tuo codice si trova nella sottomaschera.
In questo caso puoi p.e. provare:
DoCmd.OpenForm "RicercaArticoli", , , , , , _
Me.Parent.Name
 & "/" & 
Me.Parent.ActiveControl.Name
 & "/IdArticolo"
-- 
HTH





ho corretto con Me.Name & "/NomeMaschera" & "/IdArticolo"
in quanto il controllo è posizionato nella sottomaschera.
Ora funziona.
Grazie Karl, grazie Alex.
Giuseppe.