Tabelle di Access 2007

di
Anonimizzato13622
il
19 risposte

Tabelle di Access 2007

E il mio primo post.
Ho creato in access 2007, due tabelle: "anagrafica"e "tabella prezzi".
La tabella prezzi non ha ID ed è costituita da due campi: descrizione lavoro e prezzo.
Sto creando una terza tabella "Lavorazioni", prendendo il campo nomi dall'anagrafica e i campi "descrizione lavoro" e "prezzo" da "Tabella prezzi".
In questa ultima tabella,inserisco il campo "descrizione lavoro" da una selezione, come faccio per fargli riportare automaticamente il Campo "prezzo" corrispondete al campo selezionato dalla stessa tabella prezzi??

19 Risposte

  • Re: Tabelle di Access 2007

    Stai cercando di realizzare, anche se in modo maldestro vista la mancanza di applicazione dei concetti di Normalizzazione che definisce anche l'importanza delle chiavi primarie e di conseguensa esterne, per realizzare relazioni.
    Quindi ti suggerisco di provare ad effettuare una ricerca nel forum in quanto l'argomento relazioni molti - molti sono state trattate spessissimo.
    In qualche mio intervento ho anche chiarito come gestire l'inserimento dati in tabella centrale tramite maschera.
  • Re: Tabelle di Access 2007

    Stai parlando solo di tabelle. Quello che vorresti tu si realizza meglio con le maschere...ad ogni modo la casella di ricerca_selezione (tecnicamente si chiama "casella combinata") deve contenere 2 colonne. Fra le proprietà della casella combinata devi scrivere Numero colonne: 2 (e si riferiscono rispettivamente a [descrizione lavoro]|[prezzo]). In questo modo quando selezioni un "descrizione lavoro" ti porti appresso anche il suo prezzo...il discorso però è ancora un po' monco...non è chiaro cosa vorresti ottenere.
  • Re: Tabelle di Access 2007

    Grazie per la risposta.
    Ho provato a creare una maschera come suggerisci, pero' dopo la creazione, non mi da più la possibilità di correggere eventualmente i dati.
  • Re: Tabelle di Access 2007

    A cosa ti riferisci? Potresti essere più esplicito?
  • Re: Tabelle di Access 2007

    Avrai sicuramente capito che sono solo agli inizi dell'uso di access.
    Come da tuo suggerimento, ho creato una maschera dalla tabella anagrafica e dalla tabella prezzi, riportando i campi che mi necessitano.
    dopo la creazione, mi sono accorto che nella maschera creata, non riesco ad aggiungere nuovi records e non riesco a correggere quelli già trascritti.
    Ovvero, non mi appare il record "Nuovo".
    Affrontavo gli argomenti passo passo, ma comunque dovrei alla fine avere il seguente risultato:
    ID, Medico, Descrizione lavoro, Quantità, Prezzo, Correttivo prezzo , Prezzo modificato, Importo.
    - "ID e Medico" sono presi da Tabella anagrafica;
    - "Descrizione lavoro" da tabella prezzi
    - "Quantità" valore numerico da inserire
    - "Correttivo" Valore valuta da inserire
    - "Prezzo modificato" Campo calcolato (Prezzo + Correttivo)
    - "Importo" Campo calcolato (Q.ta x Prezzo modificato)
    Se puoi, insegnami anche come inserire i campi "Correttivo, Prezzo modificato e importo.
    Grazie per la tua collaborazione
  • Re: Tabelle di Access 2007

    Prima di darti risposte azzardate, preferirei vederci chiaro su tutte le tabelle. Domande e osservazioni:
    1. Di cosa parla il tuo dabatase?
    2. Potresti elencare esattamente tutti i campi delle 3 tabelle?
    3. Anagrafica e Prezzi sono in relazione molti-a-molti attraverso la tabelle di congiunzione Lavorazioni? Se sì con quali campi (elencati nel punto 2.)?
    4. Mi sembra strano che la tabella Prezzi abbia solo 2 campi. Un Prezzo rischia di variare nel tempo e non puoi decidere di modificarlo direttamente dentro quella tabella.
  • Re: Tabelle di Access 2007

    Tabella anagrafica: ID, Cognome Medico, Nome medico, indirizzo medico, numero civico, CAP, Città
    Tabella prezzi: ID, Descrizione lavoro, Costo. (puoi suggerirmi come rendere modificabili i prezzi che variano nel tempo ?)
    Tabella lavorazioni: ID, Cognome medico, Cognome cliente del medico, Data ricevimento lavoro, Descrizione lavoro, Quantità, data Consegna lavoro.
    Il campo cognome medico della tabella anagrafica è collegato uno - molti con cognome medico della tabella lavorazioni, e il campo descrizione del lavoro è preso con una casella combinata da tabella prezzi
    Il database è destinato ad un laboratorio odontotecnico.
    Un primo operatore dovrà inserire ed operare solo su: Cognome Medico, data ingresso lavoro, Nome cliente del medico, Descrizione del lavoro e Quantità.
    Un secondo operatore dovrà operare su una maschera contenente tutti i dati precedentemente trascritti, con l'aggiunta automatica del campo costo, e dovrà potere inserire in un altro campo che chiamo "correttivo" un valore che corregge eventualmente il costo.
    Di conseguenza dovrà avere automaticamente il campo calcolato "Nuovo prezzo" (costo+correttivo) e il campo calcolato "Importo" (Quantità x Nuovo prezzo)
    Ancora grazie
  • Re: Tabelle di Access 2007

    ernestosup ha scritto:


    Tabella anagrafica: ID, Cognome Medico, Nome medico, indirizzo medico, numero civico, CAP, Città
    OK, anche se, leggi dopo, io scriverei IDPersona, Cognome, Nome, ecc...

    ernestosup ha scritto:


    Tabella prezzi: ID, Descrizione lavoro, Costo. (puoi suggerirmi come rendere modificabili i prezzi che variano nel tempo ?)
    Trovo che sarebbe più giusto chiamare la tabella DescrizioniLavori piuttosto che Prezzi perchè è dei primi che si parla principalmente. I loro relativi prezzi...ripeto non vanno gestiti lì.

    ernestosup ha scritto:


    Il campo cognome medico della tabella anagrafica è collegato uno - molti con cognome medico della tabella lavorazioni
    Non è consigliato usare il solo campo Cognome per relazionare 2 tabelle. Se malauguratamente avessi 2 medici con lo stesso Cognome avresti problemi. Il campo IDPersona (sicuramente univoco) deve essere chiave primaria.
    Analogamente ci vedrei un campo IDCliente nella tabella Lavorazioni.

    ernestosup ha scritto:


    il campo descrizione del lavoro è preso con una casella combinata da tabella prezzi
    Mi stai dicendo che non c'è la relazione uno-a-molti?

    ernestosup ha scritto:


    Tabella lavorazioni: ID, Cognome medico, Cognome cliente del medico, Data ricevimento lavoro, Descrizione lavoro, Quantità, data Consegna lavoro...
    ...Un secondo operatore dovrà operare su una maschera contenente tutti i dati precedentemente trascritti, con l'aggiunta automatica del campo costo, e dovrà potere inserire in un altro campo che chiamo "correttivo" un valore che corregge eventualmente il costo.
    Di conseguenza dovrà avere automaticamente il campo calcolato "Nuovo prezzo" (costo+correttivo) e il campo calcolato "Importo" (Quantità x Nuovo prezzo)
    Qua c'è molto caos. Le tabelle sono concepite per essere i contenitori dei dati più indispensabili al database. Per dati indipensabili intendo dire solo quelli che, se non c'è l'utente a metterli, nessun altro glieli può dare. Per tutti i campi che sono frutto di calcolo, espressioni derivate e quanto altro, a questa incombenza provvedono soprattutto le query e, in taluni casi, alcune caselle di testo nelle maschere.

    Ti consiglio di nominare tutti i campi ID in maniera appropriata per non avere future ambiguità. Quindi IDPersona, IDLavorazione. Il campo IDDescrizioneLavoro si potrebbe omettere in quanto DescrizioneLavoro risulterebbe sicuramente univoco, quindi può essere eletto chiave primaria.

    Riepilogando le relazioni, io ci vedrei le seguenti:
    Anagrafica.IDPersona uno-a-molti con Lavorazioni.IDMedico
    Anagrafica.IDPersona uno-a-molti con Lavorazioni.IDCliente
    DescrizioniLavori.DescrizioneLavoro uno-a-molti con Lavorazioni.DescrizioneLavoro

    Mi fermerei qui per ora. Vorrei che tu prendessi coscienza del nuovo assetto tabelle e campi.
  • Re: Tabelle di Access 2007

    Ti ringrazio, mi stai veramente arricchendo su access.
    Voglio dirti che io ho già fatto le query e sono riuscito a inserire e visualizzare quanto a me occorrente, il problema principale è che con le query non riesco a modificare quanto inserito e per tale motivo cercavo di creare una maschera o tabella, che mi desse tale possibilità.
    in ogni caso, provvederò a modificare le tabelle come mi hai detto.
    Appena eseguite le modifiche, mi faccio vivo.
    Grazie ancora per il tuo aiuto
  • Re: Tabelle di Access 2007

    Se le tabelle sono i contenitori di input dati, le query servono quasi essenzialmente a VISUALIZZARE risultati in base a domande che tu vuoi porre alle tabelle. Generalmente nelle query non si possono modificare i dati. Difficile spiegare il perchè, neanche la guida in linea di Access è efficace, fatto sta che è possibile modificare dati nelle query se queste prelevano dati da una sola tabella. Se vi sono due tabelle è possibile modificare alcuni campi, altri no. A mano a mano che il numero di tabelle importate in query aumenta, diminuisce sempre più la possibilità di modificarne i dati. Morale: rinunciarci è meglio.

    Se vuoi modificare dati su tabelle disposte su più livelli gerarchici (madre/figlia per intenderci) torna molto più comodo lavorare con le maschere/sottomaschere. La gerarchia non può essere messa in gioco a caso, ma deve ovviamente rispettare le relazioni che intercorrono fra le tabelle stesse (uno-a-molti).
  • Re: Tabelle di Access 2007

    Sono perfettamente d'accordo su quello che mi dici sulle query.
    Ho fatto i compiti a casa ed ho modificato le tabelle come mi hai suggerito. Spero di non aver fatto cas......vedi allegato.
    Ho già creato una maschera con i seguenti campi:
    Medico (da Anagrafica)
    Paziente (inserimento manuale)
    Data In (inserimento manuale)
    Descrizione del lavoro (da tabella descrizione lavori)
    Quantità (inserimento manuale)
    Data Out (inserimento manuale)
    Su detta maschera lavorerà l'operatore Antonio il quale non deve avere conoscenza di altri campi.
    A questo punto la mia esigenza è quella di creare una ulteriore maschera che oltre ai campi riportati sulla prima maschera, mi contenga anche i seguenti campi:
    Costo (da tabella descrizione lavori)
    Correttivo (inserimento manuale)
    Prezzo (Calcolato costo+correttivo)
    Importo (Calcolato Q.tà x Prezzo)
    Su questa maschera lavorerà Ernesto, che deve avere la possibilità di verificare la correttezza degli inserimenti di Antonio ed eventualmente modificarli,aggiungere manualmente il correttivo per poi visualizzare i calcoli conseguenti.
    Ho già provato a crearla in modalità guidata, dalle diverse tabelle, ma quando la visualizzo, non ho possibilità di aggiunte (nuovo) e/o correzioni.
    Grazie sempre per la tua pazienza, ma sono un testardo che cerca di cimentarsi con cose che magari potrebbe lasciare ad altri.
    Allegati:
    13622_dfd64a14e35cda43fce756be99b98832.jpg
    13622_dfd64a14e35cda43fce756be99b98832.jpg
  • Re: Tabelle di Access 2007

    Trovo il tentativo di far lavorare Antonio e Ernesto in quella maniera "diabolico". Non lo trovo ancora ortodosso/normalizzato. Io te lo lascio così, ma sono sicuro che avrai altri tipi di problemi in futuro: sbagliando si impara.
    Riepilogando Antonio lavora su una maschera che si chiamerebbe Lavorazioni1, mentre Ernesto lavora su una maschera che si chiamerebbe Lavorazioni2. Tutto sommato entrambe avrebbero gli stessi dati, ma visualizzati in maniera diversa: giusto?

    La relazione [Descrizione Lavori].[Descrizione del lavoro] uno-a-molti con Lavorazioni.[Descrizione del lavoro] non appare completa. Una relazione uno-a-molti va stabilita fra un campo eletto chiave primaria o comunque con l'impostazione Indicizzato: Sì (Duplicati non ammessi) e un campo con le STESSE CARATTERISTICHE, cioè stesso tipo e stessa dimensione, ma con Indicizzato: No oppure Sì (Duplicati ammessi). Se vuoi lasciare la linea di join come sta, per me va bene, il campo IDDescrizioneLavoro può essere superfluo. Nel relazionare hai anche dimenticato di mettere la spunta su "Applica integrità referenziale" che io trovo importantissima e da applicare sempre.

    ernestosup ha scritto:


    Ho già provato a crearla in modalità guidata, dalle diverse tabelle, ma quando la visualizzo, non ho possibilità di aggiunte (nuovo) e/o correzioni.
    A quali campi ti riferisci? Quale maschera? Lavorazioni1 di Antonio o Lavorazioni2 di Ernesto?
  • Re: Tabelle di Access 2007

    Quanto detto sulle maschere è corretto.
    Ho già creato una maschera con gli stessi identici campi della tabella lavorazioni (da te nominata lavorazioni 1) e la utilizzo in un menù per l'inserimento dati ( il tutto mi funziona).
    La mia difficoltà nasce quando cerco di creare la maschera che hai chiamato lavorazioni 2, ovvero una maschera che contenga tutti i campi della tabella lavorazioni1 con l'aggiunta dei seguenti campi:
    Campo Costo ( da Tabella descrizioni lavori)
    Campo Correttivo (Da inserire manualmente e stabilito su ogni lavorazione da Ernesto)
    Campo Prezzo (calcolato costo+ correttivo)
    Campo importo (calcolato quantità x prezzo)
    Come ti dicevo ho già provato a creare questa seconda maschera in modalità guidata, inserendo tutti i campi della tabella lavorazioni, ma quando cerco di inserire il costo da tabella descrizione lavori, mi leva la possibilità di operare sulla maschera (inserire altro record o correggere i record esistenti).
    Per tutto ciò mi sono bloccato, e non saprei nemmeno come inserire i campi calcolati.
    grazie sempre
  • Re: Tabelle di Access 2007

    ernestosup ha scritto:


    Campo Costo ( da Tabella descrizioni lavori)
    Campo Correttivo (Da inserire manualmente e stabilito su ogni lavorazione da Ernesto)
    Campo Prezzo (calcolato costo+ correttivo)
    Campo importo (calcolato quantità x prezzo)
    La procedura guidata ti permetterà di includere solo i campi della tabella Lavorazioni così come stanno. Stiamo parlando di campi manipolabili dall'utente in quanto, quando li vai a modificare/aggiungere/cancellare in maschera, sortiscono lo stesso effetto nella tabella sottostante. Quindi con la procedura guidata tu potrai includere solo i campi Qtà e Correttivo. Gli altri tre devi costruirli manualmente in visualizzazione struttura maschera e dirgli tu che cosa vuoi vedere.
    Per vedere il valore nel campo Costo, si presuppone che tu abbia nella casella combinata [Descrizione del lavoro] 2 colonne ([Descrizione del lavoro] e [Costo]). Occorrerà sfruttare la proprietà Column che sta all'interno della casella combinata e farlo vedere in una nuova casella di testo. Riepilogando:
    1. Vai in visualizzazione struttura maschera Lavorazioni2 (Ernesto) e aggiungi 3 caselle di testo (libere) che dovrai nominare tu, Costo, Prezzo e Importo, sfruttando la proprietà Nome elemento.
    2. Dentro le rispettive proprietà "Origine controllo" devi scrivere per Costo:
    = [Descrizione del lavoro].[Column](1)
    per Prezzo:
    = [Costo] + [Correttivo]
    per Importo:
    = [Qtà] * [Prezzo]
    3. Salva tutto

    Riguardo la proprietà Column, devi sapere che Access conta le colonne da 0, 1, 2...quindi devi interpretare così:
    1a colonna casella combinata = Column(0)
    2a colonna casella combinata = Column(1)
Devi accedere o registrarti per scrivere nel forum
19 risposte