Domanda conversione periodo in record

giocap

Utente junior
22 Giugno 2019
77
6
Excel 2003
0
Buongiorno a tutti
spero qualcuno riesca ad aiutarmi, sono piu di un principiante in access.
il mio problema è questo:
ho la necessita di inserire, attraverso una maschera, qualche dato:
Esempio

NOMINATIVO DAL AL VARIAZIONE
CICCILLO 01/01/2019 - 05/01/2019 - MALATTIA

fino qui tutto semplice

In altra tabella ho la necessita che il periodo inserito con la variazione e il nominativo, diventi un record per ogni giorno
Esempio
CICCILLO 01/01/2019 MALATTIA
CICCILLO 02/01/2019 MALATTIA
CICCILLO 03/01/2019 MALATTIA
CICCILLO 04/01/2019 MALATTIA
CICCILLO 05/01/2019 MALATTIA

e gia qui per me diventa un problema!!!

se poi aggiungo il fatto che, laddove dovessi modificare la variazione inserita, automaticamente devono aggiornarsi tutti i record inseriti per queli nominativo, quel periodo e quella variazione:
esempio
CICCILLO non piu in malattia fino al 05/01/2019 ma fino al 03/01/2019

NOMINATIVO DAL AL VARIAZIONE
CICCILLO 01/01/2019 - 03/01/2019 - MALATTIA

pertanto, nella tabella dovranno essere inseriti questi record ed eliminati i precedenti ....

CICCILLO 01/01/2019 MALATTIA
CICCILLO 02/01/2019 MALATTIA
CICCILLO 03/01/2019 MALATTIA

considerando poi che, una sovrapposizione di periodo, riferito allo stesso nominativo, deve segnalarmi un ERRORE
HELP ME!!!!!!!!
 

Allegati

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
21.741
1.733
Como
2011MAC 2016WIN
466
Ciao,
prova in questo modo

Visual Basic:
Option Compare Database
Private Sub Comando12_Click()
    Dim mySQL As String, db As Object
    Dim giorni As Integer, j As Integer
    If Not IsNull(Me.nominativo) And _
        Not IsNull(dal) And Not IsNull(al) And _
        Not IsNull(variazione) Then
        Set db = CurrentDb
        If Not IsNull(DLookup("nominativo", "Tab_Variazioni", _
            "nominativo = " & Chr(34) & Me.nominativo & Chr(34))) And _
            Not IsNull(DLookup("variazione", "Tab_Variazioni", _
            "variazione = " & Chr(34) & Me.variazione & Chr(34))) And _
            Not IsNull(DLookup("dal", "Tab_Variazioni", _
            "dal = " & CLng(Me!dal))) Then
            MsgBox "Dati già inseriti"
            Exit Sub
        End If
        giorni = Me.al - Me.dal
        For j = 0 To giorni
            my_SQL = "INSERT INTO Tab_Variazioni(nominativo,dal,al,variazione) values ('" & _
                nominativo & "', '" & dal + j & "','" & al + j & " ','" & variazione & "')"
            db.Execute (my_SQL)
        Next j
        MsgBox "Inserimento effettuato"
        Query1.Requery
    Else
        MsgBox "Non hai compilato dei campi!", vbExclamation, "ATTENZIONE!"
    End If
End Sub
 

Allegati

giocap

Utente junior
22 Giugno 2019
77
6
Excel 2003
0
ges
grazie e funziona ...
un paio di domande:
1 se inserisco una variazione, con lo stesso nominativo, deve darmi un errore, nel senso che non puo esserci sovrapposizione in quanto un dipendente, in una data, o è bianco o e nero
2 si ha la possibilità, modificando la maschera in "maschere continue", cliccando il tasto inserisci ed inserire tutte le variazioni???? oppure funziona solamente singiolarmente?
GRAZIE
 

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
21.741
1.733
Como
2011MAC 2016WIN
466
se inserisco una variazione, con lo stesso nominativo, deve darmi un errore, nel senso che non puo esserci sovrapposizione in quanto un dipendente, in una data, o è bianco o e nero
Questo dovrebbe funzionare

si ha la possibilità, modificando la maschera in "maschere continue", cliccando il tasto inserisci ed inserire tutte le variazioni???? oppure funziona solamente singiolarmente?
Si può fare come si vuole, ci vuole solo tempo e pazienza SmileFace
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!