Casella combinata! Come riportare in una tabella parametri inseriti in tabella separata.

Anonimo
2015-03-11T15:47:06+00:00

Ciao a tutti,

mi chiamo Luca e mi cimento da qualche mese nel realizzare un dbase. La cosa mi appassiona ma a volte non riesco a trovare la soluzione giusta per le varie idee che mi vengono per migliorare l'utilizzo del Dbase.

Il problema che espongo questa sera è questo.

Ho una tabella dove ho inserito una serie di informazioni la struttura è la seguente:

IDAnagrafica CognomeNome Ruolo Peso
1 Sig. Bianchi Neri Operaio Specializzato 5
2 Sig. Rossi Verdi Operaio Comune 3

In un'altra tabella in un campo (casella combinata) richiamo il CognomeNome della Tabella anagrafica per inserire il nominativo desiderato.

Questo funziona bene ma vorrei che nel richiamare il nominativo del soggetto il altri due campi di quest'ultima tabella mi vengano inserite automaticamente sia il ruolo che il peso. Ho guardato in giro ma non sono riuscito a trovare la soluzione se non quella di creare nella seconda tabella una casella combinata per il ruolo ed un'altra per il peso.

Grazie per l'aiuto.

Luca

PS: Un'altro piccolo problema. In una query dove effettuo dei calcoli se i campi sono 0 nella maschera mi restituisce #Num!; come fare affinche venga riportato il risultato 0 (tra l'altro è un campo euro)

Grazie ancora

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

43 risposte

