Newsgroup: it.comp.appl.access
Titolo: maschere, sottomaschere, caselle combinate e caselle di riepilogo

cerco di generalizzare il mio problema, nella speranza di riuscire a
risolverlo, naturalmente ogni aiuto imbeccata e insulto sono ben accetti.
utilizzo i nomi che ho usato io.
cosa devo fare:
un cliente ha più moto, e questo è fatto così: tbl anagrafica, tbl
motoposseduta, maschera e relativa sottomaschera per inserire più moto e
funziona. relazione 1 a molti tra anagrafica e motoposseduta.
poi (e quì ho il problema) ho una maschera "lavorazione" che dovrebbe
funzionare così: seleziono il cliente, seleziono la moto del cliente che mi
interessa in quel momento e quindi apro una maschera o una sottomaschera,
che è uguale, per inserire la descrizione, prezzo, quantità e altre cose
(serve per fare il resoconto della riparazione/manutenzione) solo che i dati
inseriti nella tabella che io ho chiamato "descrizione" devono essere
relativi a quel cliente e a quella moto specifica del cliente.
di quì poi farò delle ricerche storiche, per moto per cliente... insomma con
qualche query dovrei riuscirci....
le relazioni che io fin ora ho fatto sono: ho inserito ID anagrafica e ID
motoposseduta nella tbl descrizione, ed ho creato le relazioni uno a molti,
verso la tbl descrione, oltre alla relazione uno a molti delle tbl
anagrafica e motoposseduta di cui sopra.
spero di essere stato chiaro, ringrazio in anticipo chi saprà districare la
matassa, spero di essere io... :-)
by
stwe

 ha scritto nel messaggio
news:5Hv77.30371$NZ6.1...@news.infostrada.it...

A mio avviso l'architettura delle tabelle del database dovrebbe essere
questa.
tblAnagrafica
-------------------
IdAnagrafica            Contatore e chiave primaria
NomeCliente           Testo
ecc. ecc.
tblMotoPosseduta
--------------------------
IdMotoPosseduta    Contatore e chiave primaria
IdAnagrafica            Numerico
DescrMoto              Testo
ecc. ecc.
tblDescrizione
--------------------
IDDescrizione         Contatore e chiave primaria
IdMotoPosseduta    Numerico
Descrizione            Testo
Prezzo                   Numerico
Quantità                Numerico
ecc. ecc.
Le tabelle tblAnagrafica e tblMotoPosseduta saranno in relazione uno-a-molti
in base ai campi IdAnagrafica.
Le tabelle tblMotoPosseduta e tblDescrizione saranno in relazione
uno-a-molti in base ai campi IdMotoPosseduta.
Per ambedue le relazioni aggiungi l'integrità referenziale con l'opzione
Elimina record correlati a catena.
Inserire il campo IdAnagrafica nella tabella tblDescrizione è inutile, visto
che una moto può appartenere ad un solo cliente; anzi, potrebbe solo crearti
inutili complicanze.
Per inserire i record nella tabella tblDescrizione può essere sufficiente
una maschera "Lavorazione" che abbia come origine record  tblDescrizione;
nella maschera Lavorazione inserisci una casella combinata non associata
chiamata ScegliCliente; questa casella combinata deve avere due colonne (di
cui la prima non visibile) e deve avere come origine riga una query che
abbia il seguente codice SQL
SELECT DISTINCTROW tblAnagrafica.IdAnagrafica, tblAnagrafica.NomeCliente
FROM tblAnagrafica ORDER BY tblAnagrafica.NomeCliente;
Il controllo della maschera Lavorazione associato al campo IdMotoPosseduta
della tblDescrizione deve essere una casella combinata anche lei chiamata
IdMotoPosseduta; anche tale casella combinata deve avere due colonne di cui
visibile solo la seconda e deve avere come origine riga una query che abbia
il seguente codice SQL:
SELECT DISTINCTROW tblMotoPosseduta.IDMotoPosseduta,
tblMotoPosseduta.DescrMoto FROM tblMotoPosseduta WHERE
(((tblMotoPosseduta.IdAnagrafica)=[Forms]![Lavorazione]![ScegliCliente]))
ORDER BY tblMotoPosseduta.DescrMoto;
A fronte dell'evento "Dopo aggiornamento" della casella combinata
ScegliCliente genera questa riga di codice VBA:
Me!IdMotoPosseduta.Requery
Così facendo nell'elenco di quest'ultima casella combinata ti compariranno
solo le moto del cliente selezionato con la prima casella combinata.
A questo punto apri la maschera Lavorazione, seleziona il cliente dalla
casella combinata ScegliCliente; seleziona una delle moto di quel cliente
dalla casella combinata IdMotoPosseduta e inserisci gli altri dati di
lavorazione.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:9jmlvh$3994$1...@stargate1.inet.it...

