Visualizzare record duplicati

di il
13 risposte

Visualizzare record duplicati

Buongiorno a tutti,
vorrei sottoporvi un quesito che non riesco a risolvere.
Ho l'esigenza di visualizzare in una maschera, durante l'inserimento di dati, che il valore di un determinato campo sia già presente ed allo stesso tempo visualizzare tutto il record.
A quel punto avere la possibilità di duplicarlo, quindi continuare con l'inserimento o andare avanti.
Il controllo vorrei che avvenisse dopo l'inserimento del dato in quel determinato campo.
Ringrazio tutti quelli che vorranno aiutarmi

13 Risposte

  • Re: Visualizzare record duplicati

    Io penserei a una casella combinata...
  • Re: Visualizzare record duplicati

    Ho cercato di capire ma non riesco ad associare la tua indicazione alle mie necessità.
  • Re: Visualizzare record duplicati

    Potresti dirci come si chiama la maschera?
    Come si chiamano i campi?
    In quale campo deve succedere una cosa X (SPIEGACELA QUADRATA) affinchè poi accada un'altra cosa Y (SPIEGACELA QUADRATA)?
    Ti chiedo una descrizione di tutto, dettagliata e ordinata, altrimenti nessuno riesce a farsi una idea di cosa appare dentro il monitor del tuo computer.
  • Re: Visualizzare record duplicati

    Ok messaggio ricevuto.
    Tabella Abbonato
    IDAbbonato
    Telefono
    Data
    Cognome
    Nome
    Indirizzo
    Cap
    Città
    Pr
    Rivista
    La maschera chiaramente ha gli stessi campi.
    Quando imputo i dati nel campo telefono vorrei che se il dato è già presente si visualizzi il record per intero , come se fosse una query di selezione, e se io lo ritengo opportuno si compilano alcuni campi automaticamente, ma non è fondamentale posso anche riscriverlo.
    L'importante e non bloccare il campo telefono con duplicato non ammesso ecc.
    Spero di essere stato più chiaro
  • Re: Visualizzare record duplicati

    Hai un problema di normalizzazione dei tuoi dati. Correggimi se sbaglio. Tu hai una lista di Clienti (o Abbonati) e una lista di Riviste e hai bisogno di associare questi due gruppi di dati. Nei database relazionali (quindi anche in Access) i dati vanno raggruppati in maniera omogenea per poi essere relazionati secondo opportune relazioni logiche. Venendo alla sostanza tu devi partire con 2 tabelle separate Clienti e Riviste e ragionare come segue:
    Un Cliente può essere abbonato a più Riviste.
    Una Rivista può essere acquistata da molti Clienti.
    Queste due affermazioni ci dicono che le due tabelle sono in relazione molti-a-molti e una relazione molti-a-molti va esplicitata attraverso una tabella di congiunzione con 2 relazioni uno-a-molti. Riepilogando, io direi che tu dovresti avere le seguenti 3 tabelle:

    Clienti
    IDCliente (contatore, chiave primaria)
    Cognome
    Nome
    Indirizzo
    Telefono
    ...altri campi tipicamente anagrafici

    Riviste
    IDRivista (contatore, chiave primaria)
    NomeRivista

    Abbonamenti
    IDAbbonamento (contatore, chiave primaria)
    DataAbbonamento
    IDCliente (numerico)
    IDRivista (numerico)

    Relazioni:
    Clienti.IDCliente uno-a-molti con Abbonamenti.IDCliente
    Riviste.IDRivista uno-a-molti con Abbonamenti.IDRivista

    Mi fermerei qui per ora.
  • Re: Visualizzare record duplicati

    Scusami, hai ragione, ci avevo pure pensato ma forse non avendo le giuste competenze mi sono fatto prendere dalla praticità a scapito chiaramente della giusta creazione della struttura di base.
    Adesso ho esattamente la situazione da te suggerita, cosa mi suggerisci di fare?
  • Re: Visualizzare record duplicati

    A questo punto la tua domanda dovrebbe cambiare. Il campo Telefono non c'entra nulla. Non è adatto per quello che (immagino) vorresti fare, cioè selezionare un IDCliente (con tutti i suoi dati appresso) nella tabella Abbonamenti. Qui ritorna l'esigenza di costruire una casella combinata (ben organizzata) in cui ti conviene visualizzare l'unione campi [Cognome]&[Nome], portandoti appresso altre colonne che visualizzano Indirizzo, Telefono e tanti altri campi.
  • Re: Visualizzare record duplicati

    Vediamo se ho capito.
    Ho creato una casella combinata nella maschera abbonamenti, dove acquisirò il nuovo abbonamento, e mi sono portato dietro tutte le colonne che mi servono dalla tabella clienti. Ho impostato la proprietà "solo in elenco" a No per avere la possibilità di acquisire clienti non presenti.
    Ma a questo punto oltre all'utilità di vedere il record già presente in clienti, non alimenterei la tabella clienti ma solo quella abbonamenti, o non ho capito quello che mi vuoi dire.
    Grazie per il tuo supporto
  • Re: Visualizzare record duplicati

    Io vorrei sapere da te cosa vuoi fare dopo aver cliccato sulla casella combinata Abbonamenti.IDCliente.
  • Re: Visualizzare record duplicati

    Ho una base dati clienti che dovrò importare nel db (quindi in Clienti). Devo acquisire nuovi abbonamenti e la problematica principale è che se un cliente esiste già devo sapere quale rivista gli ho già venduto, se l'ha pagata e se è il caso di spedirgliene un'altra.
    Io effettivamente non ho la necessità di avere 2 tabelle (Clienti e Abbonamenti) perchè la mia vecchia base dati è unica, ecco perchè sembrava che fossi partito male con l'idea di strutturare il tutto come avevo descritto all'inizio.
    Ora se strutturo il tutto come mi hai suggerito mi trovo in difficoltà perchè acquisendo i dati in abbonamenti avrò la mia brava base dati con i nuovi abbonamenti e il solo controllo sulla vecchia base dati che rimarrà ferma ad una certa data.
    Spero di essere stato chiaro.
  • Re: Visualizzare record duplicati

    VRG ha scritto:


    la problematica principale è che se un cliente esiste già devo sapere quale rivista gli ho già venduto, se l'ha pagata e se è il caso di spedirgliene un'altra.
    Io gestirei questo problema con un Indice Multicampo Univoco. Dai un'occhiata sulla guida in linea per costruirlo. Praticamente devi dire alla tua tabella che la combinazione IDCliente-IDRivista (forse qualche altro campo) non deve essere duplicata. Tu digita senza pensarci, se digiti una combinazione già esistente (con l'Indice Multicampo Univoco) Access ti invia un messaggio di errore e ti impedisce di continuare se lasci tali valori invariati.
  • Re: Visualizzare record duplicati

    E se io decido comunque di acquisire duplicando il record? Come faccio?
    E' questo il problema.
  • Re: Visualizzare record duplicati

    Per me c'è qualcosa di contraddittorio in tutto il discorso. Comunque sia io mi inventerei un campo X numerico compreso nell'elenco campi che concorrono alla formazione del Indice Multicampo Univoco. A questo campo X (che metterei un po' in disparte) attribuirei un valore predefinito. Quando duplichi una combinazione di valori, Access ti invia il messaggio di errore. A quel punto tu vai a correggere il valore numerico in X, fai passare per buoni tutti gli altri valori e direi che il gioco è fatto.
Devi accedere o registrarti per scrivere nel forum
13 risposte