Newsgroup: it.comp.appl.access
Titolo: Relazione o query?; come impostare le tabelle

Provo a sintetizzare, prima del lungo escursus sottostante:
Ho una tab 1 con 14 nomi
In una tabella finale, per alcuni dei 14 nomi devo associarne
(sullo stesso record) altri nomi, sempre tra quelli dei 14 di base;
dovrei, in una maschera, avere come master, un elenco con TUTTI i
14 nomi (quindi già pronto) e iniziare ad inserire solo i record
secondari
(chiaramente in una sottomaschera).
Cioè, nell'uso della relazione 1 a molti, voglio evitare di inserire
i campi master (anche se, quelli che avranno i record secondari non sono
tutti,
-li lascerò vuoti-).
Da una tabella Tab_base_1, con un campo nome con i seguenti record (con
possibilità di
aggiungerne altri in futuro)
A, B, C, D, E, F, G, H, I, J, K, L, M, N
devo avere una tabella 2 con associati ad alcuni nomi di Tb_base_1,
altri della stessa tabella.
esempio:
[n.b.  nel primo campo, mi interessa riavere tutti i record del campo
base e se al record,
non è associato nessuno nome allora non vedo nessun record (ipotizzo che
devo avere una
maschera con una sottomaschera)]
A con D, H, I
B  con nessuno
C  con nessuno
…..
E  con J, M, N, C, A
K  con L, D, F
etc
Si può fare in modo che la tabella2, sia esattamente una copia per
quanto riguarda
l'elenco di tutti i nomi di tab_base_1
(il trattino --- indica i campi dentro le tabelle)
Ho provato con
una Tab_1 (l'originale)
---ID (campo chiave contatore)     nessuna relazione
---Nomi
una Tab_2 (elenco nomi che hanno associazioni)
---id_scritto  [cioè lo riempio con il valore ID dell'originale tramite
una
                      casella combinata con origine riga in tab_1
(l'elenco
                      originale) e colonna associata al campo ID]
                      RELAZIONE 1 campo chiave numerico
---nomi che hanno associazioni [lo riempio come sopra però cambiando il
valora
                                                    della colonna
associata non a ID ma a Nomi di Tab_1]
 Tab_3
--- id_scritto  RELAZIONE MOLTI  tipo numerico
--- campo Nomi
In una maschera (origine tab_2) ho le caselle
casella_id_scritto_da_tab_2
casella_nomi_da_tab_2
che riempio entrambi con una casella combinata non associata e con
origine riga da tab_1
più
una sottomaschera che fa riferimento ad una maschera (origine tab_3)
e dove tramite un'altra casella combinata scrivo i nomi associati ad
ogni
nome di tab_2
il problema è che la tab_2 essendo vuota di tutti
i nomi, devo reinserirli di nuovo tutti, uno a uno e poi
per ciascuno, scegliere da una casella combinata, i vari nomi da mettere
nella tab_3.
E' possibile avere un "clone" di tab 1, che chiamerò
appunto tab 2, con tutti i nomi già inseriti e quindi
con la sottomaschera vuota e pronta a ricevere
i nomi associati, oppure a rimanere vuota, se il nome di base non ha
associati.
Cioè, si può evitare, di stare a rimettere in tab 2, tutti i valori di
tab 1,
ma passare subito a inserire i dati che andranno nella tab 3,
cioè i vari
D, H, I  per  il nome A
niente per B
niente per C
…..
J, M, N, C, A per E
L, D, F  per E
La tabella clone deve inoltre autoaggiornarsi se aggiungo un nuovo nome
in
quella originale
Ringrazio in anticipo

 Ringrazio in anticipo
Gesu' gesu'!
Alla faccia della sintesi!
Se volevi fare perdere di casa i tuoi lettori, con me ci sei riuscito.
Guarda, io ragiono meglio in termini di cosa vuoi ottenere.
Prova a spiegarlo lasciando da parte access.
Comunque, se ho afferrato quello che vuoi, penso che tu ti riferisca a
qualcosa di simile ai rapporti di parentela.
In questo caso non ti serve un'altra tabella che sia copia della principale,
ti serve una autorelazione tramite una tabella d'appoggio:
TabNomi
ID    Nome    Altro
1        A
2        B
3        C
TabCorrelazione
IDPrincipale    IDCollegato
1                            2
2                            1
2                             3
3                             1
Poi relazioni sia IDPrincipale sia IDCollegato con ID di TabNomi.
Questa e' la strada.
Ciao, Sib

Gesù gesù
che il Signore benedica la tua pazienza e di
quanti si avvierano per la lunga (meno incartata, mi auguro) via.
Suddividerò ora le problematiche in vari passi:
--------------------------------------- Fase 0
p.s.
In effetti mi sono incartato (per non dire peggio) nella spiegazione,
comunque quello che volevo (una parte)  l'ho risolto così:
(il trattino --- indica i campi)
TabNomiTutti
---ID (contatore chiave primaria)    relazione 1
---nome
TabNomeParenti
---id  numerico                         relazione molti
---nome_parenti
Con relazione 1 a molti
In questo modo, in una maschera con record master i nomi di TabNomiTutti
(A, B, C, D, E, F, G, H, I,  J, K , L, M, N), ad ogni record master, posso
inserire più record secondari "parenti" (il concetto di rapporti di parentela
pùo fare al caso) ripresi sempre da TabNomiTutti.
Quindi nella maschera posso avere esempio:
(nella maschera)    (nella sua sottomaschera)
Record master       Record secondari ("parenti diretti")
A                           D, H, I         sono parenti di 1 grado di A
B                           nessuno
C                          nessuno
H                           L, S             sono parenti di 1 grado di H
I                            F                 sono parenti di 1 grado di I
…….
E                           J,  A            sono parenti di 1 grado di E
K                          L, D, F        sono parenti di 1 grado di K
Chiaramente, tutto ciò, viene scritto in TabNomiTutti.
----------------------------------------------- Fase 1
Il problema ora, è come tirar fuori da tale tabella, una nuova maschera
(con origine forse in una query o che altro?) in cui, per ogni nome,
posso vedere tutti i "parenti " diretti (1 grado) e indiretti (2 grado), cioè:
A, ha come parenti 1 grado D,H,I;
siccome
H, ha come parenti 1 grado L ed S;
I , ha come parenti 1 grado F;
allora devo vedere per A i seguenti nomi: D, H, I, L, S, F;
etc.
Se riesco a risolvere ( e quindi a capire anche il modo di procedere) questo
primo punto, è già qualcosa.
Devo vedere solo i parenti di 1 e 2 grado messi in ordine decrescente.
----------------------------------------------- Fase 2
Per i più tenaci.
A             D, H, I
H             L, S, K
E              J, A
K             L, D, F
J              N
Devo anche vedere i parenti di 3, 4, etc… grado.
cioè per A devo vedere D, H, I, L, S, K, F
dove D, H, I sono i parenti di 1 grado di A,
L, S, K sono i parenti di 2 grado derivanti da H
ed F i parenti di 3 grado derivanti da K (anch L e D sono
di 3 grado solo che non messi perché già L di 2 grado e D di 1 grado)
Praticamente elenco per ogni nome, solo i parenti in
ORDINE DECRESCENTE di grado.
etc. idem per tutti gli altri nomi
----------------------------------------------- Fase 3
Per i superstiti:
Ora devo vedere i parenti tutti. Sopra la limitazione era che
per ogni nome dell'elenco base vedevo solo i parenti man mano
di grado inferiore.
Ora per ogni nome base devo vedere tutti i parenti: sia superiori che
inferiori.
Quindi, come sopra, però considerando tutte le possibili parentele
cioè, sopra io preno un nome e vedo quali sono i
parenti di 1 grado; poi per ogni parente di 1 grado vado a rivedere
in elenco base, se a loro volta, hanno dei parenti, che quindi io poi
li reinserisco come parenti di 2 grado; poi per i parenti di
2 grado vado a rivedere in elenco se hanno dei parenti, nel caso,
li reinserisco come di 3 grado. etc…
Quindi sopra (fase 2) vado in ordine decrescente di parentela.
Quindi nel caso sopra (fase 2) quando scrivo i parenti di A
A             D, H, I
H             L, S, K
E              J, A
K             L, D, F
J              N
non ho messo E perché e superiore di 1 grado ad A.
Ora, mi interessa considerarlo.
Quindi A ridiventa D, H, I, L, S, K, F (fase2) + E, J, N
come fase 2 più il parente superiore che si porta dietro il suo parente
di 1 grado, che a sua volta si porta dietro il suo di parente di 1 grado.
----------------------------------------------- Fase 4
Per le anime in cielo.
Se durante il vostro cammino, siete riusciti a indicarmi la retta via,
allora il codice di avvio del razzo termonucleare interstellare protonico
è pronto e quindi potrò raggingervi in cielo in men che non si dica.
(n.b. il razzo e ad un sol posto. I parenti rimangono a casa.)
Le strade del Signore sono infinite.
----------------------------------------------- Fase Fusa

provo anche a  ripostare, (sto notando che nel news i messaggi
invecchiano subito; si cresce molto velocemente) risemplificando
(ci ho provato) il post e ripartendo dal punto in cui sono arrivato.
post ripostato verso le 22,00 inerente (capperi non ricordo esattamente
l'oggetto; sto invechiando anche io) comunque:.... parenti di 1 2 3 grado
query o che altro...., circa.
ciao