ho appena letto, posso solo dirti questo anche se non ho ancora provato: SEI
UN MITO
vorrei davvero conoscerti di persona, hai un'altruismo che è qualcosa di
spaventoso, grazie di cuore
by
stwe
ps ora provo...

 ha scritto nel messaggio
news:9jmlvh$3994$1...@stargate1.inet.it...

infatti funziona alla grande e avevi, ovviamente, perfettamente ragione a
proposito delle relazioni.
non mi resta che ringraziarti come al solito. (tra l'altro inizio a provare
un serio senso di debito nei tuoi confronti, se posso sdebitarmi in qualche
modo dimmelo)
by
stwe

 ha scritto nel messaggio
news:9jmlvh$3994$1...@stargate1.inet.it...

uffa non funziona come speravo....
ovvero mi la maschera lavorazione mi da il seguente errore:
Impossibile aggiornare o modificare il record. Nella tabella
"tblMotoPosseduta" è necessario un record correlato.
quando cerco di inserire una seconda riga in descrizione.
La soluzione secondo me è nella relazione, ma devo ancora provare. Però mi
sono reso conto che comunque non va bene, io in questa malefica maschera
Lavorazione devo aggiungere due pulsanti: stampa e salva, ovvero stampa solo
quei dati, con totale e dati moto e cliente, oppure salva, nel senso che se
chiudo la maschera mi deve cancellare il tutto, se invece salvo mi deve
accodare i valori nella tabella. domattina appena ho tempo, perchè ora è
tardino, provo a togliere la relazione delle tblDescrizione e
tblMotoPosseduta e provo a risolvere con delle query di
accodamento/eliminazione.
ora vado a nanna
grazie comunque
by
stwe

 ha scritto nel messaggio
news:9jmlvh$3994$1...@stargate1.inet.it...

è vero sono cretino a continuare a postare...
solo che provo e scopro altre cose, ovvero ho eliminato la relazione, non mi
da più msg di errore, ma ovviamente non scrive l'ID della moto posseduta, se
non vado a ricliccare la motoposseduta, allora funziona.
ho provato anche a creare una maschera Lavorazione1 vuota e usare una
sottomaschra per la descrizione, ma ovviamente è tutto uguale.

 stwe
--



Vedi la mia risposta precedente.


CUT

è vero tutto, ero stanco e mi sono venute le idee più strane in mente...
caspita però continua a non funzionare. mi da sempre lo stesso errore quando
esco dal record nella maschera Lavorazione.
ho fatto un db nuovo e ho rispettato tutte le tue indicazione, che a rigore
di logica sono giuste, sicuramente sbaglio qualcosa io, ma non riesco a
capire cosa.
Mi verrebbe di essere sfrontato e chiederti se posso inviarti il file per
verificarlo. solo che esulo completamente dalle regole del news, ma non ho
resistito a domandare, scusa e grazie ancora per l'interessamento.
by
stwe

 stwe
Preferisco essere io ad inviarti un mio database di esempio (realizzato in
A97) dove ho realizzato ciò che ti ho suggerito nei miei messaggi
precedenti; penso che sia più istruttivo per te che sia tu, e non io, a
ricercare le differenze tra il mio ed il tuo database.
L'eventuale discussione sui due database andrà naturalmente fatta nel NG e
non in privato.
Comunque penso che il problema stia nelle proprietà della casella combinata
IDMotoPosseduta.
