Creazione database Agenzia immobiliare

di il
14 risposte

Creazione database Agenzia immobiliare

Buongiorno a tutti, nella mia inesperienza con Access sto cercando di creare un semplice database per la gestione di immobili.

L'idea è avere 2 tabelle  (Contatti ed Immobili) nella quale impostare una relazione molti a molti affinché un cliente possa essere proprietario di più immobili e un immobile posso appartenere a più clienti.

Ho provato a creare questa relazione con una tab di connessione ma quando vado ad inserire i dati (o dalla tab contatti o dalla tab immobili) a volte mi crea dei duplicati, quando vorrei semplicemente richiamare dalla tab immobili i dettagli del contatto associato e viceversa senza che si generano duplicati.

Nella speranza di essermi spiegato al meglio, ringrazio in anticipo per una vostra risposta.

14 Risposte

  • Re: Creazione database Agenzia immobiliare

    Non ho ben comprendo l'intoppo. Devi creare una relazione molti a molti e generare una query per gestire le relazioni. Se hai difficoltà a farlo puoi guardare alcuni video su YouTube che spiegano il procedimento.

  • Re: Creazione database Agenzia immobiliare

    Esponi dettagliatamente:

    • nomi propri di tutte le tabelle
    • nomi propri di tutti i loro campi con indicazione di chiave primaria e chiave esterna
    • le relazioni
    • rispiega, usando i nomi propri, da quale tabella/maschera parti per lavorare e dove riscontri il problema dei duplicati
  • Re: Creazione database Agenzia immobiliare

    07/01/2024 - Samu.Lele ha scritto:


    Ho provato a creare questa relazione con una tab di connessione ma quando vado ad inserire i dati (o dalla tab contatti o dalla tab immobili) a volte mi crea dei duplicati, quando vorrei semplicemente richiamare dalla tab immobili i dettagli del contatto associato e viceversa senza che si generano duplicati.

    La m a m vuole una tabella intermedia particolare

    Deve avere una chiave composta formata dal campo che lega la prima tabella e dal campo che lega la seconda tabella.

    Se la tabella clienti ha idClienteMaster e la tabella immobili ha idImmobiliMaster, la tabella intermedia ha 2 campi (idClienteDetail e IdImmobileDetail ha una chiave composta formata dei due campi, ha due indici: uno è IdClienteDetail e l'altro è IdImmobileDetail.

    Quando la master è cliente (nel senso che selezionando un cliente vuoi vedere gli immobili posseduti) la tabella intermedia deve essere filtrata per IdClienteDetail.

    Se la tabella master è Immobili (nel senso che vuoi sapere un immobile quanti proprietari ha) la tabella intermedia deve essere indicizzata per IdImmobileDetail.

    Se inserisci integrità referenziale, ogni volta che inserisci un immobile al cliente selezionato verrànno inseriti gli id detail dei rispettivi master.

    Altrettanto, quando per un immobile inserisci un cliente verrà popolata la tabella intermedia.

    A te cosa va storto?

  • Re: Creazione database Agenzia immobiliare

    Se non mostri tabelle, campi e relazioni, temo che non ne verrai fuori.

  • Re: Creazione database Agenzia immobiliare

    Perdonatemi ragazzi provo a spiegarmi meglio:

    Queste sono le tabelle con i rispettivi campi:

    1° PROBLEMA 

    vorrei che l'ID_cliente sia uguale al CF del contatto e l'ID_immobile di questo formato (es. “F10P11S12” dove F = Foglio P= Particella S= Subalterno che sono gli identificativi catastali) questo credo mi darebbe più facilità nell'agganciare i contatti agli immobili e viceversa. L'errore che mi da riguarda ovviamente il tipo di dati e quindi non riesco a metterli in relazione.

    2° PROBLEMA

    Vorrei mettere in relazione molti a molti le 2 tabelle perchè un contatto può essere proprietario di più immobili e un immobile può avere più contatti (Proprietari). Per far questo ho creato questa TabConn dove sicuramente dovrò rivedere il Tipo dati per connetterli

    La relazione M/M ho provato a crearla ovviamente mantenendo su ID_cliente la numerazione automatica e su ID_immobile il formato che vedete nella foto altrimenti come vi ho detto prima mi da errore di tipo dati (non può contenere valore Null).

    Comunque questa è la relazione creata:

    Quando però entro nelle rispettive tabelle e clicco sul + mi fa visualizzare nella Tab.Contatti solo ID_Immobile senza gli altri dati e nella Tab.Immobili solo ID_cliente quando vorrei vedere tutti gli altri dati di riferimento.

    Ho provato anche a cambiare le proprietà delle Tabelle: “Nome foglio dati secondario” per Tab.Contatti la Tab.Immobili e viceversa ma in questo caso su ogni contatto mi fa vedere tutti gli immobili (e viceversa).

    Cosa vorrei in fin dei conti: 

    Avere una maschera che mi faccia inserire i clienti e una maschera che mi faccia inserire gli immobili nella quale poter richiamare/agganciare uno o più proprietari dalla tab.contatti.

    Avevo pensato anche ad una maschera che mi ricerchi i clienti e per ogni cliente i suoi immobili agganciati).

    Nella speranza di essere stato esaustivo ringrazio tutti per il vostro aiuto.

  • Re: Creazione database Agenzia immobiliare

    Le immagini non si vedono. Vai in modifica e prova ad aggiungerle nuovamente.

    Le avevi aggiunte tramite il pulsante apposito della toolbar dell'editor o hai provato a trascinarle dal tuo PC all'editor?

  • Re: Creazione database Agenzia immobiliare

    08/01/2024 - Toki ha scritto:


    Le immagini non si vedono. Vai in modifica e prova ad aggiungerle nuovamente.

    Le avevi aggiunte tramite il pulsante apposito della toolbar dell'editor o hai provato a trascinarle dal tuo PC all'editor?

    Grazie Toki, ora dovrebbero vedersi.

  • Re: Creazione database Agenzia immobiliare

    08/01/2024 - Samu.Lele ha scritto:


    vorrei che l'ID_cliente sia uguale al CF del contatto e l'ID_immobile di questo formato (es. “F10P11S12” dove F = Foglio P= Particella S= Subalterno che sono gli identificativi catastali) questo credo mi darebbe più facilità nell'agganciare i contatti agli immobili e viceversa. L'errore che mi da riguarda ovviamente il tipo di dati e quindi non riesco a metterli in relazione.

    Id serve per creare un indice unico. Puoi anche non mostrarlo all'utente. È il telaio di una vettura.

    Per l'id immobile, è un id parlante. Lo crei, controlli che non esiste già e lo memorizzi (puoi anche costruirlo in fase di inserimento dei dati catastali ma attenzione perché non sempre ci sono tutti i dati, in più devi inserire il codice comune perche su due edifici confinanti potresti trovarti Lo stesso foglio, la stessa particella ma comuni diversi.

    Io userei sempre un id automatico.

    08/01/2024 - Samu.Lele ha scritto:


    La relazione M/M ho provato a crearla ovviamente mantenendo su ID_cliente la numerazione automatica e su ID_immobile il formato che vedete nella foto altrimenti come vi ho detto prima mi da errore di tipo dati (non può contenere valore Null).

    Crea la relazione con integrità.

  • Re: Creazione database Agenzia immobiliare

    Se ho capito quello che vuoi fare, devi lavorare su tabella connessione e considerare tutte le altre semplici Anagrafiche.

    Quindi la tabella connessioni per essere veramente utile deve avere come minimo 4 campi:

    Idconnessioni
    FkIdcontatti
    FkIdimmobile
    F10P11S12

    E dovrai lavorare solo ed esclusivamente su questa tabella e non sulle altre due, che rimarranno due tabelle che contengono i dati personali dei contatti e degli immobili (come indirizzo, stato dell'immobile, particelle catastali, cioè i dati statici dei vari soggetti)

    Se poi ad esempio, dovrai aggiungere possibili clienti, dovrai aggiungere la tabella anagrafica clienti e nella tabella connessioni, aggiungerai un campo molti a molti con il relativo cliente.

  • Re: Creazione database Agenzia immobiliare

    Sulla scia del ragionamento di fratac, più che lavorare su tabelle, servono le relative maschere. Quindi lavorare sulla maschera Connessioni e selezionare con apposite caselle combinate IDImmobile e IDCliente. Solo quando uno di questi ultimi non c'è nella lista, procedere con l'evento “Non in elenco” (NotInList) ecc…

  • Re: Creazione database Agenzia immobiliare

    Buongiorno ragazzi,

    allora sono riuscito a creare la relazione molti a molti tra Tabella Clienti e Tabella Immobili tramite una terza Tabella di Connessione.

    le elenco:

    Il problema però è che mi fa visualizzare nella Tabella Immobili solo il CF (senza nome e cognome associato) e viceversa nella Tabella Contatti mi fa visualizzare solo il riferimento all'immobile (senza indirizzo ecc).

    Come posso risolvere questo problema?

  • Re: Creazione database Agenzia immobiliare

    La relazione è sbagliata. Devi creare un id_cliente nella tabelle di connessione e relazionarla all' id_cliente della tabella clienti. Togli CF nella tabella connessione che non serve e gestisci tutto attraverso una query.

  • Re: Creazione database Agenzia immobiliare

    Le relazioni di partenza andavano bene. Devi ottimizzare le tue caselle combinate. Prova a leggere questo documento

    Casella combinata.docx

  • Re: Creazione database Agenzia immobiliare

    Molti a molti significa che i dati puoi relazionarli in due sensi:

    1. A (1) >C>B(m)

    E

         2. B(1)>C>A(m)

    Ma per ottenere questo risultato, nel tuo caso: A=contatti; B=immobili

    Caso 1: (consultazione dati)

    Tabella Master: contatti

    Detail: query (select * from tab_conn inner join immobili on tab_conn.idimmobile=immobili.idimmobile Order by tab_conn.CF)

    Caso 2: (consultazione dati)

    Tabella Master: immobili

    Detail: query(select * from tab_conn inner join contatti on tab_conn.cf=contatti.cf Order by tab_conn.idImmobile)

    Tratta le relazioni come 1 a molti tra tabella e query

    12/01/2024 - Samu.Lele ha scritt

Devi accedere o registrarti per scrivere nel forum
14 risposte