Newsgroup: it.comp.appl.access
Titolo: Problemi con Query...

salve...ho una tabella chiamata Anagrafe ed una chiamata Esenzioni...
esse sono in relazione tra loro...  ogni utente ha un Id univoco...sia in
tabella Esenzioni sia in tabella Anagrafe....
il mio problema è questo... siccome un utente può avere + di un esenzione x
cui la tabella Anagrafe contiene  (esempio) 4000 record contro i 5000 record
di Esenzioni come posso fare una query affinchè di ogni utente mi mostri
tutte le sue esenzioni ... questo mi serve affinche crei poi un report o una
stampa unione in Word x stampare le lettere di avviso di scadenza....
spero di essermi spiegato bene..


ciao super
da quanto ho capito, non mi sembra in "Esenzione" tu abbia messo il
riferimento ad "Anagrafe" se e' cosi hai perso!
cmq
Anagrafe(ID, etc)
Esenzioni(IdRefAna,ID, etc)
e quindi relazione Anagrafe(ID)-->Esenzioni(idrefAna)
N.B. non sono convintissimo dell'uso dell'ID a tutti i costi
-- 
Alessandro Cara


Il tuo è il classico caso di due tabelle che debbono essere in relazione fra
di loro nella modalità uno-a-molti (un utente può avere più di un'esenzione)
e devi rispettare le "regole di bazzica" di una tale architettura.
Sicuramente ambedue le tabelle contengono il campo ID; è in base a questo
campo che DEVI mettere in relazione le due tabelle; per la tabella sul lato
uno (Anagrafe) ID rappresenta la chiave primaria, mentre per la tabella sul
lato molti (Esenzioni) sarà una chiave così detta esterna. Correggo pertanto
una tua affermazione: solo per la tabella Anagrafe il campo ID è univoco e
no per la tabella Esenzioni.
Per rispettare la regola che TUTTE le tabelle debbono avere una chiave
univoca (detta chiave primaria), te ne devi creare una anche per la tabella
Esenzioni: potrebbe chiamarsi IdEsenzioni ed avere un tipo campo Contatore.
Se il tipo campo di ID nella tabella Anagrafe è Contatore, per la tabella
Esenzioni deve essere Numerico; questo perchè i campi che mettono in
relazione due tabelle debbono avere un tipo campo omogeneo.
Il modo classico per aggiornare le tue due tabelle è quello di crearti una
maschera (Maschera1) che abbia come origine record la tabelle sul lato uno
(Anagrafe); inserisci in Maschera1 una sottomaschera che abbia come origine
record la tabella sul lato molti (Esenzioni).
Le proprietà "Collega campi secondari" e "Collega campi master" del
controllo sottomaschera di Maschera1 debbono contenere ID.
Se vuoi stamparti le tabelle, con la stessa logica di maschera e
sottomaschera, puoi crearti un report che contiene un sottoreport.
--
Roberto

 ha scritto nel messaggio
news:39BE54C1...@blunet.it...

anzitutto grazie x aver risposto al mio messaggio...



Grazie Roberto x avermi risposto...gentile come sempre...però ti ho seguito
fino alla linea di cui sopra..allora preciso che :
tabella Anagrafe > ID_assistito =chiave primaria >contatore.
tabella Esenzioni >ID_assistito = numerico.
ho provato a fare la relazione uno a molti...e dovrebbe comparire " °° "
giusto ?? ma non compare... spunto Applica Integrità Referenziale... e non
me lo accetta rispondendomi il seguente errore...
"impossibile creare la relazione e applicare l'integrità referenziale.
i dati nella tabella "Esenzioni" violano le regole di integrità referenziale
è possibile, ad esempio, che sono presenti dei record relativi ad un
impiegato nella tabella correlata ma non nella tabella primaria. Modificare
i dati in modo che esistano record primari per tutti i record correlati.
per creare la relazione senza le regole di integrità referenziale,
disattivare la casella di controllo "
indubbiamente x te sarà una cosa semplicissima...ma io non sò come
fare...come mi suggerisci di procedere ??? Grazie...
PS- scusa Roberto... ma la notte non dormi oppure l'orologio del pc và male
???
--
SuperPippo :o(((


Facci sapere gli sviluppi della situazione.
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

 tuo progetto.
quest'ultimo tuo mi incuriosisce... (scusa la mia ignoranza se dico una
stronzata) come ti dicevo le due tabelle non possono avere record
corrispettivi xchè Tab Anagarfe porta 4000 umani e Tab Esenzioni porta 5000
patologie degli stessi...minimo
1 x esente ad un max di 5 !!!
posso agire anche come tu mi hai detto cancellando tutti i record
?(tenendomi una copia delle tabelle) applicare chiavi primarie ed integrità
referenziali... e poi ci posso incollare il tutto ??? Bah...  la vedo
nera......


[CUT]
Se non risolviamo il problema della chiave primaria di Esenzioni non è
possibile andare avanti; poichè una chiave primaria l'hai sicuramente
definita, altrimenti non avresti potuto caricare dati nella tabella
Esenzioni, posta in maniera dettagliata la struttura di Esenzioni, indicando
quale campo o campi rappresentano la chiave primaria.
Naturalmente troveremo una soluzione che non ti faccia perdere i 4000 + 5000
record esistenti nelle due tabelle.
Roberto


Ok...Roberto...hai perfettamente ragione...Cmq...non sò come postare la
struttura del mio
Db per cui ti chiedo il permesso di postare in e-mail il Db in cui ho fatto
rimanere solo 50 esenti
...l'ho zippato ed è di 168 Kb...e l'ho convertito in Access 97 dato che lo
uso con A2000...in questa maniera credo ti sarà tutto + chiaro....
aspetto una tua conferma prima di effettuare un invio in e-mail !!!
Ti ringrazio sempre x il tuo interessamento e la tua
disponibilità...Giuseppe...
Ps- sappi a priori che questo Db io stò cercando di
modificarlo/perfezionarlo da un Db già preesistente e  che ritenevo poco
funzionale x le nostre esigenze...x cui se ritieni ci siano delle cose da
eliminare senza chiaramente compromettere l'uso del Db...puoi
suggerirmelo...tnx
--
Super Pippo :o)))

 ha scritto nel messaggio
