Query filtrata da casella combinata

di il
5 risposte

Query filtrata da casella combinata

Purtroppo.... Continuo a cimentarmi, ogni tanto, con access - e mi ritrovo con molti dubbi e problemi.
Ho creato 3 semplici Tbl:
Tabella Cantiere - IDCa, Cantiere
Tabella Data - IDDa, Data, Lavori eseguiti, IDCa
Tabella Operai - IDOp, CognomeNome,CtoOra(costoxora),hlav(ore lavorate),IDDa
Ho creato le relazioni:
TBL Cantiere uno a molti con TBL Data e TBL Data uno a molti con TBL Operai.
- Ho creato una maschera Data con sottomaschera Operai e casella combinata x scegliere il cantiere.
Funziona
quando i cantieri sono 2,3,4 ecc. la gestione è non fluida
Ho pensato quindi che sarebbe stato piu comodo scegliere il cantiere su cui lavorare ed inserire i dati solo x il cantiere scelto
Chiaramente, non è facile come sembra:
Ho creato
-una Query prendendo tutti i campi delle tabelle (le 3 TBL create)
- una maschera per la scelta del cantiere - Nella Maschera ho una casella combinata dalla quale scelgo il cantiere e un pulsante di comando che apre (con Macro) la maschera creata con la query

Il filtro applicato alla query è:
Campo: IDCa
Tabella: Cantiere
Criteri: [Maschere]![Q Cantiere]![CasellaCombinata0]
Bhe... Funziona (solo apparentemente)
----
Nella maschera filtrata, come nella query, non riesco ad inserire nuovi record - in pratica mi fa leggere correttamente quelli inseriti x quel cantiere ma non posso inserirne altri (a meno di non inserire il nome del cantiere )-

Cerco di spiegarmi meglio
Quello che vorrei fare è:
1 - scegliere da una maschera il cantiere su cui lavorare e su questo fare tutte le modifiche, inserimenti ecc...- Finito il lavoro, ritornare alla maschera di scelta e continuare su un altro cantiere.
Sono lontano dalla soluzione?

