Newsgroup: it.comp.appl.access
Titolo: aprire maschera da un'altra maschera

Ciao a tutti.
Uso A97 e ho 2 tabelle così strutturate:
Anagrafica:
[Id_cognome] contatore, chiave primaria
[Cognome]
...
Ordini:
[Id_cognome] numerico
[oggetto]
...
Le due tabelle sono in relazione tra di loro. Per immettere dati nella
tabella anagrafica utilizzo una maschera.
Quale codice posso associare ad un pulsante per far sì che si apra la
maschera relativa alla tab. Ordini collegata al record che in quel momento è
presente sulla maschera Anagrafica? Il codice che si genera automaticamente
con l'autocomposizione, apre una maschera ordini 'generica', non collegata
all'Id_cognome di Anagrafica.
Spero di essere stato chiaro.
Grazie a tutti.
Giancarlo

 Giancarlo
Devi inserire il Criterio nell'istruzione:
Dim strFilter as string
strFilter="CampoPrimKeyTuaForm='" & TxtBoxPrimKey & "'"
DoCmd.OpenForm FormName, , strFilter
CampoPrimKeyTuaForm(Campo Chiave primaria della Form Aperta)
TxtBoxPrimKey      (Relatico controllo TxtBox in cui c'č il campo)
@Alex.
-- 
Posted from  [146.133.1.30] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 TxtBoxPrimKey      (Relatico controllo TxtBox in cui c'č il campo)
Sempre nella tab principale? Nel mio caso la textbox che visualizza il
controllo si chiama Testo10.
Perciň ho provato a scrivere: strFilter="Id_cognome='" & Testo10 & "'"
Quando faccio click sul pulsante, si apre la maschera di immissione Ordini,
ma non č in relazione con il record visualizzato in quel momento nella
maschera principale.
Grazie
Giancarlo


 
Dim strFilter as string
strFilter="Id_cognome=" & Testo10 
DoCmd.OpenForm FormName, , strFilter
L'errore forse era nell'utilizzo degli apici, visto che il campo č numerico.
Il tutto va inserito come hai capito nella Form legata all'Anagrafica
Riprova.....


 ha scritto nel messaggio
news:mzNp7.8248$Bk.6...@news1.tin.it...

Scusami ma la tua affermazione non è esatta; quando viene usato il wizard di
autocomposizione di un pulsante di comando per l'apertura di una maschera,
alla terza finestra del wizard ti viene chiesto se aprendo la maschera
debbono essere mostrati tutti i rcord oppure se la maschera deve trovare
record specifici da visualizzare.
Se scegli questa seconda opzione, e non la prima come hai fatto tu, visto
che le due tabelle sono in relazione tra di loro, e poi rispondi
correttamente anche alle altre domande del wizard, risolvi il tuo problema;
di fatto l'autocomposizione farà automaticamente ciò che Alessandro ti sta
dicendo di fare a manina santa.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Ciao. Giancarlo

 ha scritto nel messaggio
news:UJ_p7.5598$bf.2...@news.infostrada.it...

Ho in effetti provato come mi dici, utilizzando l'autocomposizione e
giustamente si crea un codice che fa sì che si apra la maschera Ordini
debitamente filtrata in base alla relazione tra le due tabelle. Tutto ciò
però funziona solo quando ci sono record della tab. Ordini già inseriti in
relazione ad un record di Anagrafica. Quando però inserisco un nuovo record
e faccio click per aprire la maschera ordini, questa non si apre già
'collegata' alla maschera Anagrafica e i dati che inserisco risultano non in
relazione con il record in Anagrafica.
Giancarlo



Non era evidente dal tuo primo messaggio che dovessi adoperare le due
maschere anche per inserire nuovi record contemporaneamente in ambedue le
maschere. Normalmente l'apertura di due maschere in maniera sincronizzata si
usa quasi sempre per problemi di visualizzazione di dati.
Se però le cose stanno come tu dici, ti sconsiglio caldamente di usare due
maschere separate e sincronizzate, ma ti consiglio di usare la tecnica della
maschera/sottomaschera: automaticamente eviterai tutti i mal di pancia di
cui stai soffrendo ed evidenziati nei tuoi messaggi precedenti.
Nella tua maschera Anagrafica, che deve essere con visualizzazione a
Maschera singola, oltre a tutto quello che hai già inserito devi inserire
anche una sottomaschera (con visualizzazione a Maschere continue) che deve
avere come origine record la tabella Ordini.
Così facendo, aprendo la maschera Anagrafica, per ogni record anagrafico,
senza dover far altro, vedrai automaticamente nella sottomaschera tutti i
record ordine ad esso correlati. Inoltre riuscirai, senza alcun problema, ad
aggiungere, modificare o cancellare record sia dalla tabella Anagrafica che
dalla tabella Ordini.
Tecnicamente si può fare l'aggiornamento delle due tabelle anche con due
maschere separate e sincronizzate, ma è molto più complesso.
La prima cosa che dovresti fare, prima di aprire la maschera Ordini, è
quella di verificare  se stai inserendo un nuovo record anagrafico; questo
devi farlo testando la proprietà Me.NewRecord della maschera Anagrafica, e
se l'esito del test è positivo devi salvare nella tabella Anagrafica il
record che è in fase di inserimento con un DoCmd.RunCommand
acCmdSelectRecord; infatti, in una relazione uno-a-molti,  non puoi inserire
un nuovo record sulla tabella del lato molti se prima non hai salvato il
nuovo record della tabella del lato uno.
Risolto questo problema ti si presenta quello di registrare in maniera
automatica la chiave esterna sul nuovo record della tabella Ordini, che deve
coincidere con il valore della chiave primaria del record corrente della
maschera Anagrafica; per far questo devi, a fronte dell'evento "Su corrente"
della maschera Ordini, impostare il Valore predefinito del controllo
associato alla chiave esterna rendendolo uguale al valore del controllo del
record corrente della maschera Anagrafica associato alla chiave primaria
della tabella Anagrafica.
A Roma si dice: ma chi te lo fa fà!
Se usi la tecnica maschera/sottomaschera, tutte le cose di cui al paragrafo
precedente se le fa da solo Access, senza che tu non te ne debba proccupare.


 ha scritto nel messaggio
news:2Vqq7.8583$Lp6.3...@news.infostrada.it...
[CUT]
Scusami: ho sbagliato a scrivere il comando per salvare un record corrente;
il comando giusto č:
DoCmd.RunCommand acCmdSaveRecord


 ha scritto nel messaggio
news:2Vqq7.8583$Lp6.3...@news.infostrada.it...

Concordo pienamente! :-)
Grazie.
Giancarlo
