Newsgroup: it.comp.appl.access
Titolo: generare un DB in autom. per calendario

Ciao a tutti,
è possibile, impostando da caselle combinate il mese, il giorno e la data
del primo giorno dell'anno , e generare automaticamente un DB di tutto il
calendario che contenga i campi "mese, giorno, data, note" da gennaio a
dicembre?
Grazie per l'aiuto
Maurizio

 wrote in message
9foon3$mu7$1...@fe2.cs.interbusiness.it...

Preparati una tabella che abbia quei campi. Ad ogni elaborazione prima la
svuoti. Quindi la apri come recordset e farai un ciclo in cui ad ogni
iterazione aggiungi un record alla tabella con addnew. Utilizzi un contatore
che incrementi ad ogni iterazione e che serve come paletto per il loop:
uscirai quando raggiungi 365.
Per quanto riguarda i valori da scrivere nel nuovo record, prima di tutto
puoi usare la funzione dateadd per aggiungere ad ogni iterazione un giorno,
quindi con le funzioni day, month e year applicate alla data raggiunta ad
ogni iterazione, otterrai i valori cercati
Antonio

 dicembre?
certo... puoi usare DateSerial
fai un ciclo tipo il seguente
dim GiornoAnno as integer
for GiornoAnno =1 to 365
  debug.print dateserial(2001,1,1+GiornoAnno)
next
Questo stampa le date dei 365 giorni successivi a quello inserito in
dateserial (1/1/2001 nell'esempio)
Invece che stamparle le puoi inserire i una tabella, apri il recordset, e
per ogni iterazione del ciclo ficchi il risultato in una nuova riga.
Max

Mi sembra interessante la tua soluzione, ma dato che sono un principiante
non mi è così facile fare tutta la procedura.
Ho inserito i dati dalle mie caselle di testo
------------------------------------------------------------------------
Private Sub Comando6_Click()
Dim GiornoAnno As Integer
    Dim Mese As Integer
    Dim Data As Integer
    txMese.Value = Mese
    txData.Value = Data
For GiornoAnno = 1 To 365
  Debug.Print DateSerial(2001, Mese, Data + GiornoAnno)
Next
End Sub
----------------------------------------------------------------------------
-----------
Il problema è ora non stampare ma inserire il tutto in una tabella e aprire
il recordset
questa credo sia la cosa più rognosa, sono nelle vostre mani
Ciao


 questa credo sia la cosa piů rognosa, sono nelle vostre mani
Copio una routine che avevo preparato per una mia maschera "MSK
calendario".
Opera su una tabella "TBL calendario" (campi data, day-of-week e note)
La maschera ha due controlli in input, caselle testo "dadata" e "adata"
entrambe formattate data. 
poi ha un bottone "genera calendario", col seg. codice  associato
all'evento click:
---------------------------------------------------------
Private Sub GeneraCalendario_Click()
DoCmd.Hourglass True
Dim mydb As Database
Dim RScalend, RSfest As Recordset
Dim first, last, data_iesima As Date
Dim i, n As Integer
Dim ID As String
Set mydb = CurrentDb
Set RScalend = mydb.OpenRecordset("select * from [TBL calendario]")
'cancella il calendario precedente
RScalend.MoveLast
Let n = RScalend.RecordCount
If n > 0 Then
   RScalend.MoveFirst
   For i = 1 To n
    RScalend.Delete
    RScalend.MoveNext
   Next i
End If
'carica le date inizio fine e iesima
Let first = Me.dadata
Let last = Me.adata
' Genera il nuovo calendario
If first < last Then
   ' loopa attraverso le date
   Let data_iesima = first
   Do While data_iesima <= last
 
        ' per ogni giorno e per ogni dipendente aggiunge una riga
        RScalend.AddNew
 
        ' immette di dati
        Let RScalend!giorno = data_iesima
        Let RScalend!DOW = WeekDay(data_iesima, 2)
        If RScalend!DOW = 7 Then
           Let RScalend!Note = "domenica"
        ElseIf RScalend!DOW = 6 Then
           Let RScalend!Note = "sabato"
        Else
          Let RScalend!Note = " "
        End If
 
        ' li scrive in tabella
        RScalend.Update
 
      Let data_iesima = data_iesima + 1
   Loop
Else
   MsgBox "data fine inferiore a data inizio"
End If
Set mydb = Nothing
Set RScalend = Nothing
DoCmd.Hourglass False
End Sub
-------------------------------------------------
ciao

Ciao P.Bianchi
purtroppo la routine mi si blocca quando deve cancellare il calendario
precedente, che io non ho ancora
Ti posso mandare la mia prova del DB privatamente perchè tu possa
verificare?
comunque grazie per la tua risposta