Newsgroup: it.comp.appl.access
Titolo: Come aggiornare solo alcuni campi?

 Format(Rs1!a, "hhmm") Then
        RsPeriodi.Edit
        RsPeriodi.Fields(VarCampo) = "ok"
        RsPeriodi.Update
    End If
Next
Come posso risolvere?
Thanks
Luca

 ha scritto nel messaggio 
news:d81ti1$2dc$1...@newsreader.mailgate.org...

Ciao,
è una soluzione "molto artigianale" ma è pure sempre 1 idea sulla quale puoi 
lavorare ;-)
Dim diff As Integer
Const i = 15
Dim cont As Integer
Dim inizio As Integer
Dim Converti As String
diff = (830 - 600) / i
inizio = 600
For cont = 1 To diff
      inizio = inizio + i
       If Right(inizio, 2) >= 60 Then
          If Len(Trim(inizio)) = 3 Then
              inizio = Val(Left(inizio, 1)) + 1 & "00"
           Else
               inizio = Val(Left(inizio, 2)) + 1 & "00"
        End If
       End If
     Converti = Str(inizio)
     If Len(Trim(Converti)) = 3 Then
        Converti = "0" & Trim(Converti)
    End If
  'Qui ti vai a gestire l'immissione o la modifica dei
  'dati nei campi che di volta in volta ti restituisce
  'Converti = 0615 - 0630 etc...
Next
----
Buona serata :-)
Gaspare 

[CUT]
Pardon...poco fà l'ho sparata ....ripeto è solo un'idea...è "molto 
artigianale"
Dim cont As Integer
Dim inizio As Integer
Dim Converti As String
Const i = 15
Dim diff2 As Integer
Dim diff1 As Integer
Dim diff As Integer
diff1 = (Val(Right(830, 2)) - Val(Right(600, 2))) / i
diff2 = (Val(Left(830, 1)) - Val(Left(600, 1))) * 60 / i
diff = diff1 + diff2


[CUT]
Nell'altro tuo esempio...
diff1 = (Val(Right(1115, 2)) - Val(Right(1015, 2))) / i
diff2 = (Val(Left(1115, 2)) - Val(Left(1015, 2))) * 60 / i
diff = diff1 + diff2
inizio = 1015
Spero che il personale non faccia i turni notturni perchè sarà "difficile", 
in questo modo, fare una differenza del genere 0030 - 1130 ;-)
Buon lavoro...notte
Gaspare 

[CUT]
Con il seguente codice puoi recuperare i campi anche in seguito (sempre 
nell'ambito della stessa sub) per effettuare dei confronti etc...occhio però 
agli "eventuali turni notturni"...
----------------
Dim OraInizio As String
Dim OraFine As String
Const intervallo = 15
Dim Differenza As Integer
Dim contatore As Integer
Dim NomeCampo As Variant
OraInizio = "06:30"
OraFine = "08:45"
Differenza = (Val(Format(OraFine, "hh")) - Val(Format(OraInizio, "hh"))) * 
60 / intervallo
Differenza = Differenza + (Val(Format(OraFine, "nn")) - 
Val(Format(OraInizio, "nn"))) / intervallo
If Differenza <= 0 Then
   MsgBox "Non gestisco gli orari notturni...sorry"
   Exit Sub
End If
NomeCampo = Val(Replace(OraInizio, ":", ""))
ReDim NumeroCampo(Differenza)
For contatore = 1 To Differenza
     NomeCampo = NomeCampo + intervallo
       If Right(NomeCampo, 2) >= 60 Then
          If Len(Trim(NomeCampo)) = 3 Then
             NomeCampo = (Val(Left(NomeCampo, 1)) + 1) & "00"
           Else
              NomeCampo = (Val(Left(NomeCampo, 2)) + 1) & "00"
        End If
       End If
     NomeCampo = Str(NomeCampo)
     If Len(Trim(NomeCampo)) = 3 Then
        NomeCampo = "0" & Trim(NomeCampo)
     End If
 NumeroCampo(contatore) = NomeCampo
Next
For contatore = 1 To Differenza
   NumeroCampo (contatore)
Next
-----------
Buongiorno e Buon lavoro ;-)
Gaspare 

 Buon lavoro...notte
Grazie, provero oggi pomeriggio così.
Purtroppo dovrò gestire anche il turno notturno (22:00 - 6:00)
Ciao
Luca


Il  codice è scritto in maniera "accomodante" ma dovresti raggiungere lo 
scopo......
-----------
Dim OraInizio As String
Dim OraFine As String
Const intervallo = 15
Dim Differenza As Integer
Dim contatore As Integer
Dim NomeCampo As Variant
OraInizio = "22:00"
OraFine = "6:00"
Differenza = (Val(Format(OraFine, "hh")) - Val(Format(OraInizio, "hh"))) * 
60 / intervallo
If Differenza = 0 Then
   MsgBox "Ora Fine = Ora Inizio"
    Exit Sub
End If
If Differenza < 0 Then
        Differenza = (Val(Format("24:00", "hh")) - Val(Format(OraInizio, 
"hh"))) * 60 / intervallo
        Differenza = Differenza + Val(Format(OraFine, "hh")) * 60 / 
