Newsgroup: it.comp.appl.access
Titolo: memorizzare valore da tabella secondaria a tabella principale

Ciao a tutto il NG
ho la tabella ANAGRAFICA composta dai campi
ID            contatore
Cognome    Testo
Nome        Testo
ecc
ecc
ecc
IscrittoA    ricerca guidata (sulla tabella iscrizioni)
ecc.
ecc...
Tabella RATE
id            contatore
data        data e ora
Versato   valuta
tabella Iscrizioni
id            contatore
corso      testo
tariffa      valuta
la tabella RATE è una sottotabella di ANAGRAFICA con relazione 1 a molti
su queste tabelle (in realtà ce ne sono molte di più) hocreato una maschera
per ogni persona iscritta, scelgo il corsi di iscrizione, man mano che poi
fa versamenti li annoto nella sottomaschera RATE.
nella stessa maschera ho una textbox non associata che mi avvisa quanto
manca per saldare il pagamento all'iscrizione o se il pagamento è terminato.
Problema
costruendo il db in questo modo, se le tariffe di iscrizione cambiano mi
vengono sfalsati tutti i pagamenti, quindi chi ha finito di pagare si
ritroverà ancora a dover versare.
volevo sapere se c'è un modo per memorizzare il valore della tariffa da
versare nella tabella ANAGRAFICA (per adesso viene memorizzato l'id della
tabella ISCRITTOA). in pratica dovrei memorizzare nella suddetta tabella, la
colonna 2 della tabella ISCRITTOA in modo permanente.
ho fatto vari tentativi, ma senza buoni risultati
ringrazio anticipatamente
Nicola

 ha scritto nel messaggio
news:nVP8a.675$zo2....@news2.tin.it...

Mi sembra mooolto strana l'architettura del tuo database!
Cosa succede se un tizio si iscrive a più di un corso?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:xe09a.176025$ZE.52...@twister2.libero.it...

ho fatto solo un esempio :-)
il database deve prevedere solo l'iscrizione ad un corso
quindi è normalissima questa architettura
Nicola

 ha scritto nel messaggio
news:Hh09a.3226$zo2.1...@news2.tin.it...

Visto che è normalissima, ti dispiace spiegarmi come hai messo in relazione
tra di loro le tre tabelle, visto che non esistono chiavi esterne ma solo
chiavi primarie?
A mio avviso devi crearti una tabella CorsiEffettuati e metterla in
relazione uno-a-molti con la tabella Anagrafica; in detta tabella indicherai
oltre all'id del corso anche la tariffa che il corso aveva al momento della
creazione del record. Detta tabella conterrà anche un campo chiave esterna
che conterrà l'ID anagrafico della persona che si è iscritta al corso, campo
necessario a mettere la tabella in relazione con quella anagrafica.
A questo punto non avrai più bisogno del campo IscrittoA della tabella
Anagrafica e non avrai alcun problema a gestire più di una iscrizione in
contemporanea o differita nel tempo.


 ha scritto nel messaggio
news:GA09a.175786$YG2.5...@twister1.libero.it...

allora, la struttura è questa
Tabella Anagrafica che tra i vari campi ne contiene 1 chaiamato ISCRITTOA di
tipo numerico e che relaziona la tabella ANAGRAFICA alla tabella Iscrizioni
Quest'ultima contiene un ID, il campo CORSO  e il campo TARIFFA. Quindi
ISCRITTOA è relazionato a ID di tabella ISCRIZIONI e finqui ci siamo.
il problema che credo persista nel mio e nel tuo esempio è che se ad esempio
per iscriversi a nuoto, oggi servono 200 euro e domani cambia a 210, le
persone che hanno finito con i versamenti si ritroveranno a dover versare
altri 10 euro.
Il problema è memorizzare la 2^ colonna della tabella ISCRIZIONI nella
tabella ANAGRAFICA in modo statico e soprattutto senza che lo dove inserire
manualmete (cioè si deve settare appena scelgo il tipo di corso)
PS:
Scusa per la mia poca chiarezza :-)
Nicola

 ha scritto nel messaggio
news:g719a.3005$pG1....@news1.tin.it...

Che vuoi che ti dica, il database è tuo e quindi strutturatelo come ti pare:
comunque a mio avviso stai facendo una stupidaggine.
Comunque, inserisci nella tabella anagrafica in campo chiamato TariffaCorso
e nella maschera inserisci un controllo che ha lo stesso nome e che è ad
esso associato.
Nella maschera, fai in modo che la casella combinata associata al campo
IscrittoA abbia TRE colonne di cui visibile solo la seconda.
Usa come origine riga della della casella combinata un codice SQL di questo
tipo:
SELECT id, corso, tariffa
FROM Iscrozioni;
Se la casella combinata si chiama Pluto, a fronte dell'evento "Dopo
aggiornamento" della casella combinata Pluto genera il seguente codice VBA:
Me!TariffaCorso = Me!Pluto.Column(2)