Ordina per: Più utili
  1. Anonimo
    2015-03-14T06:28:02+00:00

    Buongiorno Sandro

    allora: Il progetto e l'insieme delle attività che si svolgono tramite dei gruppi (Rup; Collaboratori RUp; Topografia; etc.) all'interno delle attività ci sono delle persone che svolgono queste attività (Pippo svolge l'attività di Rup; Pluto svolge l'attività di Collaboratore Rup; etc.)

    Una persona può svolgere diverse attività e, quindi, far parte di più gruppi (Rup, Collaboratori Rup, etc.)

    Ad ogni gruppo viene assegnata una percentuale; all'interno di ogni attività le persone (Pluto, pippo) partecipazione in modo diverso allo svolgimento delle attvitià per cui gli viene assegnato il Peso.

    (Es. Pluto partecipa di più gli viene assegnato il peso 5; Pippo di meno di Pluto per cui gli assegno un peso di 4; e così fino a scencdere a 1). Naturalmente se Pluto e Pippo partecipano in modo uguale avranno un peso uguale.

    Spero di aver chiarito.

    Buona giornata Luca

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-03-13T22:44:48+00:00

    ciao Luca,

    aspetta un attimo...

    dobbiamo capire bene....e organizzare i dati secondo un database normalizzato...

    non è il db pesante è la query che è impostata su tabelle non normalizzate ed è ingestibile...

    Parti daccapo.

    Hai delle persone che si occupano di sviluppare progetti e le persone sono assegnate a dei gruppi.

    i gruppi sono formati dalle stesse persone ? suppongo di si...

    il peso di cui parli è assegnato alle persone?

    il peso è legato al progetto, al gruppo o alle persone singole del gruppo?

    il rup è  il progetto ? o è un gruppo?

    collaboratori Rup e persone sono la stessa cosa?

    la somma da dividere è assegnata al progetto?

    probabilmente ci sono altre domande che ora mi sfuggono...

    Facci sapere, e dopo aver risposto a quanto ti chiedo fai un esempio pratico...

    notte, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-03-13T21:45:59+00:00

    Sandro,

    dimenticavo di dirti che la soluzione indicata da te

    SumRup: IIf([ProdRup1]+[ProdRup2]=0;1;[ProdRup1]+[ProdRup2])

    LiquidaRup1: [ProdRup1]/[SumRup]*[Quota%Rup]/[Quota%Rup]*[QImpRup]

    sembra funzionare; l'ho provata solo con Rup1 e funziona ... per scrupolo lo farò acnhe per gli altri campi....

    Grazie ancora

    Luca

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-03-13T21:27:04+00:00

    Ciao Sandro

    grazie per i tuoi suggerimenti. In effetti la query elabora molti campi e, quindi molte operazioni per cui il dbase diventa pesante e di non facile lettura.

    Ora cerco di spiegarti cosa devo fare.

    Come hai potuto notare devo gestire la ripartizione di una somma (ImportoRipartibile della maschera iniziale chiamata Scheda Incentivi)  mediante delle percentuali che possono essere diverse, anzi lo sono, per ogni singolo progetto (Quota%Rup; Quota%Topografia, etc.)

    La somma assegnata ad ogni singolo gruppo (Rup; Topografia; etc.) deve essere ripartita fra persone in modo proporzionale al ruolo ricoperto in quel progetto che, nel mio caso, è il campo Peso.

    Quindi la quota assegnata al Rup (QImpRup di € 129,34 deve essere ripartita fra una, due, tre, etc. persone che hanno partecipato al progetto con diversi compiti e quindi con importi diversi) e così anche per le altre QImp della Scheda Incentivi iniziale)

    Non avendo una approfondita conoscenza di programmazione in access allora mi sono immaginato che per il Rup ci possono essere max due persone interessate; per i collaboratori del Rup ne ho immaginato 4 e cos' via (come puoi notare nella scheda ripartizione), infine ho riepilogato il tutto nella maschera generale (finale) che dovrebbe essere poi un report riepilogativo.

    Il mio intento è quello di creare un Dabase affinchè possa estrarre i dati in modo da ottenere la scheda generale con tutti i dati (così come immaginato nell'ultima Form); singole Schede/Report per Rup; Collaboratori Rup; Topografia, etc. ed infine interrogare il Dbase per singolo nominativo in modo da ottenere un Report riepilogativo dei progetti in cui lui ha partecipato, con le funzioni svolte per ogni singolo progetto e, naturalmente, gli importi che ha maturato per singolo progetto ed il totale.

    Spero che la spiegazione sia stata esaustiva.

    Ripensandoci per alleggerire i Dabase e le query avevo pensato di gestire il tutto con tabelle separate, ma mi sono fermato perchè non riesco a immaginare come collegare le tabelle e creare delle query appropriate per i singoli calcoli.

    Ti allego il link per farti capire cosa avevo pensato di nuovo

    Grazie

    Luca

    https://onedrive.live.com/redir?resid=4C38B77C15E609D0%21857

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2015-03-13T18:54:03+00:00

    ciao Luca,

    è un problema di matematica più che di database per il #Num!,

    SumRup è zero ed è il divisore qui :

    LiquidaRup1: (Nz([ProdRup1];0)/Nz([SumRup];0)*Nz([Quota%Rup];0)/Nz([Quota%Rup];0)*Nz([QImpRup];0))

    prova in questo modo :

    SumRup: IIf([ProdRup1]+[ProdRup2]=0;1;[ProdRup1]+[ProdRup2])

    utilizza intemediate iif per sostiture lo zero a 1 nel coso l'addizione sia 0.

     se imposti poi il campo calcolato seguente cos' :

    LiquidaRup1: [ProdRup1]/[SumRup]*[Quota%Rup]/[Quota%Rup]*[QImpRup]

    ottieni se non altro un valore zero come valore di LiquidaRup1, prova a sostiture quanto sopra nel tuo DB, la funzione NZ non serve.

    Non mi sono cimentato in altro, la query estrae oltre 40 campi e rende non dico difficile la manutenzione, anche qualora si risolvesse in modo corretto a mio parere.

    il consiglio che ti do è di normalizzare per bene il database dopodiché tutto è più facile...

    la tabella scheda riparazione  riporta :

    Rup1

    RuoloRup1

    PesoRup1

    PresRup1

    e poi nuovamente rup2, ruolorup2 ect...è ridondante....

    il nome e cognome sono due campi da tenere separati nome un campo cognome un altro campo, con una query puoi concatenarli se vuoi ma li devi tenere separati.

    spiegaci bene cosa vuoi gestire e come....ti suggeriamo come impostare il db, in modo più efficace.

    Facci sapere.

    Ciao!

    Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento