Newsgroup: it.comp.appl.access
Titolo: Maschere Collegate

Vorrei sapere come si possono collegare due maschere in modo tale che il
campo id a chiave univoca di una tabella sia uguale al campo xxx di un'altra
tabella relazione fra loro 1 a molti.
grazie.


Certo che sě!
In visualizzazione struttura della maschera usa l'autocomposizione per
inserire una sottomaschera e segui i comandi a video

 ha scritto nel messaggio
news:Cb7b9.114843$lu5.3...@twister1.libero.it...

Si, fin li ci sono arrivato! il problema nasce se voglio lasciare le due
maschere indipendenti!

 maschere indipendenti!
cito a memoria 
magari sull'evento, mi pare on_current, della maschera principale
modifichi il recordsource della sottomaschera con i valori prelevati
dalla principale e fai requery, oppure gestisci il filtro sulla
sottomaschera (sempreche' la sottomaschera sia di tipo associato)
--
a.cara

 ha scritto nel messaggio
news:3D6DF018...@blunet.it...

Mi potresti dire la procedura, passo passo, sai non sono molto ....

 Mi potresti dire la procedura, passo passo, sai non sono molto ....
Ho recuperato un pezzetto di codice che funziona cerco di spiegartelo
passo passo. Prima devo pero' spiegarti il contesto.
La struttura e fatta da una maschera che contiene due sottomaschere
l'evento appartiene ad una sottomaschera (diciamo quella di sinistra)
Private Sub Form_Click()
**  questa dovresti sostituirla con Private sub Form_current (o l'evento
     che ritieni piu' appropriato)
Dim VARTEST As String
Dim frm As Form
Dim selint As String
** vabbe' banali definizioni di variabili
VARTEST = Me.BANCODE
** prelevo il valore dal controllo bancode della sottomaschera di
sinistra.
   nel tuo caso dovresti accedere ai valori che ti interessano della
   maschera principale
Set frm = Me.Parent.[SubFoglio Interessi Bancari].Form
**  per comodita' inizializzo l'oggetto form  della sottomaschera di 
    destra Come vedi faccio me.parent perche' sono sulla sottomaschera
    e devo risalire sulla maschera principale. a te basta
me.nomesubmask.form
selint = frm.RecordSource
** mi prelevo la query che sta sulla sottomaschera di dx. Ovviamente
questo
   puo' non essere necessario
selint = Token(selint, "'", 1) & "'" & VARTEST & "');"
**  vabbe' la funzione token e' mia e semplicemente recupera tutto il
codice
    della query fino a che trova un apice (fino a un po' di tempo fa era
anche
    sul sito comune, se vuoi saperne di piu'). Come vedi ci appendo il
valore
    di bancode
frm.RecordSource = selint
**   rimetto il tutto sul recordsource. Finito. come vedi non c'e'
necessita'
    memmeno della requery
 
End Sub
per farla breve potrebbe essere:
--------------------------------------------------------------------
Private Sub Form_current()
me.nomesubform.form.recordsource = "select quelchetipare from
dadovetipare
           where campochetipare = " & me.valorecampochetipare
(attenzione ovviamente al tipo del campo ed agli eventuali delimitatori)
End Sub
----------------------------------------------------------------------
a.cara

 ha scritto nel messaggio
news:3D6E0E33...@blunet.it...

Sei stato genlissimo,come sempre, ora la provo poi ti faccio sapere. Grazie,
Ciao.

 a.cara
ho bisogno di un aiutino:
maschera principale = Anagrafica, campo a chiave univoca(numerica) =
codiceditta
sottomaschera = Anagraficaaltriint, campo =codiceditta(numerica) (deve
essere uguale al campo suddetto)
quindi applicando
me.Anagraficaaltriint.form.recordsource = select [codicescheda] from
forms![anagrafica].[codiceditta]
where.codiceditta="& me.codiceditta
cosi non va,forse non ho messo qualke parentesi?

 cosi non va,forse non ho messo qualke parentesi?
cosi' non va no. In quella select c'e' un po di confusione
cos'e' [codicescheda] se e' il nome di campo sulla tabella va bene
altrimenti no
(e poi in questo caso le parentesi quadre non servono)
cos'e' forms![anagrafica].[codiceditta] sicuramente non il nome della
tabella
me.Anagraficaaltriint.form.recordsource  = 
  "select codicescheda from tabella where codiceditta = " &
me.codiceditta
se codiceditta e' numerico va bene cosi'
--
a.cara

 ha scritto nel messaggio
news:3D6F3A23...@blunet.it...

Dunque,sull'evento apertura della sottomaschera o meglio maschera collegata
Private Sub Form_Load()
Me.AnagraficaAltriInt.Form.RecordSource = "select [codiceditta] from"
 Anagrafica
 where.CodiceDitta = "& me.codiceditta"
End Sub
mi resttuisce un errore VB su Me.AnagraficaAltriInt
mi dice impossibile trovare il metodo o il membro dei dati!!!!

 mi dice impossibile trovare il metodo o il membro dei dati!!!!
1) Attenzione se lo fai sul form_load lo fa solo quande apre la
sottomaschera
   ed inoltre, se non ricordo male, ancora non ha caricato la maschera 
   principale (da qui probabilmente l'errore). Perche' non lo hai messo
sul
   current della maschera principale?
   Anzi riguardando, se sei sul form_load della sottomaschera e' 
   semplicemente me.recordsource
   me.anagraficaaltriint.form.recordsource significa:
   me = form attuale 
   anagraficaaltriint = nome del controllo subform (questo esiste solo
sulla principale)
   form = utilizza l'oggetto form della controllo sottomaschera
   recordsource = proprieta che contiene la query/tabella per la
selezione
2) Con la select non ci siamo. Cos'e' quel punto dopo la where?
   deve essere cosi'
   "select codiceditta from anagrafica where codiceditta = " &
me.codiceditta
--
a.cara

 > End Sub
mi da sempre l'errore sulla prima riga esattamente su .Form.
hai scritto che Me.anagraficaaltriint (nome del controllo della
sottomaschera?)
ma anagraficaaltriint è il nome della subform!!!!!!!
i campi che devono essere uguali sono codiceditta e hanno lo stesso nome
sulle 2 tabelle e maschere!!!!
solo che sulla principale e una chiave prim univoca, sulla seconda no.
Ciao Fabry.

 solo che sulla principale e una chiave prim univoca, sulla seconda no.
questo non e' importante e non interessa nel senso che la query che fai
rilevera' piu' di un record poi dipendera' dalla struttura della
sottomaschera
come verranno presentati
mi spiego
se la maschera e' di tipo scheda verra' mostrato un record alla volta ed 
avrai bisogno dei "navigation buttons" per andare avanti/indietro
se la maschera e' di tipo continuo appariranno in una specie di griglia
se la maschera e' di tipo foglio dati appariranno nel formato tipo excel
--
a.cara

 > ma anagraficaaltriint è il nome della subform!!!!!!!

Alessandro, non sono incavolato,tutt'altro al massimo 6 tu che dovresti
incav
io posso solo esserti grato x l'aiuto che mi stai dando.
Per tornare al discorso, la subform l'ho creata con wizard (anch'io ho il
2000)
quindi ho dato il nome subform creato proprio col wizard.
Me.AnagraficaAltriInt.Form.RecordSource = "select [codiceditta] from"
ME.(nomedellasubmask o nomedelcontrollosubmask?) perkè se è il primo è ok
altrimenti l'errore potrebbe essere quello
ora provo.... non non va ma mettendo il nomecontrollosubmask mi da l'errore
al punto successivo ossia..Form ......
Poi la submask mi serve aprirla solo quando devo inserire dei dati
aggiuntivi alla maskprincipale, se mi proponesse già il codice ditta nella
submask (che dve essere uguale al codiceditta della principale)
Ciao Fabry.

 Ciao Fabry.
fabry facciamo una cosa 
preparami un mdb solo con la maschere che ti interessano e le tabelle
(mi
basta anche solo la struttura) e mandamelo in email almeno cosi' potremo
cominciare a capirci al volo.
ovviamente se vuoi aprirla solo quando aggiungi un record sulla maschera
principale c'e' bisogno di un altro po di codice che testi la proprieta'
newrecord
ora vado a mangiare una pizza, se mi fai quello che ti ho chiesto puo'
essere
che ne veniamo fuori velocemente, se ci riesci cerca anche di scrivermi
qual'e' la funzionalita' finale che vuoi raggiungere, cioe' quello che
in
gergo si definisce "requisito utente"
--
a.cara

 ha scritto nel messaggio
news:3D6FBF4F...@blunet.it...

ok, controlla la posta.

 ok, controlla la posta.
Fatto
non ho trovato la sottomaschera inserita nella maschera principale
ahh, amico mio, ho visto il bottone di comando allora quello che
vuoi fare e' un'altra cosa vuoi "relazionare" due maschere 
principali.
E' piu' o meno lo stesso problema che ha Marco 
il thread e' "Confronto fra 2 tabelle", intanto guardati la
mia ultima risposta a lui (non vorrei farti io le cose)
--
a.cara

 a.cara
Si lo avevo già visto, provo a studiarlo meglio. Non voglio la pappa pronta,
il mio scopo è imparare.
Fabry.

 Fabry.
cmq dovresti cambiare nella routine evento del bottone la openform 
e scriverla cosi'. Dovrebbe funzionare
docmd.openform FormName:=stDocName, wherecondition:="codiceditta=" &
CodiceDitta
a.cara

 ha scritto nel messaggio
news:3D710D88...@blunet.it...

Ciao Ale,
ho provato la riga sul post Chiusura e setfocs di Ferplus del 29/08 10.22
Forms![maschera_principale]![submask].Form![codiceditta] = Me!codiceditta
e funzia!

 >
Fabry usa la openform che di ho scritto
poi:
1) Non usare il concetto di "submask" poiche' quella che hai non e' una
   submask. Una submask e' un form inserito all'interno del form
