Newsgroup: it.comp.appl.access
Titolo: Ipedire inserimento di dati duplicati

      Salve a tutti.
Con il Vostro aiuto sono riuscito a fare un db di access che risolve
egregiamente i miei problemi in azienda per attribuire i turni di lavoro al
personale. Vorrei però affinare alcune utilità in inserimento dei dati:
Ho una tabella settimanale fatta di
Data,Dipendente,Turno,Dalle,Alle.TotaleOre.
I Turni della settimana di tutti sono inseriti di seguito nella tabella e
non necessariamente singoli per ognuno; vale a dire una persona può avere
anche due o tre turni consecutivi di orario ma con nome diverso per lo
stesso giorno. I turni si ripetono poi nella tabella ma hanno data diversa e
magari dipendente diverso. Due persone non devono avere lo stesso turno con
lo stesso orario o simile nello stesso giorno.
Da un lato ho questa tabella, dall'altro ho una tabella dei turni da coprire
e con alcune query di ricerca dati non corrispondenti un pò modificate,
riesco a fare in modo che il db, al momento dell'attribuzione del turno, in
una maschera mi fa vedere: i turni che non ho chiuso completamente, per come
gli ho impostati inizialmente, a chi parzialmente l'ho dato e cosa mi resta
da chiudere per singolo turno.
Ora, è tutto molto evidente, ma vorrei che non fosse possibile inserire un
turno che gia è stato dato.
Ho creato una tabella di possibili orari utilizzabili per evitare che
l'operatore possa sbagliare, ma si può creare il caso in cui per esempio uno
inizia alle 12.30 e un altro alle 13.00 nello stesso posto.
Per come è impostato il db l'operatore si accorgerebbe subito dell'errore,
ma vorrei se possibile non consentire l'inserimento del turno.
Non so se sono stato abbastanza chiaro.
Grazie ancora per l'aiuto, dico sempre dopo la risposta a questa domanda
finisco di stressare, ma vedo che sono sempre a chedere!
Grazie Fabrizio.
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:151Z37Z71Z32Y1...@usenet.libero.it...

Ammesso e non concesso che abbia compreso bene il tuo problema, vai sul Sito
Comune e nella Sezione General prova a prendere spunto dalla mia FAQ
intitolata "6.209 In una agenda realizzata con Access verificare che un
nuovo appuntamento non si accavalli con impegni precedenti".
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------

 Ciao Roberto,
scusa il ritardo ero fuori.
Si hai capito esattamente, ed infatti ho preso spunto dal tuo lavoro per
poter migliorare il db.
Il problema è che gli orari non si devono accavallare in rapporto al Turno
che ho assegnato per un determinato giorno del campo data.
Cioè, nello stesso giorno o settimana possono esserci orari di inizio e fine
uguali o con accavallamento, ma non nello stesso giorno. Il tutto è in
funzione della data.
Come ho detto, con una serie di query, se si presenta questo problema il db
mi evidenzia tutto, ma non mi impedisce di inserire i dati.
Nel caso in cui il turno sia previsto di usare due o più persone, descrivo
appunto il turno con una piccola differenza tipo a o b in modo che per
access siano due cose diverse.
Il tuo esempio è eccezionale ma non riesco ad applicarlo in quanto il
riconoscimento degli accavallamenti devono essere in funzione della data.
Ciao Grazie
Fabrizio


 Fabrizio



 


                    Il 09 Ott 2005, 17:32, 
fabrizio...@libero.it
 (fabrizio vignali) ha
scritto:

Roberto, intendi dire così?:
If DCount("*", "Agenda", "Id <>" & Me!Id & _
    " AND DataApp =#" & Format(Me!DataApp, "mm/dd/yyyy") & _
    "# AND OraInizio <#" & Me!OraFine & _
    "# ANd Turno =#" & Me!Turno & _
    "# AND OraFine > #" & Me!OraInizio & "#") > 0 Then
        MsgBox "Periodo già occupato da altro appuntamento", _
            vbCritical, "Verifica orari appuntamento"
        Cancel = True
        Me!OraInizio.SetFocus
End If
End Sub
Speriamo. Ciao Grazie


                    Il 09 Ott 2005, 17:46, 
fabrizio...@libero.it
 (fabrizio vignali) ha