intervallo
End If
Differenza = Differenza + (Val(Format(OraFine, "nn")) - 
Val(Format(OraInizio, "nn"))) / intervallo
NomeCampo = Val(Replace(OraInizio, ":", ""))
For contatore = 1 To Differenza
     NomeCampo = NomeCampo + intervallo
          If Right(NomeCampo, 2) = 60 Then
             If Len(Trim(NomeCampo)) = 3 Then
                  NomeCampo = Val(Left(NomeCampo, 1)) + 1 & "00"
                Else
                  NomeCampo = Val(Left(NomeCampo, 2)) + 1 & "00"
              End If
            End If
        If NomeCampo = "2400" Then
             NomeCampo = "0000"
        End If
        If NomeCampo = "6100" Then
             NomeCampo = "0100"
          End If
          If Len(Trim(NomeCampo)) = 2 Then
             NomeCampo = "0" & NomeCampo
          End If
         If Len(Trim(NomeCampo)) = 3 Then
            NomeCampo = "0" & Trim(NomeCampo)
         End If
      NomeCampo = CStr(NomeCampo)
      'NomeCampo = 2215 - 2230 etc...
Next
--------
Buona giornata
Gaspare 


Il  codice è scritto in maniera "accomodante" ma dovresti raggiungere lo 



--------
Dim OraInizio As String
Dim OraFine As String
Const intervallo = 15
Dim Differenza As Integer
Dim contatore As Integer
Dim NomeCampo As Variant
Dim Stringa As String
OraInizio = "22:00"
OraFine = "6:00"
Differenza = (Val(Format(OraFine, "hh")) - Val(Format(OraInizio, "hh"))) * 
60 / intervallo
If Differenza = 0 Then
   MsgBox "Ora Fine = Ora Inizio"
    Exit Sub
End If
If Differenza < 0 Then
        Differenza = (Val(Format("24:00", "hh")) - Val(Format(OraInizio, 
"hh"))) * 60 / intervallo
        Differenza = Differenza + Val(Format(OraFine, "hh")) * 60 / 
intervallo
End If
Differenza = Differenza + (Val(Format(OraFine, "nn")) - 
Val(Format(OraInizio, "nn"))) / intervallo
NomeCampo = Val(Replace(OraInizio, ":", ""))
ReDim Campo(Differenza)
For contatore = 1 To Differenza
     NomeCampo = NomeCampo + intervallo
          If Right(NomeCampo, 2) = 60 Then
             If Len(Trim(NomeCampo)) = 3 Then
                  NomeCampo = Val(Left(NomeCampo, 1)) + 1 & "00"
                Else
                  NomeCampo = Val(Left(NomeCampo, 2)) + 1 & "00"
              End If
            End If
        If NomeCampo = "2400" Then
             NomeCampo = "0000"
        End If
        If NomeCampo = "6100" Then
             NomeCampo = "0100"
          End If
          If Len(Trim(NomeCampo)) = 2 Then
             NomeCampo = "0" & NomeCampo
          End If
         If Len(Trim(NomeCampo)) = 3 Then
            NomeCampo = "0" & Trim(NomeCampo)
         End If
      NomeCampo = CStr(NomeCampo)
      Campo(contatore) = NomeCampo
      'NomeCampo = 2215 - 2230 etc...
Next
 For contatore = 1 To Differenza
     Stringa = Stringa & Campo(contatore) & Chr(13) & Chr(10)
 Next
    MsgBox Stringa 

 Gaspare
grazie ancora
Luca


De Nada...
-------
Dim OraInizio As String
Dim OraFine As String
Const intervallo = 15
Dim Differenza As Integer
Dim contatore As Integer
Dim NomeCampo As Variant
Dim Stringa As String
OraInizio = "22:00"
OraFine = "6:00"
Differenza = (Val(Format(OraFine, "hh")) - Val(Format(OraInizio, "hh"))) *
60 / intervallo
If Differenza = 0 Then
   MsgBox "Ora Fine = Ora Inizio"
    Exit Sub
End If
If Differenza < 0 Then
        Differenza = (Val(Format("24:00", "hh")) - Val(Format(OraInizio,
"hh"))) * 60 / intervallo
        Differenza = Differenza + Val(Format(OraFine, "hh")) * 60 /
intervallo
End If
Differenza = Differenza + (Val(Format(OraFine, "nn")) -
Val(Format(OraInizio, "nn"))) / intervallo
NomeCampo = Val(Replace(OraInizio, ":", ""))
ReDim Campo(Differenza)
For contatore = 1 To Differenza
     NomeCampo = NomeCampo + intervallo
          If Right(NomeCampo, 2) = 60 Then
             If Len(Trim(NomeCampo)) = 3 Then
                  NomeCampo = Val(Left(NomeCampo, 1)) + 1 & "00"
                Else
                  NomeCampo = Val(Left(NomeCampo, 2)) + 1 & "00"
              End If
            End If
        If NomeCampo = "2400" Then
             NomeCampo = "0000"
        End If
        If NomeCampo = "6100" Then
             NomeCampo = "0100"
          End If
          If Len(Trim(NomeCampo)) = 2 Then
             NomeCampo = "0" & NomeCampo
          End If
         If Len(Trim(NomeCampo)) = 3 Then
            NomeCampo = "0" & Trim(NomeCampo)
         End If
      NomeCampo = CStr(NomeCampo)
      Campo(contatore) = NomeCampo
      'NomeCampo = 2215 - 2230 etc...
Next
 For contatore = 1 To Differenza
     Stringa = Stringa & Campo(contatore) & Chr(13) & Chr(10)
 Next
    MsgBox Stringa