Salve a tutti. Buona domenica. Vi chiedo un aiuto perchè non riesco proprio a capire che succedde!!
Devo creare un calendario didattico ed ho utilizzato un ciclo DAO inserendo in una maschera:
Corso, DataInizio, DataFine, OraInizio, OraFine.
Supponiamo di vole creare un calendario da giorno 12/09/2018 a giorno 13/09/2018 dalle 8:00 alle 20:00
Viene di seguito riportato il codice:
Dim settimana As Variant
Dim Corso As Integer
Dim Sede As Integer
Dim OraInizio As Date
Dim OraFine As Date
Dim DataInizio As Date
Dim DataFine As Date
Dim i As Integer
Dim j As Integer
Dim intRisposta As String
Dim IDCalendario As Variant
Dim Massimo As Variant
Dim rs As DAO.Recordset
Dim db As DAO.Database
Set db = CurrentDb
Set rs = db.OpenRecordset("Calendario", dbOpenDynaset)
DataInizio = Me.Testo444
DataFine = Me.Testo446
OraInizio = Me.Testo448
OraFine = Me.Testo450
j = Hour([OraFine] - [OraInizio])
Sede = Me.Sede
Corso = Me.Corso
If rs.EOF Then ' Crea un record se la tabella è vuota
rs.AddNew
rs!Data = #1/1/1900#
rs.Update
End If
rs.Close
Set rs = Nothing
Set rs = db.OpenRecordset("Calendario", dbOpenDynaset)
intRisposta = MsgBox("Attenzione hai deciso di creare il calendario. Sei sicuro?", vbYesNo + vbExclamation, "")
If intRisposta = vbYes Then
Do Until rs.EOF
settimana = WeekdayName(Weekday([DataInizio], 2))
If DataInizio <= DataFine Then
i = 0
For i = 1 To j
rs.AddNew
rs!Data = DataInizio
rs!Giorno = settimana
rs!OraInizio = OraInizio
rs!OraFine = OraInizio + #1:00:00 AM#
rs!IDMateria = Null
rs!IDDocente = Null
rs!IDCorso = Corso
rs!NSede = Sede
OraInizio = OraInizio + #1:00:00 AM#
rs.Update
Next
OraInizio = Me.Testo448
DataInizio = DataInizio + 1
Else
'Call EliminaDuplicati
Me.Requery
MsgBox "Calendario creato correttamente", vbInformation, ""
Exit Sub
End If
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
DBCOrrente.Close
Exit Sub
Else: Exit Sub
End If
Il Calendario viene creato correttamente ma appeno apro la tabella "Calendario" succede una cosa strana nel campo OraInizio perchè non tutti hanno lo stesso formato. esempio:
8:00
9:00
10:00
11:00:00
12:00
13:00
14:00:00
15:00:00
16:00:00
17:00:00
18:00:00
19:00:00
Per quale motivo? Grazie sempre per il vostro prezioso apporto