Newsgroup: it.comp.appl.access
Titolo: Segnalazione discrepanze all'interno di una maschera

Buongiorno a tutti,
Ho una maschera “Manodopera” basata su una query “QManodopera”, i cui campi principali sono:
IdManodopera (contatore), IdPersonale (Numerico), Personale (Testo), Data (Data/Ora), OreLavorate (Numerico), Commessa (testo).
Quando io filtro i dati per mese/anno vorrei che mi segnalasse (per esempio colorando il campo di un altro colore) eventuali discrepanze tipo:
I lavoratori che nello stesso giorno hanno lavorato per la stessa commessa dovrebbero avere le stesse ore di lavoro, se un lavoratore ha 7 ore e gli altri 8, dovrebbe in qualche modo segnalarmelo.
 
Personale	Data		OreLavorate	Commessa
Pippo		01/01/2012	8		11
Pluto		01/01/2012	8		11
Pape		01/01/2012	7		11
Peppo		01/01/2012	8		11
Paperina	02/01/2012	8		12
Carlo		02/01/2012	8		12
Minni		03/01/2012	7		13
Alfredo		03/01/2012	7		13
Nel caso sopra riportato dovrebbe segnalarmi di rosso solo le 7 ore di Pepe.
Qualcuno ha per caso un’idea da propormi?
 
Grazie a tutti
 
Lo

 Grazie a tutti
 
e chi decide (o come intendi tu deciderlo) che le "7" di Pepe sono la
discrepanza e non le "8" degli altri?... pensa se fossero 2 dip. uno con 7
ore, e l'altro con 8... quale sarebbe la discrepanza?
 
-- 
------------
Pablitomf
Napoli sempre nel "Q"uore!
"mammasantissima" si nasce, non si diventa.
 

 Buongiorno a tutti, Ho una maschera “Manodopera” basata su una query “QManodopera”, i cui campi principali sono: IdManodopera (contatore), IdPersonale (Numerico), Personale (Testo), Data (Data/Ora), OreLavorate (Numerico), Commessa (testo). Quando io filtro i dati per mese/anno vorrei che mi segnalasse (per esempio colorando il campo di un altro colore) eventuali discrepanze tipo: I lavoratori che nello stesso giorno hanno lavorato per la stessa commessa dovrebbero avere le stesse ore di lavoro, se un lavoratore ha 7 ore e gli altri 8, dovrebbe in qualche modo segnalarmelo. Personale Data OreLavorate Commessa Pippo 01/01/2012 8 11 Pluto 01/01/2012 8 11 Pape 01/01/2012 7 11 Peppo 01/01/2012 8 11 Paperina 02/01/2012 8 12 Carlo 02/01/2012 8 12 Minni 03/01/2012 7 13 Alfredo 03/01/2012 7 13 Nel caso sopra riportato dovrebbe segnalarmi di rosso solo le 7 ore di Pepe. Qualcuno ha per caso un’idea da propormi? Grazie a tutti Lo
 
L'addetto all'inserimento, viste le discrepanze, fa le verifiche del caso e modifica con i dati corretti. Potrebbe anche essere che la discrepanza sia giusta perche uno di loro è uscito prima...
Non voglio che nel controllo discrepanze si facciano modifiche ai dati ma solo un alert che mi consenta di controllare...
Grazie per l'osservazione.
lo

 lo
 
