Newsgroup: it.comp.appl.access
Titolo: Conta giorni settimane

con questa funzione(grazie NG)creo questa lista delle settimane con la data
inizio e fine.
ora vorrei modificarla mettendoci un altro campo (Giorni) dove faccio la
differenza fra le due date
togliendo, con la funzione del sito comune i giorni
festivi(ContaLavorativi).
funziona per la prima settimana, per la seconda, poi dalla terza le fa tutte
uguali alla seconda:
NSettimana DataInizio    DataFine    Giorni
1 01/01/2003       05/01/2003            2
2 06/01/2003 12/01/2003                 4
3 13/01/2003 19/01/2003                 4<---5
4 20/01/2003 26/01/2003                 4<---5
5 27/01/2003 02/02/2003                 4
6 03/02/2003 09/02/2003                 4
7 10/02/2003 16/02/2003                 4
8 17/02/2003 23/02/2003                 4
ecc......
Private Sub Comando3_Click()
Dim Rst
Dim app
Dim totale
Dim NuovaData As Date
Dim NuovoTotale
Dim rcs As Recordset, i As Integer
Dim MioGiorno
MioGiorno = WeekDay(DataIniziale, vbMonday)
'questo perchč il primo giorno č il lunedě
totale = ContaLavorativi(DataIniziale, (DataIniziale + (7 - MioGiorno)),
True)
'Ora accodo i valori solo per la prima settimana
Set rcs = CurrentDb.OpenRecordset("Settimane")
    With rcs
    .AddNew
    !NSettimana = 1
    !DataInizio = DataIniziale
    !DataFine = DataIniziale + (7 - MioGiorno)
    !Giorni = totale
    .Update
    End With
    NuovaData = DataIniziale + ((7 - MioGiorno) + 1)
    NuovoTotale = ContaLavorativi(NuovaData, (NuovaData + 6), True)
'finalmente accodo gli altri valori
    For i = 2 To 53
            With rcs
            .AddNew
            !NSettimana = i
            !DataInizio = NuovaData
            !DataFine = NuovaData + 6
            NuovaData = !DataFine
            !Giorni = NuovoTotale
            NuovoTotale = !Giorni
            .Update
            End With
        NuovaData = NuovaData + 1
    Next i
rcs.Close
End Sub
dove sbaglio?
grazie
ciao

 End Sub
uuuuuuuuuuuuummmmmmmmmmmm!!!!
 il problema è il cilco.
inserisce il primo dato corretto ma poi ovviamente ripete il dato visto che
non gli dico di fare la differenza sulle nuove date giusto!!!!!!!
aiutoooooooooooooooooooooooo!!!!!!!!!!!!!

mi rispondo io:
Private Sub Comando3_Click()
Dim Rst
Dim app
Dim totale As Integer
Dim NuovaData As Date
Dim NuovoTotale As Integer
Dim rcs As Recordset, i As Integer
Dim MioGiorno
MioGiorno = WeekDay(DataIniziale, vbMonday)
'questo perchč il primo giorno č il lunedě
totale = ContaLavorativi(DataIniziale, (DataIniziale + (7 - MioGiorno)),
True)
'Ora accodo i valori solo per la prima settimana
Set rcs = CurrentDb.OpenRecordset("Settimane")
    With rcs
    .AddNew
    !NSettimana = 1
    !DataInizio = DataIniziale
    !DataFine = DataIniziale + (7 - MioGiorno)
    !Giorni = totale '(DataIniziale + (7 - MioGiorno)) - DataIniziale
    .Update
    End With
    NuovaData = DataIniziale + ((7 - MioGiorno) + 1)
    NuovoTotale = ContaLavorativi(NuovaData, (NuovaData + 6), True)
    'Set Rst = CurrentDb.OpenRecordset("TabellaFestivi")
'Rst.MoveFirst
'Do Until Rst.EOF
  'app = Rst.Fields("DataFestivi")
  'If app >= DataIniziale And app <= (DataIniziale + (7 - MioGiorno)) Then
  'totale = totale - 1
  'End If
  'Rst.MoveNext
'Loop
'Set Rst = Nothing
'Giorni = totale
'finalmente accodo gli altri valori
    For i = 2 To 53
            With rcs
            .AddNew
            !NSettimana = i
            !DataInizio = NuovaData
            !DataFine = NuovaData + 6
            NuovaData = !DataFine
            !Giorni = NuovoTotale  'NuovaData - NuovaData + 6
            NuovoTotale = ContaLavorativi(!DataInizio, !DataFine, True)


il codice finito è questo:
Private Sub Comando3_Click()
Dim Rst
Dim app
Dim totale As Integer
Dim NuovaData As Date
Dim rcs As Recordset, i As Integer
Dim MioGiorno
MioGiorno = WeekDay(DataIniziale, vbMonday)
'questo perchè il primo giorno è il lunedì
totale = ContaLavorativi(DataIniziale, (DataIniziale + (7 - MioGiorno)),
True)
'Ora accodo i valori solo per la prima settimana
Set rcs = CurrentDb.OpenRecordset("Settimane")
    With rcs
    .AddNew
    !NSettimana = 1
    !DataInizio = DataIniziale
    !DataFine = DataIniziale + (7 - MioGiorno)
    !Giorni = totale
    .Update
    End With
    NuovaData = DataIniziale + ((7 - MioGiorno) + 1)
'finalmente accodo gli altri valori
    For i = 2 To 53
            With rcs
            .AddNew
            !NSettimana = i
            !DataInizio = NuovaData
            !DataFine = NuovaData + 6
            NuovaData = !DataFine
            !Giorni = ContaLavorativi(!DataInizio, !DataFine, True)
            .Update
            End With
        NuovaData = NuovaData + 1
    Next i
rcs.Close
End Sub
ora se volessi anche togliere i giorni nella tabella Festini come dovrei
fare?
 '**********************************************************************
Set Rst = CurrentDb.OpenRecordset("TabellaFestivi")
Rst.MoveFirst
Do Until Rst.EOF
  app = Rst.Fields("DataFestivi")
  If app >= !DataInizio And app <= !DataFine Then
  Giorni = Giorni - 1
  End If
  Rst.MoveNext
Loop
Set Rst = Nothing
'************************************************************************
ciao
grazie

 '************************************************************************
anche su questo mi rispondo:
For i = 2 To 53
            With rcs
            .AddNew
            !NSettimana = i
            !DataInizio = NuovaData
            !DataFine = NuovaData + 6
            NuovaData = !DataFine
            !Giorni = ContaLavorativi(!DataInizio, !DataFine, True)
            Set Rst = CurrentDb.OpenRecordset("TabellaFestivi")
            Rst.MoveFirst
            Do Until Rst.EOF
            app = Rst.Fields("DataFestivi")
            If app >= !DataInizio And app <= !DataFine Then
            !Giorni = !Giorni - 1
           End If
           Rst.MoveNext
           Loop
           Set Rst = Nothing
            .Update
