Inserimento record indesiderato

di
Anonimizzato12502
il
9 risposte

Inserimento record indesiderato

Ciao a tutti, ho realizzato un db con access 2010 per la fatturazione e ho creato una maschera (fatture) e una sottomaschera (articoli) per emettere le fatture. Funziona quasi tutto bene, quando passo ad inserire un articolo nella sottomaschera, attraverso una casella combinata che me lo fa scegliere dalla tabella articoli, tutto si svolge correttamente e cioè nella casella combinata vengono visualizzati gli articoli e selezionandone uno viene inserito nella sottomaschera e i campi contenuti nell'articolo vanno a popolare quelli della sottomaschera. Il problema nasce quando chiudo la fatturazione e andando a controllare la tabella articoli vedo che mi è stato aggiunto l'articolo che ho inserito in fatturazione nella tabella come se fosse un nuovo articolo, ma ovviamente identico a quello già esistente che avevo precedentemente inserito (ad eccezione dell' ID che è una chiave primaria non duplicabile). Ho fatto la medesima cosa nella maschera principale della fatturazione per quanto riguarda l'inserimento del cliente con relativo indirizzo cap ecc... e tutto funziona correttamente cioè il cliente inserito attraverso la casella combinata nella maschera fatturazione non viene reinserito nuovamente nella tabella clienti. Qualcuno ha dei suggerimenti da darmi per risolvere questo problema, intanto grazie per la vostra attenzione.

9 Risposte

  • Re: Inserimento record indesiderato

    Come hai costruito la casella combinata?
    Punta sull'ID?
    Può darsi anche che hai impostato la proprietà "Solo in elenco" a No.
    Può darsi che la relazione Articoli--->DettagliFatture non abbia la spunta su "Applica integrità referenziale".
    ...ti ho risposto a braccio, ma, rileggendo bene, tu dichiari che la sottomaschera si chiama Articoli. Mi sembra sbagliato strutturamente. Una fattura può contenere molti Articoli, ma anche un Articolo può comparire in molte Fatture. Occorre una tabella DettagliFatture di congiunzione.
  • Re: Inserimento record indesiderato

    Ciao Osvaldo, l'origine controllo della casella combinata è sul campo DesArticolo (della tabella Anagrafica Articoli), l'origine riga è su Anagrafica Articoli e solo in elenco è impostato su "SI"
  • Re: Inserimento record indesiderato

    Scusami non avevo finito di leggere il tuo post, la spunta è su applica integrità referenziale
  • Re: Inserimento record indesiderato

    DesArticolo immagino sta per DescrizioneArticolo. Questo campo immagino non sia la chiave primaria che dovrebbe essere IDArticolo. È su questo campo che devi far puntare la casella combinata. Di conseguenza anche il campo-casella-combinata deve essere Numerico e non più Testo...spero di aver afferrato il tutto.
  • Re: Inserimento record indesiderato

    Grazie Osvaldo, adesso provo subito a fare le modifiche con il campo chiave e poi se non risce provo anche con una terza tabella di collegamento per una relazione molti a molti. Grazie ancora.
  • Re: Inserimento record indesiderato

    No, la prima parte della mia prima risposta è molto relativa. È importantissimo che ci sia la tabella di congiunzione, altrimenti non ha senso tutto il discorso.
  • Re: Inserimento record indesiderato

    Ho provato con la tabella di congiunzione contenente tre campi, ID della tabella con chiave primaria e i due campi IDFatture e IDArticoli (anche loro campi chiave) ho creato una relazione uno a molti tra tabella Fatture e Tabella congiunzione e tra tabella Anagrafica Articoli con Tabella congiunzione in modo da avere due relazioni uno a molti in entrambi i lati. La sottomaschera l'ho lasciata così com'è anche perchè modificando l'origine controllo con IDArticolo mi fa vedere gli articoli nella casella combinata ma non me li fa scegliere e mi dice "Impossibile modificare: controllo associato al campo numerazione automatica IDArticoli". Mi rimane il dubbio se dopo aver creato la tabella di congiunzione e le relazioni dovevo fare qualcosa anche nella sottomaschera Articoli nella casella combinata...
  • Re: Inserimento record indesiderato

    Le relazioni adesso sono corrette.
    Ovviamente la sottomaschera, immagino creata con procedura guidata, conserva molte proprietà della vecchia tabella sbagliata. Suggerisco di ricostruire lo scenario da capo partendo da maschera/sottomaschera Fatture/DettagliFatture. All'interno della sottomaschera DettagliFatture tu avrai il campo IDArticolo (Numerico) che ti serve per costruire la casella combinata.
    Se leggi molti altri post in questo forum sulla costruzione di una casella combinata, viene spesso suggerito di costruirla sul ID (quindi IDArticolo), ma fai in modo di mostrare un campo più "a colpo d'occhio umano" cioè testo, consiglio DesArticolo.
  • Re: Inserimento record indesiderato

    Grazie Osvaldo, ho fatto una nuova sottomaschera con la tabella di congiunzione nella quale ho messo i campi che mi servivano e i calcoli che dovevano fare. La casella combinata l'ho fatta con il campo DesArticolo per il motivo che ti dicevo sopra e il popolamento dei campi (prendendo i valori dai campi della tabella AnagraficaArticoli) con un po' di codice. Funziona tutto perfettamente e se vado a vedere all'interno della tabella fatture, espandendo sul segno + la visualizzazione vedo l'ID di collegamento e la tabella AnagraficaArticoli non viene modificata con l'aggiunta degli articoli che inserisco nella fatturazione. Grazie infinite per la tua consulenza e per la tua disponibilità.
Devi accedere o registrarti per scrivere nel forum
9 risposte