Record duplicati non richiesti

di il
5 risposte

Record duplicati non richiesti

Buongiorno
approfittando del tempo messo a disposizione dalla forzata clausura, ho aggiornato il data base degli associati inserendo alcune funzioni complementari.
Partendo dalla tabella dati esistente (che comprende oltre 700 record) ho creato altre tabelle collegate tra loro da una relazione uno a molti.
Relazioni.png
Relazioni.png

Ho creato poi delle maschere che visualizzando il nominativo ricercato tramite una casella combinata, permettono di inserire altre informazioni (Es: pagamento quota associativa, numero di tessera ecc.)
Le maschere sono così strutturate:
La maschera ricerca cognome tramite casella combinata visualizza i dati del socio, accertato che il record da aggiornare sia esatto si hanno a disposizione diversi pulsanti che aprono altre maschere. Le maschere richiamate tramite la funzione WHERE=="[IDDati]=" & [IDDati] visualizzano i record della tabella relativa al socio da aggiornare/modificare. Tutto sembrava funzionare bene ma mi sono accorto che, aggiungendo delle informazioni (esempio un pagamento) sulla tabella dati si creava un nuovo record (che aveva lo stesso ID del record del socio modificato inserito come cognome).
N.B.le maschere sono visualizzate vuote per tutelare la privacy, ma nel funzionamento normale contengono i dati.
Gradito un aiuto per risolvere questo problema che di fatto rende inutilizzabile il data base.

5 Risposte

  • Re: Record duplicati non richiesti

    E' probabile che sia il naturale seguito di questo https://www.iprogrammatori.it/forum-programmazione/access/memorizzare-record-una-maschera-aprire-altra-maschera-con-quel-record-t45125.html

    pippo60 ha scritto:


    Tutto sembrava funzionare bene ma mi sono accorto che, aggiungendo delle informazioni (esempio un pagamento) sulla tabella dati si creava un nuovo record (che aveva lo stesso ID del record del socio modificato inserito come cognome).
    Non ho capito niente. Pubblica sempre il codice completo, con i tag code.

    pippo60 ha scritto:


    N.B.le maschere sono visualizzate vuote per tutelare la privacy, ma nel funzionamento normale contengono i dati.
    OK, nessuno vuole e deve vedere i dati degli iscritti, varie ed eventuali, ma la procedura giusta è oscurare (spennellando informaticamente anche di bianco) delle maschere che hanno un contenuto reale, non che tu hai aperto vuote, altrimenti non si capisce cosa succede realmente. Spero di essermi spiegato.
  • Re: Record duplicati non richiesti

    Philcattivocarattere ha scritto:


    E' probabile che sia il naturale seguito di questo https://www.iprogrammatori.it/forum-programmazione/access/memorizzare-record-una-maschera-aprire-altra-maschera-con-quel-record-t45125.html

    In realtà no...
    Il data base è stato realizzato ex novo utilizzando si la tabella originale, ma che è stata scomposta in più tabelle separate.
    Relazioni
    Relazioni

    Il problema si verifica quando, aprendo la maschera di ricerca
    Maschera ricerca
    Maschera ricerca

    e selezionando una delle opzioni in alto (esempio Gestione pagamenti) si va ad aprire un ulteriore maschera N.B. la maschera di ricerca rimane aperta sotto Quando vado ad aggiornare oppure inserire un pagamento nella tabella dati (TDati) si genera un report non voluto che eredita nel campo cognome il numero di IDDati (in questo caso 2).
    Nel record non ci sono ulteriori campi, ma solo IDDati progressivo (Chiave primaria) ed il cognome (2)
    Spero di essere stato capace di illustrare il problema.
    La stessa cosa succede con le altre opzioni, questo mi fa pensare ad un errore comune che non sono riuscito a focalizzare.
  • Re: Record duplicati non richiesti

    La Finestra Relazioni è inguardabile sotto molti punti di vista:
    1. Quello che io chiamo "effetto ragnatela", ossia le relazioni sparse e incrociate (talvolta è solo un fatto estetico)...ma...
    2. Soprattutto, ignorando sia pur gli scopi del database, mi appare completamente NON NORMALIZZATO. Questo impedisce qualsiasi tentativo di progettazione oggetti successiva.
    3. Mia opinione personale: evita nella Finestra Relazioni le relazioni LEFT o RIGHT, usa sempre quelle standard di Tipo 1 (INNER).
  • Re: Record duplicati non richiesti

    pippo60 ha scritto:


    ...nella tabella dati (TDati) si genera un report non voluto che eredita nel campo cognome il numero di IDDati (in questo caso 2).
    ...
    La stessa cosa succede con le altre opzioni, questo mi fa pensare ad un errore comune che non sono riuscito a focalizzare.
    Occhio che probabilmente non hai chiuso qualche tag QUOTE tanto che l'intero post sembra quotare me.
    Passando invece al concreto: qualche codice viene eseguito al click sul pulsante "Gestisci pagamento"? La maschera che si apre di che tipo è? è una maschera con sottomaschera? una maschera divisa? che origine dati contiene? Quali sono le sue proprietà iniziali (scheda Dati - con i 4 "Consenti")?
    Se usi le macro, tanto belle nell'autocomposizione guidata dei pulsanti, convertile in codice, può facile da pubblicare e da gestire in debug (come quello che stiamo cercando di fare adesso, per capire dov'è il problema)
  • Re: Record duplicati non richiesti

    Salve, dopo varie prove ho risolto.
    Avevo strutturato le tabelle collegando tra loro alcuni campi della tabella dati (Cognome Nome data di nascita) ad identici campi nelle tabelle secondarie.
    Questo creava quando inserivo un record nuovo nelle tabelle secondarie un record nella tabella Dati che faceva riferimento al record inserito nelle tabelle secondarie (integrità referenziale).
    E' bastato eliminare i campi identici dalle tabelle secondarie per risolvere.
Devi accedere o registrarti per scrivere nel forum
5 risposte