Newsgroup: it.comp.appl.access
Titolo: msg a tutti

nessuno ha risposte, consigli per il mio post "problema complesso" del 11/04
ore 17.21
ciao
David

 ha scritto nel messaggio
news:3ilB6.840$s93....@news.infostrada.it...

Potresti inserire un flag nella tabella "operaipresenti" che indica se
l'operaio fa parte o no ancora della squadra; oppure un campo che indica il
perché non fa parte della squadra (malattia, ferie etc. etc.)...
Ciao.

 wrote in message
9b67v8$imk$1...@suite03.caspur.it...


 Potrebbe essere una soluzione, ma come posso fare per gestire molti
...cut
Ciao. Vediamo di provare un'altra possibilità. Allora, da una maschera devi
creare una tabella nuova per le squadre che operano nei cantieri. Secondo me
devi invece operare sulla tabella cantieri e modificare un record o crearne
uno nuovo per ogni cantiere. Allora , ammesso che tu abbia delle squadre
predefinite, devi solo creare un record relativo alla "formazione" della
squadra per quel cantiere . esempio :
la casella combinata che prende origine dati dalla tabella "Squadre"
aggiorna dopo la scelata della squadra il record della tabella cantieri (che
da' origine alla tua maschera)
Su "dopo aggiornamento" che trovi nelle proprietà "Evento" della
TuaCasellaCombinata, scrivi una cosa del tipo (nel generatore di codice)
me![nomecampodellatabCantieri] = me![tuacasellacombinata].column(2)
Che cosa succede : con questo codice tu vai a scrivere un valore che si
trova nella tua casella combinata alla colonna 2 (per esempio io ho messo 2)
il quale potrebbe essere il nome di un tuo operaio. e cosi via, accodi al
codice di sopra altre righe :
me![nomecampo1dellatabCantieri] = me![tuacasellacombinata].column(1)
me![nomecampo2dellatabCantieri] = me![tuacasellacombinata].column(2)
me![nomecampo3dellatabCantieri] = me![tuacasellacombinata].column(3)
ecc. ecc.  non so quanto tu sia pratico di codice, l'unica cosa e' questa ,
se poi hai 20 campi da aggiornare, e due operai sono malati o in ferie,
prima devi operare sull'operaio, se e' malato, ci sara' una anagrafica degli
operai dove tu metti un flag e quando aggiorni la casella combinata non ti
compare nel cantiere , infatti nelle proprietà dati della casella , nella
query di origine, alla  voce "malattia" il quale campo sara' un si/no, tu
metterai nei criterei "si" e ti compariranno solo quelli "SANI".
Puo' andare????
Ciao e buona pasqua, se percaso ti serve ancora aiuto, ammesso che questo ti
sia stato di aiuto, scrivi. Luca


Rispondi dopo il messaggio precedente come faccio io, grazie;.
Invece che crearti una tabella per ogni squadra, secondo me dovresti
organizzare bene la tabella che conterrà le associazioni degli operai nei
cantieri. Hai una tabella con inseriti gli operai; hai un'altra tabella dove
inserisci i cantieri; ora ti serve un'altra tabella (chiamata per esempio:
presenzeCantiere) che unisce le due precedenti che identifica la presenza o
meno dell'operaio nel cantiere.
Quindi la tabella "operai" dovrebbe essere così composta:
- id;
- nome;
- qualifica;
- squadraAppartenenza;
tabella "cantieri":
- id;
- riferimentoCantiere;
Esempio tabella "presenzeCantiere":
- idCantiere;
- idOperaio;
- motivoAssenza;
Quando vuoi associare (la prima volta) la squadra al cantiere puoi farlo
indicandogli la squadra di appartenenza:
'-----------------
INSERT INTO tabpresenzecantieri ( idoperaio, idcantiere ) SELECT
taboperai.id
 as idoperaio, " & me!lstCantieri & " AS idcantiere FROM
taboperai WHERE taboperai.squadraAppartenenza = " & chr(34) & me!lstSquadre
& chr(34) & ";"
'-----------------
me!lstCantieri e me!lstSquadre sono delle caselle di riepilogo che vengono
alimentate dalle rispettive tabelle (Cantieri e Operai) e restituiscono i
rispettivi id.
Poi se qualcuno si ammala non fai altro che inserire il motivo dell'assenza
dal cantiere dell'operaio e inserirne un'altro preso da un'altra squadra.
Ciao.