La tua e' una risposta criptica, nel senso che non mi hai risposto...
posso provare ad indovinare da cio' che hai scritto... tu hai un tizio
"controllore"... lui guarda le righe del mese relative ai dipendenti, e
"CLICCA" (o almeno e' quello che ho capito tu voglia far fare allo stesso)
sui dipendenti che "lui immagina discrepanti" (e non che lo siano da un
processo logico) rispetto agli altri (il di. Pepe nell'esempio di prima).
Questa azione di "CLIK" vuoi che provochi la colorazione della/delle
riga/righe cliccata/cliccate, al fine di poter effettuare ulteriori
controlli (non piu' da parte del controllore, ma del controllore del
controllore :D)... ho capito bene?


 Buongiorno a tutti, Ho una maschera “Manodopera” basata su una query “QManodopera”, i cui campi principali sono: IdManodopera (contatore), IdPersonale (Numerico), Personale (Testo), Data (Data/Ora), OreLavorate (Numerico), Commessa (testo). Quando io filtro i dati per mese/anno vorrei che mi segnalasse (per esempio colorando il campo di un altro colore) eventuali discrepanze tipo: I lavoratori che nello stesso giorno hanno lavorato per la stessa commessa dovrebbero avere le stesse ore di lavoro, se un lavoratore ha 7 ore e gli altri 8, dovrebbe in qualche modo segnalarmelo. Personale Data OreLavorate Commessa Pippo 01/01/2012 8 11 Pluto 01/01/2012 8 11 Pape 01/01/2012 7 11 Peppo 01/01/2012 8 11 Paperina 02/01/2012 8 12 Carlo 02/01/2012 8 12 Minni 03/01/2012 7 13 Alfredo 03/01/2012 7 13 Nel caso sopra riportato dovrebbe segnalarmi di rosso solo le 7 ore di Pepe. Qualcuno ha per caso un’idea da propormi? Grazie a tutti Lo
 
Allora, cerco di spiegarmi meglio:
L'addetto al controllo apre la maschera e filtra per mese, dopo aver cliccato su un tasto "Controllo" posto per esempio in intestazione maschera, un controllo ciclico sui dati verifica le eventuali differenze, quindi anche nel caso ci sia nello stesso giorno e per la stessa commessa un dipendente con 7 ore e 1 a 8 ore. A questo punto l'addetto attraverso il cartaceo o ad altri controlli verfica l'esattezza dei dati inseriti, se sono giusti così potrebbe per esempio mettere un fleg di controllo a fine rigo (nonstante la discrepanza mostrata) oppure modificare il dato in modo corretto.
Potrebbe anche essere per esempio che il dip. che ha fatto 7 ore in una commessa, nello stesso giorno ne abbia fatta una per un'altra commessa e quindi andare bene lo stesso... sarà sempre l'addetto a cercare di capire...
Forse così è più chiaro il mio obiettivo?
Ciao Lo

 Buongiorno a tutti, Ho una maschera “Manodopera” basata su una query “QManodopera”, i cui campi principali sono: IdManodopera (contatore), IdPersonale (Numerico), Personale (Testo), Data (Data/Ora), OreLavorate (Numerico), Commessa (testo). Quando io filtro i dati per mese/anno vorrei che mi segnalasse (per esempio colorando il campo di un altro colore) eventuali discrepanze tipo: I lavoratori che nello stesso giorno hanno lavorato per la stessa commessa dovrebbero avere le stesse ore di lavoro, se un lavoratore ha 7 ore e gli altri 8, dovrebbe in qualche modo segnalarmelo. Personale Data OreLavorate Commessa Pippo 01/01/2012 8 11 Pluto 01/01/2012 8 11 Pape 01/01/2012 7 11 Peppo 01/01/2012 8 11 Paperina 02/01/2012 8 12 Carlo 02/01/2012 8 12 Minni 03/01/2012 7 13 Alfredo 03/01/2012 7 13 Nel caso sopra riportato dovrebbe segnalarmi di rosso solo le 7 ore di Pepe. Qualcuno ha per caso un’idea da propormi? Grazie a tutti Lo
 
Dimenticavo: è logico che se in un giorno per una commessa tutti abbiano segnato 8 ore e in realtà ne hanno fatte 7, noi non possiamo saperlo e l'errore resta nonostante non venga mostrata alcuna discrepanza. A quel punto saranno problemi organizzativi... e sicuramente di altra competenza...
Grazie ancora per l'interessamento.
Lo

 Ciao Lo
 
La prima cosa che non capisco e' perche' non rispondi sotto alle mie
risposte, ma sotto alla tua... :D
Seconda cosa... la questione si riduce meramente in una semplice revisione
delle righe da parte di un controllore con un flag a fine riga, registrato
pero' in tabella in un campo "si/no" annesso (Es. campo CONTROLLO_ORE).
 
TABELLA:
Aggiungere un campo CONTROLLO_ORE (Si/No) con valore default "NO"
 
FORM:
aggiungiamo il campo CONTROLLO_ORE e mettiamolo a disposizione del
"controllore" in modalitï¿œ modifica (ovvero lui lo puo' dover cambiare)
 
COLORAZIONE RIGA CONTROLLATA/NON CONTROLLATA:
aggiungiamo un "campo non associato" nella singola riga della Form, e
settiamo il font a "TERMINAL", size "18", colore "quello che preferisci
compaia" (ovviamente differente dallo sfondo. 
all'interno del campo, gli scrivi:
 
=IIf([CONTROLLO_ORE]=False;"ï¿œï¿œï¿œï¿œï¿œï¿œï¿œï¿œï¿œï¿œï¿œ";"")
 
in questo modo, se il campo CONTROLLO_ORE sara' falso, il campo si
colorera' (del colore scelto per il font), se sara' vero, non si colorera'


 > Allora, cerco di spiegarmi meglio: > L'addetto al controllo apre la maschera e filtra per mese, dopo aver cliccato su un tasto "Controllo" posto per esempio in intestazione maschera, un controllo ciclico sui dati verifica le eventuali differenze, quindi anche nel caso ci sia nello stesso giorno e per la stessa commessa un dipendente con 7 ore e 1 a 8 ore. A questo punto l'addetto attraverso il cartaceo o ad altri controlli verfica l'esattezza dei dati inseriti, se sono giusti così potrebbe per esempio mettere un fleg di controllo a fine rigo (nonstante la discrepanza mostrata) oppure modificare il dato in modo corretto. > Potrebbe anche essere per esempio che il dip. che ha fatto 7 ore in una commessa, nello stesso giorno ne abbia fatta una per un'altra commessa e quindi andare bene lo stesso... sarà sempre l'addetto a cercare di capire... > Forse così è più chiaro il mio obiettivo? > Ciao Lo La prima cosa che non capisco e' perche' non rispondi sotto alle mie risposte, ma sotto alla tua... :D Seconda cosa... la questione si riduce meramente in una semplice revisione delle righe da parte di un controllore con un flag a fine riga, registrato pero' in tabella in un campo "si/no" annesso (Es. campo CONTROLLO_ORE). TABELLA: Aggiungere un campo CONTROLLO_ORE (Si/No) con valore default "NO" FORM: aggiungiamo il campo CONTROLLO_ORE e mettiamolo a disposizione del "controllore" in modalità modifica (ovvero lui lo puo' dover cambiare) COLORAZIONE RIGA CONTROLLATA/NON CONTROLLATA: aggiungiamo un "campo non associato" nella singola riga della Form, e settiamo il font a "TERMINAL", size "18", colore "quello che preferisci compaia" (ovviamente differente dallo sfondo. all'interno del campo, gli scrivi: =IIf([CONTROLLO_ORE]=False;"ÛÛÛÛÛÛÛÛÛÛÛ";"") in questo modo, se il campo CONTROLLO_ORE sara' falso, il campo si colorera' (del colore scelto per il font), se sara' vero, non si colorera' -- ------------ Pablitomf Napoli sempre nel "Q"uore! "mammasantissima" si nasce, non si diventa.
 
Non è quello che intendo io: il fleg lo mette l'addetto dopo aver controllato le discrepanze, non prima... quindi la routine da tradurre dovrebbe essere una cosa tipo:
se fleg controllo ore=No and a stesso giorno e stessa commessa le ore nei relativi righi sono diverse, segnalamelo colorandomi il rigo in modo diverso.
se fleg controllo ore=si non fare niente.
Il problema è che non riesco a tradurlo in routine.
Tu riesci a darmi una mano?
Grazie Ciao Lo

 Tu riesci a darmi una mano?
 
no, non sei un programmatore :) perche' io ti ho proprio dato la soluzione a
quello che hai appena chiesto...
 
hai una "LISTA" (Form a maschere continue) in cui ci sono i tuoi "n"
dipendenti con le relative ore lavorate (oltre gli altri campi) e un flag (il
campo che devi aggiungere alla tabella e alla form)... il "controllore", vista
la discrepanza, mette a "TRUE" (o false, dipende da come lo vuoi fare) il
flag... lo sfondo (che risulta essere l'alert nel tuo caso) si colorera' o
meno a seconda del contenuto del flag... 
piu' semplice di cosi' si muore... nessuna ROUTINE, solo un controllo "fisico"
del contenuto di un campo che ne condiziona un altro (il tuo alert colorato) ;)
 
meglio di cosi' non te la so dire


 > Non è quello che intendo io: il fleg lo mette l'addetto dopo aver controllato le discrepanze, non prima... e dove avresti letto che io ho detto di metterlo "PRIMA"? > quindi la routine da tradurre dovrebbe essere una cosa tipo: ma quale routine... qua non c'e' nulla di routine... qui c'e' un controllo "IF" che deve vedere il valore di un campo (il flag), e rispetto ad esso comportarsi (colorarsi o no) > se fleg controllo ore=No and a stesso giorno e stessa commessa le ore nei relativi righi sono diverse, segnalamelo colorandomi il rigo in modo diverso. > se fleg controllo ore=si non fare niente. > Il problema è che non riesco a tradurlo in routine. > Tu riesci a darmi una mano? no, non sei un programmatore :) perche' io ti ho proprio dato la soluzione a quello che hai appena chiesto... hai una "LISTA" (Form a maschere continue) in cui ci sono i tuoi "n" dipendenti con le relative ore lavorate (oltre gli altri campi) e un flag (il campo che devi aggiungere alla tabella e alla form)... il "controllore", vista la discrepanza,
 
e come fa a vedere la discrepanza? come glielo dici?
 
 mette a "TRUE" (o false, dipende da come lo vuoi fare) il flag... lo sfondo (che risulta essere l'alert nel tuo caso) si colorera' o meno a seconda del contenuto del flag... piu' semplice di cosi' si muore... nessuna ROUTINE, solo un controllo "fisico" del contenuto di un campo che ne condiziona un altro (il tuo alert colorato) ;) meglio di cosi' non te la so dire -- ------------ Pablitomf Napoli sempre nel "Q"uore! "mammasantissima" si nasce, non si diventa.
 
Io non sarò programmatore, ma tu non hai ancora capito l'obiettivo.
I campi devono essere colorati in modo diverso prima di mettere il flag "controllore". Dalla tua routine come fa il "controllore" vedere le discrepanze, non me l'hai scritto da nessuna parte. Forse non ci capiamo. Il controllo dovrebbe fare una routine ciclica su tutti i dati presenti nella maschera aperta. Saprei farlo se fosse: colorami tutti quelli che hanno meno di 8 ore o più di 10, ma in questo caso deve fare una verifica su ogni gruppo di record all'interno della maschera.
Come ti ripeto non sono io a dover verificare dove ci sono le discrepanze, deve dirmelo il programma e io dopo verifico se sono o meno discrepanze e metto il flag di controllo eseguito...
Così va meglio?
Grazie ciao Lo


Allora: tu hai una maschera continua e vuoi che le farie righe siano colorate (evidenziate) SE E SOLO SE il programma decide che potrebbe esserci un'incongruenza di qualche tipo. Poi la personcina addetta le controlla e decide se è una discrepanza oppure no. In questo caso clicca VA BENE sulla riga, se no clicca NON VA BENE. E' questo? Si può sicuramente fare con la formattazione condizionale delle righe MA il programma deve sapere COSA guardare. Se uno fa 10 ore al giorno? Se per la stessa commessa 2 dipendenti hanno fatto un numero <> di ore quel giorno? Se lo stesso dipendente ha lavorato a più di una commessa? Finchè non si decide questo la vedo dura convincere Access ad INTUIRE le discrepanze....Io farei una cosa del genere. Una bella tabella temp con un po' di flag nascosti (possibile discrepanza, ok, NonOk). Prendi i dati che devi analizzare, li passi dentro una funzione decisionale con tutti i criteri che ti servono e riempi la tabella temporanea, con il flag taggato dove serve. Basi la form su questa tabella e tramite la formattazione condizionale fai i colori che vuoi

 > Grazie ciao Lo
 
X Lo:
"SE" e ripeto, come fatto nel mio primo (PRIMISSIMO) intervento, a segnalarti
eventuali DISCREPANZE deve essere il programma (quindi fare una routine che lo
verifichi per te), devi stabilire quale e' una REGOLA per permettere allo stesso
di accorgersene... l'esempio che ti ho fatto, ovvero quello dei 2 soli
dipendenti, uno con 8 ore, l'altro con 10, cadeva a pennello... in quel caso, la
routine, secondo te, quale dei 2 doveva colorare e perche'?... se non stabilisci
un modus operandi attraverso il quale rendersi conto che potrebbe trattarsi di
discrepanza, come fa il programma a saperlo distinguere?... per cui, tu mi dici
la "modalita'" io ti posso capire se e quanto posso aiutarti con la routine...
tu non me la dici, io non ti posso aiutare... facile no? ;)


 > > Io non sarò programmatore, ma tu non hai ancora capito l'obiettivo. > > > > I campi devono essere colorati in modo diverso prima di mettere il flag "controllore". Dalla tua routine come fa il "controllore" vedere le discrepanze, non me l'hai scritto da nessuna parte. Forse non ci capiamo. Il controllo dovrebbe fare una routine ciclica su tutti i dati presenti nella maschera aperta. Saprei farlo se fosse: colorami tutti quelli che hanno meno di 8 ore o più di 10, ma in questo caso deve fare una verifica su ogni gruppo di record all'interno della maschera. > > > > Come ti ripeto non sono io a dover verificare dove ci sono le discrepanze, deve dirmelo il programma e io dopo verifico se sono o meno discrepanze e metto il flag di controllo eseguito... > > > > Così va meglio? > > > > Grazie ciao Lo X Lo: "SE" e ripeto, come fatto nel mio primo (PRIMISSIMO) intervento, a segnalarti eventuali DISCREPANZE deve essere il programma (quindi fare una routine che lo verifichi per te), devi stabilire quale e' una REGOLA per permettere allo stesso di accorgersene... l'esempio che ti ho fatto, ovvero quello dei 2 soli dipendenti, uno con 8 ore, l'altro con 10, cadeva a pennello... in quel caso, la routine, secondo te, quale dei 2 doveva colorare e perche'?... se non stabilisci un modus operandi attraverso il quale rendersi conto che potrebbe trattarsi di discrepanza, come fa il programma a saperlo distinguere?... per cui, tu mi dici la "modalita'" io ti posso capire se e quanto posso aiutarti con la routine... tu non me la dici, io non ti posso aiutare... facile no? ;) -- ------------ Pablitomf Napoli sempre nel "Q"uore! "mammasantissima" si nasce, non si diventa.
 
E' sufficiente per me verificare per lo stesso giorno e per la stessa commessa quanto segue:
- se tutti i valori delle ore coincidono, probabilmente non ci sono errori (ovviamente l'addetto controllerà comunque, in qualche modo, l'esattezza dei dati); 
- se invece i dati differiscono e quindi se per esempio un operaio ha scritto 7 e l'altro 10, me li deve segnalare entrambi come dati da controllare.
Dopo che l'addetto avrà fatto i controlli del caso e ritiene sia tutto corretto nonostante un'eventuale dicrepanza, metterà un segno di spunta su "contollo eseguito".
Non so in che altro modo poterlo spiegare, questo è quanto mi chiedono di ottenere...

 Non so in che altro modo poterlo spiegare, questo ï¿œ quanto mi chiedono di
ottenere...
 
il segreto del "dover fare" e' il saperlo almeno concettualmente affrontare...
il problema che poni, ha delle falle a livello di logica piu' che di
programmazione (che fino ad ora non e' mai emersa). Se le cose sono
"logicamente" applicabili, lo sono anche tecnicamente... se al constrario, gia'
non "logicamente" comprensibili, pensa te a trasformarle in una procedura standard.
 
Mi spiace, ma il "e' quanto mi chiedono di ottenere" ha davvero poco senso...
anche a me e' stato chiesto il Caffe' da Access, ma per ovvie ragioni, ho detto
"NO, usa la moka" ;)


[Cuttone]
 
vabbe' dai, ho capito, a sentirti spiegare capisco che "non ne uscirai mai"...
per cui, ti do una dritta... per poter permettere al sistema di evidenziarti gli
orari pseudo-errati da solo, devi dargli un parametro corretto di confronto...
ovvero, devi dirgli: "per la commessa 1, l'orario normale e' 8 ore"... in questo
modo puoi confrontare gli orari giornalieri, e se non sono = ad 8, sono
"anomali" e quindi li colori... ;)
 
Tie', ti ho fatto un esempietto...
 
http://85.44.230.157/Maurizio/db1.zip
 
 
prova a cambiare i valori della commessa, o quelli dei giorni ;)
