Discussione:
Sincronizzare 2 Sottomaschere
(troppo vecchio per rispondere)
Filippo Quaranta
2005-04-28 11:03:11 UTC
Permalink
Buongiorno, in un progetto ADP access 2000
ADP ho il seguente problema.

due sotto maschere inserite in una maschera principale
SOTTOMASCHERA 1
SOTTOMASCHERA 2

sono popolate da due tabelle
tabella 1 chiave IDOrdR popola sottomaschera 1
tabella 2 chiave IDOrdR popola sottomaschera 2

Ora SOTTOMASCHERA1 deve
mostrarmi in SOTTOMASCHERA2
i record dove IDOrdR sono uguali nelle
due rispettive tabelle.

per fare questo in SOTTOMASCHERA1
nell' evento *su corrente* imposto di volta in
volta quando selezionando il record
il recordset di SOTTOMASCHERA2
a *SELECT * FROM tabella 2 WHERE IDOrdR = Me.IDOrdR.*

il problema è che quando la maschera che contiene le
due sottomaschere si apre la SOTTOMASCHERA1 (all'apertura)
ha IDOrdR = NULL (???) pur essendo correttamente
popolata e manda in errore la SOTTOMASCHERA2
perche gli passa un recordset SELECT * FROM tabella 2 WHERE IDOrdR = NULL
(cioè al caricamento Me.IDOrdR risulta NULL)

tutto invece funziona subito dopo selezionando con il mouse un record
in SOTTOMASCHERA1 perche solo allora IDOrdR verrà restituito
ad ogni spostamento sui record.

Dico subito che la proprieta colle campisecondari/collega campi master NON
si puo usare perche le due sottomaschere sono inserite una maschera
contenitore
che NON ha recordset quindi IDOrdR *NON RISULTA* restituibile.

Qualcuno puo aiutarmi ?

Grazie,
Filippo.
Cinzia
2005-04-28 14:27:58 UTC
Permalink
Post by Filippo Quaranta
Buongiorno, in un progetto ADP access 2000
ADP ho il seguente problema.
due sotto maschere inserite in una maschera principale
SOTTOMASCHERA 1
SOTTOMASCHERA 2
sono popolate da due tabelle
tabella 1 chiave IDOrdR popola sottomaschera 1
tabella 2 chiave IDOrdR popola sottomaschera 2
Ora SOTTOMASCHERA1 deve
mostrarmi in SOTTOMASCHERA2
i record dove IDOrdR sono uguali nelle
due rispettive tabelle.
per fare questo in SOTTOMASCHERA1
nell' evento *su corrente* imposto di volta in
volta quando selezionando il record
il recordset di SOTTOMASCHERA2
a *SELECT * FROM tabella 2 WHERE IDOrdR = Me.IDOrdR.*
il problema è che quando la maschera che contiene le
due sottomaschere si apre la SOTTOMASCHERA1 (all'apertura)
ha IDOrdR = NULL (???) pur essendo correttamente
popolata e manda in errore la SOTTOMASCHERA2
perche gli passa un recordset SELECT * FROM tabella 2 WHERE IDOrdR = NULL
(cioè al caricamento Me.IDOrdR risulta NULL)
tutto invece funziona subito dopo selezionando con il mouse un record
in SOTTOMASCHERA1 perche solo allora IDOrdR verrà restituito
ad ogni spostamento sui record.
Dico subito che la proprieta colle campisecondari/collega campi master NON
si puo usare perche le due sottomaschere sono inserite una maschera
contenitore
che NON ha recordset quindi IDOrdR *NON RISULTA* restituibile.
Qualcuno puo aiutarmi ?
Grazie,
Filippo.
ciao Filippo,
potresti provare a testare il valore di IDOrdR prima di impostare il
recordset
if not isnull(me.idOrdR) then

Cinzia
Filippo Quaranta
2005-05-01 23:02:36 UTC
Permalink
Post by Cinzia
Post by Filippo Quaranta
Buongiorno, in un progetto ADP access 2000
ADP ho il seguente problema.
[CUT]
ciao Filippo,
potresti provare a testare il valore di IDOrdR prima di impostare il
recordset
if not isnull(me.idOrdR) then
Ciao Cinzia,
grazie per il suggerimento
tentero in questo modo.
Filippo
giorgio rancati
2005-05-02 07:30:38 UTC
Permalink
Post by Filippo Quaranta
Buongiorno, in un progetto ADP access 2000
ADP ho il seguente problema.
due sotto maschere inserite in una maschera principale
SOTTOMASCHERA 1
SOTTOMASCHERA 2
[CUT]
Post by Filippo Quaranta
Dico subito che la proprieta colle campisecondari/collega campi master NON
si puo usare perche le due sottomaschere sono inserite una maschera
contenitore
che NON ha recordset quindi IDOrdR *NON RISULTA* restituibile.
Ciao Filippo,

puoi anche usare le proprietà Campi Master e Campi Figlio, crea un controllo
non associato nella tua maschera Contenitore, lo chiami IDOrdR e gli assegni
il valore predefinito = 0.
Nell'evento Current della prima maschera andrai a valorizzare tale controllo
---------------
Private Sub Form_Current()

Me.Parent.IDOrdR= Nz(Me!IDOrdR, 0)

End Sub
----------------
Nell'oggetto sottomaschera/sottoreport che contiene la seconda maschera
andrai a compilare le proprietà collega campi Master e Collega campi
secondari rispettivamente con: IDOrdR che è il controllo della maschera
contenitore e IDOrdR che è il campo della seconda sottomaschera.


Ciao
--
Giorgio Rancati
[Office Access MVP]
Filippo Quaranta
2005-05-02 10:43:07 UTC
Permalink
Post by giorgio rancati
Post by Filippo Quaranta
Buongiorno, in un progetto ADP access 2000
ADP ho il seguente problema.
due sotto maschere inserite in una maschera principale
SOTTOMASCHERA 1
SOTTOMASCHERA 2
[CUT]
[CUT]
Ciao
--
Giorgio Rancati
[Office Access MVP]
Ciao Giorgio e grazie.

Loading...