principale
   Nel tuo caso e' un'altra form a se stante
2) Ho visto che hai generato una form che va bene per il tipo maschera 
   continua ma la usi come maschera singola. Cambia la proprieta'
   "Visualizzazione predefinita" in "maschere continue". In questo modo
   se hai piu righe relative ad un codice ditta te le fa vedere tutte
3) Questo modo di procedere fara' si che se apri la maschera per un 
   ditta per cui esistono righe in "anagrafaltri" te li fa vedere. Se
non
   esistono ti fa vedere un'unica riga su cui puoi fare l'inserimento.
   Non essendoci codice di controllo,  ovviamente, se scrivi un codice
ditta 
   diverso da quello di partenza lo accetta
4) Controindicazione. Come puoi vedere l'icona di filtro e' attivata
   cio' significa che se la disattivi "sfiltra" e quindi vedi tutte
   le righe presenti in "anagrafaltri"
Quale' il motivo per cui non vuoi fare una vera "submask" di tipo
collegato?
--
a.cara

 a.cara
Ho studiato un po' si sottomaschere, alla fine mi sono convinto che
tutto sommato con qualche adattamento, può andare.
Quale' il motivo per cui non vuoi fare una vera "submask" di tipo
collegato?
Io voglio creare una submask di tipo collegato (come da oggetto del 3d),
semplicemente
non avevo capito come crearla. Ora lo so.