Newsgroup: it.comp.appl.access
Titolo: Difficoltà di progettazione - x Roberto

Ti ringrazio innanzitutto per l'elegante suggerimento di aggiungere alla
tabella dei nominativi un certo valore predefinito per l'attività svolta. La
cosa già mi risolve un po' di problemi.
Non ho capito bene, però, se quando dici di "aggiungere, per una certa data
impostata dall'operatore, nella tabella stati di servizio tanti record
quanti sono i nominativi", dai per scontato che ciò venga fatto con una
procedura automatica (e sarebbe proprio questo il punto che mi interessa,
anche se non ho idea da dove cominciare per idearla), oppure ti riferisci a
inserimenti giornalieri manuali, che sarebbero circa trecento al giorno,
proprio quello che vorrei evitare.
Da un punto di vista puramente speculativo, io vedo almeno due possibilità:
1)                          Creare nella maniera più automatica possibile un
recordset "annuale" e poi andarlo giornalmente a modificare (e qui avrei
bisogno di qualche suggerimento tecnico su come impostare l'
automatizzazione)
2)                          Partire da un recordset giornaliero predefinito,
sempre uguale, modificarlo per la parte "attività", fare un update della
data e accodarlo ad un recordset "master" (e qui almeno ho qualche idea sul
come procedere, tecnicamente parlando)
Capisco che, posto il problema in maniera così generica, sia difficile dare
suggerimenti, ma mi accontenterei di una opinione su quale sia la soluzione
più semplice ed elegante e di un' indicazione di massima sui vari passaggi
da seguire per implementarla, in modo tale da andarmeli a studiare.
Grazie di cuore

 automatizzazione)
Visto che devi comunque chiedere all'operatore di verificare le attività di
tutti gli stati di servizio di un determinato giorno per tutti i nominativi,
a mio avviso è meglio effettuare l'aggiunta dei record nella tabella
StatiServizio giorno per giorno e non tutti insieme all'inizio dell'anno:
così potrai tenere conto di eventuali variazioni effettuate sulla tabella
Nominativi.
Per realizzare quanto ho ipotizzato nel caso 1) del mio messaggio precedente
farei così.
Se la struttura della tabella Nominativi è la seguente:
IDNominativo        Contatore e chive primaria
Nome                    Testo
AttivitàPrevalente    Testo
Se la struttura della tabella StatiServizio è la seguente
IDStatoServizio        Contatore e chiave primaria
IDNominativo            Numerico
DataStSe                   Data/ora
Attività                       Testo (o Memo)
Queste due tabella debbono stare tra loro in relazione uno-a-molti tramite i
campi IDNominativo; alla relazione devi aggiungere l'integrità referenziale
con l'opzione Elimina record correlati a catena.
Se per un nuovo record della tabella StatiServizio l'Attività deve essere
uguale a AttivitàPrevalente della tabella Nominativi.
Crea una maschera chiamata frmControlloAttività; detta maschera deve avere
una visualizzazione a Maschere continue e deve avere come Origine record la
tabella StatiServizi.
Crea quindi una maschera chiamata Maschera1 con visualizzaione a Maschera
singola; questa maschera non deve avere Origine record.
In Maschera1 inserisci una casella di testo non associata chiamata
DataCreazione; nel Valore predefinito di questo casella di testo scrivi:
=Date()
In Maschera1 inserisci un pulsante di comando; a fronte dell'evento "Su
clic" del pulsante di comando genera il seguente codice VBA:
Dim rstStSe As Recordset
Dim rstNomi As Recordset
Set rstStSe = CurrentDb.OpenRecordset("StatiServizio")
Set rstNomi = CurrentDb.OpenRecordset("Nominativi")
rstNomi.MoveFirst
Do Until rstNomi.EOF
rstStSe.AddNew
rstStSe!IDNominativo = rstNomi!IDNominativo
rstStSe!DataStSe = Me!DataCreazione
rstStSe!Attività = rstNomi!AttivitàPrevalente
rstStSe.Update
rstNomi.MoveNext
Loop
Set rstStSe = Nothing
Set rstNomi = Nothing
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frmControlloAttività"
stLinkCriteria = "[DataStSe]=#" & Me![DataCreazione] & "#"
DoCmd.OpenForm stDocName, , , stLinkCriteria
End If
A questo punto apri Maschera1; digita nella casella di testo DataCreazione
la data di cui vuoi creare automaticamente lo stato di servizio; pigia il
pulsante di comando: verranno inseriti i record nella tabella StatiServizio,
dopo di che verrà aperta la maschera frmControlloAttività che mostrerà i
record inseriti per l'eventuale correzione delle attività.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------