Aiuto!! Problemi con le relazioni e Inserimento dati

di il
9 risposte

Aiuto!! Problemi con le relazioni e Inserimento dati

Salve a tutti è la prima volta che scrivo, e sono alle prime armi, uso access 07;
Il mio problema è questo (magari alla fine è una cavolata, ma sono entrato nel pallone),
ho 2 tabelle
1) Controllo con i campi – ID (Chiave) - n°controllo – Comune – Esito Controllo - IDDitta
2) Ditta con i campi IDD (Chiave- Numerazione Automatica) - Nome Ditta – Prodotto

IDDitta e di tipo Numerico

Le due tabelle sono relazionate 1 a molti tra di loro tra i campi IDDitta e IDD

detto questo, vorrei una maschera per l'inserimento dati, dove si compilano i campi:

n°controllo – Comune – Esito Controllo - Nome Ditta (casella combinata)– Prodotto

vorrei che inserendo il nome ditta in automatico nella tabella controllo campo IDDitta venga inserito il corrispettivo IDD del Nome Ditta

come faccio??
grazie in anticipo

9 Risposte

  • Re: Aiuto!! Problemi con le relazioni e Inserimento dati

    Benvenuto nel forum. Niente panico (puoi omettere la parola Aiuto quando scrivi un titolo di thread). Siamo qui a darti una mano.

    Per me hai più problemi.

    Lez ha scritto:


    ho 2 tabelle 1) Controllo con i campi – ID (Chiave) - n°controllo – Comune – Esito Controllo - IDDitta2) Ditta con i campi IDD (Chiave- Numerazione Automatica) - Nome Ditta – Prodotto
    Siamo sicuri che i campi dentro ognuna di queste tabelle sono omogenei? Di cosa parla il tuo database?

    Lez ha scritto:


    Le due tabelle sono relazionate 1 a molti tra di loro tra i campi IDDitta e IDD
    Per ortodossia di esposizione sarebbe più corretto dire IDD uno-a-molti con IDDitta. Ossia descrivere sempre prima il campo del lato uno e poi quello del lato molti.

    Lez ha scritto:


    vorrei una maschera per l'inserimento dati, dove si compilano i campi: n°controllo – Comune – Esito Controllo - Nome Ditta (casella combinata)– Prodotto vorrei che inserendo il nome ditta in automatico nella tabella controllo campo IDDitta venga inserito il corrispettivo IDD del Nome Ditta
    Non sarebbe corretto elencare tutti quei campi per fare quello che hai chiesto. Ignoro la correttezza progettuale delle 2 tabelle e le prendo per buone così.
    In sostanza tu dovresti costruire una maschera sulla sola tabella Controlli. Il campo IDDitta (numerico) devi trasformarlo in "casella combinata". Poi ti serve progettare la casella combinata "ben congeniata" in modo da portarti tutte le informazioni che ti servono provenienti dalla tabella madre Ditte.
  • Re: Aiuto!! Problemi con le relazioni e Inserimento dati

    Scusa per tutte le imprecisioni...

    cosa intendi per casella combinata ''ben congeniata''????
  • Re: Aiuto!! Problemi con le relazioni e Inserimento dati

    Leggi la guida in linea sull'argomento "casella combinata" o "casella di ricerca". Esistono anche procedure guidate per metterle in piedi come piace a te. Leggi anche molti altri thread in questo e altri forum Access. E' un argomento già ampiamente trattato.
  • Re: Aiuto!! Problemi con le relazioni e Inserimento dati

    Nelle Relazioni 1-M tra Tabelle, si deve gestire in modo speculare la parte Interfaccia dati..., e questo si ottiene con una Maschera(Tabella lato 1) ed una SottoMaschera(Tabella lato Molti)

    In questo caso Maschera(Ditta), e Sottomaschera(controlli)

    Con questo scenario la tua richiesta è già soddisfatta in quanto i dati della Ditta sono presenti...
    Hai preso in considerazione questo modo di rappresentare i dati...? (è quello giusto)
  • Re: Aiuto!! Problemi con le relazioni e Inserimento dati

    Ho cercato in vari forum ma non ho trovato niente che mi spiegasse come fare.. (o sono io che non capisco)
    con sottomaschere non mi piace!!
    forse mi sono spiegato male o non ho capito io! o non si puo fare!! abbiate pazienza!!

    Adesso funziona così!!

    Inserisco n° controllo (casella testo, tipo numerico)
    Inserisco esito (casella di testo, tipo testo)
    inserisco IDDitta (casella combinata, tipo numerico) [casella combinata che ha origine riga nella tabella Ditta campo IDD (Chiave Primaria)]

    Poi faccio una query e tutto torna!! a quel controllo risulta quella ditta e tutti i dati della ditta.

    Adesso il mio problema è! Che non voglio scegliere il IDD corrispettivo della ditta nella casella combinata [anche perchè mi dovrei memorizzare l'IDD di decine di ditte], ma scegliere da una casella combinata collegata al campo Nome Ditta ed in automatico i due campi IDD e IDDitta si relazionino.

    '' Ho provato a mettere come chiave primaria il campo Nome Ditta (Tipo Testo) e relazionarlo con IDDitta (Tipo Testo) è funziona tutto perfettamente.. fino a che non si inseriscono due ditte con lo stesso nome!! allora va in errore''
    Spero di essere stato più chiaro sul mio problema!

    Come posso fare?!?
  • Re: Aiuto!! Problemi con le relazioni e Inserimento dati

    Io ti suggerisco di ragionare per piccoli e COERENTI piccoli passi alla volta. Io ti ho fatto alcune domande che, è vero che non c'entrano nulla con la domanda principale, ma servono a inquadrare l'intero contesto meglio per una corretta comprensione generale. Ribadisco le mie domande e approfitto per alcune osservazioni:
    A) Di cosa parla il tuo database?
    B) Ti consiglio di dare il nome tabella al plurale, quindi Ditte e Controlli. E i nome campo al singolare: OK.
    C) Hai nominato il campo IDD in Ditte e IDDitta in Controlli. Forse avevi paura di avere nomi ridondanti. In linea generale va bene, ma quando si tratta di campi relazionati, la denominazione può essere uguale (io la consiglio, quindi IDDitta a entrambi i campi).
    D) Cosa rappresenta il campo Prodotto dentro la tabella Ditte?
    E) Perchè hai un campo Comune in tabella Controlli?
    F) La tabella Ditte ha un solo campo NomeDitta.

    Lez ha scritto:


    fino a che non si inseriscono due ditte con lo stesso nome!!
    Perchè non prevedi un altro campo che discrimina in caso di omonimia di NomeDitta?

    Lez ha scritto:


    Adesso funziona così!!
    Inserisco n° controllo (casella testo, tipo numerico)
    Inserisco esito (casella di testo, tipo testo)
    inserisco IDDitta (casella combinata, tipo numerico) [casella combinata che ha origine riga nella tabella Ditta campo IDD (Chiave Primaria)]
    Così è corretto. Si tratta solo di capire quante e quali colonne hai scelto per la tua casella combinata.

    Lez ha scritto:


    Adesso il mio problema è! Che non voglio scegliere il IDD corrispettivo della ditta nella casella combinata [anche perchè mi dovrei memorizzare l'IDD di decine di ditte], ma scegliere da una casella combinata collegata al campo Nome Ditta ed in automatico i due campi IDD e IDDitta si relazionino.
    Qua, almeno io, non ti seguo più. Secondo me non hai colto la potenza della casella combinata e non riesci a ottimizzare l'intero discorso.
    Puoi dirci bene bene cosa vuoi fare? Perchè?
  • Re: Aiuto!! Problemi con le relazioni e Inserimento dati

    A) il mio data base parla: ho dei verbali di controllo e li devo riportare su data base, per una migliore gestione ed interrogazione tramite query e report.
    B)Fatto
    C)Fatto
    D)Dentro il campo Prodotto si inserisce il tipo di prodotto che tratta quella ditta (frutta, carne, cereali, metalli, terra, etc
    E) Il campo comune identifica il comune dove si è effettuato il controllo
    F) Perché quanti ne deve avere??

    Allora:
    inserisco tutti i dati del verbale,
    quando arrivo ad inserire la ditta, quindi scegliere dalla casella combinata la ditta interessata del controllo, non voglio scegliere tra i vari valori di IDDitta della tabella ditte, ma scegliere sempre tramite casella combinata tra i valori presenti nel campo nome ditta, avendo però come risultato nella tabella verifiche la compilazione del campo IDDitta con il corrispettivo IDDitta della tabella Ditte del nome ditta scelto!!
  • Re: Aiuto!! Problemi con le relazioni e Inserimento dati

    HO RISOLTOOOO!!!
    alla fine era una cavolata!!
    nella casella combinata sbagliavo a mettere la colonna associata!!!
    grazie della pazienza!!!
    Ciaoooo a presto!!
  • Re: Aiuto!! Problemi con le relazioni e Inserimento dati

    Lez ha scritto:


    E) Il campo comune identifica il comune dove si è effettuato il controllo

    Lez ha scritto:


    A) il mio data base parla: ho dei verbali di controllo e li devo riportare su data base
    Io capisco che tu VigileUrbano o Controllore, in data 10/4/2015 ti rechi nel comune di Como e effettui 10 controlli su 10 Ditte. Funziona così? Se sì perchè non hai un campo DataControllo in tabella Controlli?

    Lez ha scritto:


    F) Perché quanti ne deve avere??
    OK.

    Lez ha scritto:


    quando arrivo ad inserire la ditta, quindi scegliere dalla casella combinata la ditta interessata del controllo, non voglio scegliere tra i vari valori di IDDitta della tabella ditte, ma scegliere sempre tramite casella combinata tra i valori presenti nel campo nome ditta
    Cosa devi fare per organizzare una casella combinata "ben organizzata" (però è stato già raccontato molte volte in molte altre discussioni):
    1. Crea una nuova query in visualizzazione struttura
    2. Importa la tabella Ditte
    3. Trascina nell'ordine i campi IDDitta, NomeDitta (sicuramente), facoltativamente anche Prodotto
    4. In corrispondenza del campo NomeDitta, Ordinamento: Crescente
    5. Salva la query con nome DitteOrdinate
    6. Vai in visualizzazione struttura tabella Controlli
    7. Seleziona il campo IDDitta, poi clicca sulla paletta in basso Ricerca
    8. Modifica da "casella di testo" in "casella combinata", poi
    Tipo origine: Tabella/query
    Nome origine: DitteOrdinate
    Numero colonne: 2
    Larghezza colonne: 0 cm; 5 cm (è importantissimo che la prima sia 0 cm in modo da nasconderla (IDDitta) e mostrare quella immediatamente successiva (NomeDitta))
    Larghezza elenco: Automatico o 5 cm (cioè la somma di Larghezza colonne)
    9. Salva tutto

    Questa procedura io l'ho applicata alla tabella Controlli. Devi fare la stessa cosa sulla maschera Controlli.

    Lez ha scritto:


    avendo però come risultato nella tabella verifiche la compilazione del campo IDDitta con il corrispettivo IDDitta
    E' la prima volta che nomini la tabella Verifiche. Che cos'è?

    ...Mentre scrivevo...noto che hai risolto: OK.
Devi accedere o registrarti per scrivere nel forum
9 risposte