news:Doqw5.18340$XZ4.1...@news.infostrada.it...

e va bè, pe sta volta......... ;o)
Comunque la chiacchierata la continuiamo nel NG.
Roberto


Certo...scusa era mia intenzione dirti che le eventuali risposte me le
facessi in NG... ok allora
spedisco !!!
--
togli QRZ? x rispondermi in e-mail.
--------------------------------
SuperPippo :o))

 > e va bč, pe sta volta......... ;o)

Ti invio il tuo Database corretto e con dentro anche la maschera Anagrafe1
con la quale potrai ora fare sia gli aggiornamenti della tabella Anagrafe
che della tabella Esenzioni.
Gli interventi che ho fatto sono i seguenti:
1) Ho aggiunto come primo campo della tabella Esenzioni un campo
Id_Esenzioni; č un contatore e l'ho dichiarato come chiave primaria della
tabella Esenzioni
2) Ho creato, tramite i campi Id_Assistito,  una relazione uno-a-molti tra
le due tabelle (vedi che ora che le chiavi primarie stanno a posto Access
crea questa relazione).
3) Ho creato la maschera Anagrafe1 che ha come origine record la tabella
Anagrafe: ho aggiunto in questa maschera, tramite l'Autocomposizione
controllo, un controllo sottomaschera nel quale ho inserito la tua maschera
Esenzioni.
Non ho guardato altro del tuo Database.
Ciao
Roberto

 Non ho guardato altro del tuo Database.
-----------------
anzitutto grazie x l'aiuto Roberto...sei stato gentilissimo...
ho provveduto a reincollare i record..con difficoltà.... dovendo creare
anche io nel vecchio un campo Id altrimenti non me lo incollava...Cmq  ora
ho rimesso tutto a posto....
le domande ora sono due... posso ora modificare la mia maschera Anagrafe con
i parametri della tua Anagrafe1 o mi consigli di utilizzare la tua Anagrafe1
e modificare quella ??????
poi ritornando al principale problema di questo thread x eseguire delle
stampe in cui su  ogni foglio ci siano i dati (Codice Esenzione e Data di
Scadenza) di ogni esente....mi conviene sbattere la testa x una stampa
unione in word... o posso fare un report in Access ???
cosa mi suggerisci ???


Io lo farei con un report di Access che abbia come origine record una query
di selezione basata sulla tabella Esenzioni che metterai in join con la
tabella Anagrafe.
