Newsgroup: it.comp.appl.access
Titolo: Relazioni

Dovrei costruire 3 tabelle di tipo 'gerarchico' referenziate in questo modo:
Area:                          (Non ci possono essere città uguali)
    Padova
    Milano
    Vercelli
    Ecc.......
        Distretto:             (Potrebbero esserci nomi uguali)
            Distretto-1
            Distretto-2
            Distretto-3
            Ecc..
                Agente:       (Potrebbero esserci nomi uguali)
                    Agente-1
                    Agente-2
                    Agente-3
                    Ecc......
Nella tabella clienti dovrei inserendo l'agente identifico automaticamente
l'area e il distretto a cui appartiene.
Vorrei che la tabella clienti (al campo agente) fosse referenziata alla
struttura sopra descritta.
Qualcuno mi potrebbe indicare un metodo?
Grazie, Alberto

 ha scritto nel messaggio
news:m93$9BwOA...@newsmst.mcis.galactica.it...

Se non ho capito male, avrai in gioco quattro tabelle: TabClienti,
TabAgenti, TabDistretti e TabAree.
Prima di creare le relazioni tra le 4 tabelle occorre definire che tipo di
relazioni vanno create: uno-a-molti oppure molti-a-molti.
Ad esempio, fermo restando che in un Distretto possono intervenire più
Agenti, un Agente può intervenire su più Distretti?
Se la risposta è no, ti trovi davanti a una relazione uno-a-molti da
realizzare direttamente tra le due tabelle tramite un campo IdDistretto;
detto campo sarà presente nella TabDistretti cone chiave primaria e nella
TabAgenti come chiave eterna.
Se invece la risposta è si, la cosa si complica un pò, in quanto sei davanti
a una relazione molti-a-molti che non poi creare direttamente come scritto
sopra, ma la puoi realizzare solamente indirettamente tramite una terza
tabella. Questa tabella potrebbe chiamarsi TabAgeDis ed avere la seguente
struttura:
TabAgeDis
-----------
IdAgente                Numerico
IdDistretto              Numerico
La chiave primaria è l'insieme dei due campi.
TabAgeDis dovrai metterla in relazione uno-a-molti con TabAgenti tramite il
campo IdAgente e in relazione uno-a-molti con TabDistretti tramite il campo
IdDistretto.
La stessa analisi la devi effettuare anche per effettuare la relazione tra
le altre tabelle.
Ovvero, fermo restando che un Agente può servire più Clienti, un Cliente può
essere servito da più Agenti?
Ed inoltre, fermo restando che un Distretto contiene più Aree, un Area può
appartenere a più Distretti (probabilmente no, ma i direttori vendite sono
così strani).
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

 news:m93$9BwOA...@newsmst.mcis.galactica.it...



 news:m93$9BwOA...@newsmst.mcis.galactica.it...



Ho capito perchč si inchioda!
Va in loop perche nella subform Distretto c'č:
Sub Form_Current()
    Dim ParentDocName As String
    On Error Resume Next
    ParentDocName = 
Me.Parent.Name
    If Err <> 0 Then
        GoTo Form_Current_Exit
    Else
        On Error GoTo Form_Current_Err
        Me.Parent![SF_Agenzia].Requery
    End If
Form_Current_Exit:
    Exit Sub
Form_Current_Err:
    MsgBox Error$
    Resume Form_Current_Exit
End Sub
Come faccio a far saltare il comando Me.Parent![SF_Agenzia].Requery quando
sto eliminando il record ?
Grazie, Alberto


L'errore sta nel fatto che hai messo una sottomaschera Agenzia nella
maschera principale Area.
Poiché un'Area é suddivisa in Distretti e un Distretto è suddiviso in
Agenzie, devi inserire nella maschera Area solo la sottomaschera Distretto
(abbi l'accortezza che questa sottomaschera sia con visualizzazione a
Maschera singola).
A sua volta la sottomaschera Distretto deve contenere una sottosottomaschera
Agenzia (questa dichiarala con una visualizzazione a Maschere continue).
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

Hai ragione !!
Grazie :-)