5 Risposte

  • Re: Query filtrata da casella combinata

    Per me hai vari problemi di normalizzazione, ossia corretta organizzazione delle tabelle.

    zonevinc ha scritto:


    Ho creato 3 semplici Tbl:Tabella Cantiere - IDCa, CantiereTabella Data - IDDa, Data, Lavori eseguiti, IDCaTabella Operai - IDOp, CognomeNome,CtoOra(costoxora),hlav(ore lavorate),IDDa
    La tabella Operai deve contenere solo dati anagrafici, quindi gli ultimi 3 campi non centrano.
    Trovo il nome della seconda tabella alquanto infelice. Io la chiamerei Lavori.

    zonevinc ha scritto:


    Ho creato le relazioni:
    TBL Cantiere uno a molti con TBL Data e TBL Data uno a molti con TBL Operai.
    La tabella Data (o Lavori) deve essere tabella di congiunzione fra Cantieri e Operai che sono in relazione molti-a-molti, quindi:
    Cantieri uno-a-molti Lavori
    Operai uno-a-molti Lavori
  • Re: Query filtrata da casella combinata

    Chiarissimo --- Avevo fatto cosi (ma credo sia piu corretto come mi suggerisci)
    Tbl "cantieri, uno a molti con Tbl "Data" o diciamo "lavori"
    Tbl "data" e Tbl "Operai" in relazione Molti a Molti (attraverso una Tbl di raccordo con chiavi esterne idda e idop).
    Poi, x non complicare le cose (successivamente), ho pensato che avere ripetuto il nome dell'operaio (più record x lo stesso operaio) non mi avrebbe creato grossi problemi - e cosi, sono andato avanti.

    "La tabella Operai deve contenere solo dati anagrafici"

    L'avevo fatto. Il problema è che avrei dovuto creare una Tbl solo con i dati anagrafici (nomeCognome) ed associarla ad una ulteriore tabella (relazione uno a molti) dove inserire gli altri campi (costoxora lavorata, ore lavorate ecc).

    Com'è evidente sono ancora in una fase di apprendimento. Ho poi volto la mia attenzione alla maschera di inserimento dati e mi sarebbe piaciuto riuscire a fare quello che chiedevo:
    "1 - scegliere da una maschera il cantiere su cui lavorare e su questo fare tutte le modifiche, inserimenti ecc...- Finito il lavoro, ritornare alla maschera di scelta e continuare su un altro cantiere."

    Grazie
  • Re: Query filtrata da casella combinata

    zonevinc ha scritto:


    "1 - scegliere da una maschera il cantiere su cui lavorare e su questo fare tutte le modifiche, inserimenti ecc...- Finito il lavoro, ritornare alla maschera di scelta e continuare su un altro cantiere."
    A me non appare limpida come il sole questa richiesta. Non mi è chiaro cosa intendi per "maschera di scelta". Su quale tabella poggia? Qual'è il problema raccontato passo passo? Potresti fare un esempio concreto?
  • Re: Query filtrata da casella combinata

    Osvaldo. Come sempre creo confusione_ Parto da zero:
    - Ho una tbl: (le tbl vanno completate con molti altri campi)
    - Cantiere i cui campi sono IDCa e Cantiere
    - Data (o lavori eseguiti) i cui campi sono IDDa, Data, LavEseg, Idca,idop
    - Operai i cui campi sono IDOp, CognNome
    - Aggiungo poi un'ulteriore tabella CostOperai con campi CostoOra, ore lavorate ecc
    Imposto le relazioni:
    Tbl Cantiere 1 (IDCa) a M con Tbl Data (idca) (alias Lavori eseguiti)
    Tbl Operai (IDOp) 1 a M con Tbl Data (idop)
    Tbl Operai (IDOp) 1 a M con Tbl CostOperai (idop)

    Dove stà la mia incapacità? Presto detto
    NON RIESCO A CREARE UNA MASCHERA O PIU MASCHERE x INSERIRE I DATI.
    PROPRIO NON CI RIESCO.

    ------------------------------------------------------
    Con le tbl sono andato oltre (pero non so se sia corretto)
    Premesso che un Cantiere rappresenta x me un Lavoro (recupero di una scuola a Foggia; un'appartamento a Milano e cosi via)
    Accade che UN CANTIERE CONTIENE MOLTI GIORNI LAVORATIVI e VICEVERSA UN GG LAVORATIVO CONTIENE MOLTI CANTIERI (per cosi dire) - la relazione è M a M
    ed ancora
    Un gg lavorativo (Data) contiene piu operai distribuiti x i vari Cantieri - Viceversa UN Operaio è presente in piu Date su diversi cantieri per cui
    La Tbl Data e la Tbl Opareai sono in relazione M a M
    Bha.... Chissà se è vero cio che dico o sto complicando tutto
    E' Complicato - dopo chissà
    -----------------------------------------
    Creo una maschera con origine record la tbl Data e sottomaschera la Tbl Operai. Inserisco una casella combinata x scegliere il cantiere su cui lavorare e Ok funziona
    Ora devo inserire i dati della Tbl CostOperai (bl Operai (IDOp) 1 a M con Tbl CostOperai (idop).
    [u]Dove inserisco questa maschera? Se trascino questa Tbl nella sottomaschera Operai in quest'ultima mi esce un + in corrispondenza dell'operaio che è molto brutto e non va.
    Qual'è l'alternativa? Come faccio?[/u]
    Ho un problema con le maschere
    ------------------------------------------------
    L'altra cosa che chiedevo è:
    Quando inserisco i dati nella maschera scelgo il cantiere dalla casella combinata, inserisco la data e poi gli operai presenti in quel cantiere a quella data. E cosi per ogni inserimento ( per esempio inserimento 1 -data 12/02/2015 Cantiere Roma - - operai Antonio, Pasquale - inserimento 2 data 13/02/2015 Cantiere Roma - - operai Pippo, Luca).
    Scegliere, a priori, il cantiere su cui lavorare senza ogni volta doverlo selezionare dalla casella combinata
    Grazie x l'aiuto
  • Re: Query filtrata da casella combinata

    Riletto post ... che confusione....

    Alla fine il mio problema é
    Creare una maschera x l'inserimento dei dati nella 4 Tbl (Tbl Cantiere, Data, Operai, Costo Operai)
    Fino ad Operai ci arrivo.
    Costo Operai non so dove metterla
Devi accedere o registrarti per scrivere nel forum
5 risposte