Leandro: Cuando dices que quieres añadir unos registros a un Sub Formulario, interpreto que lo que pretendes es "añadir" unos registros a una Tabla y que se muestren en un Sub Formulario.
Si eso es así, haré varias suposiciones de Nombres de Objetos y tu los adecúas a los tuyos.
El sub Formulario ni lo cito, porque has de construirlo según los datos de la Tabla que voy a Nombrar como >> TblAusencias con 3 Campos: IdEmpleado, FechaAusente y Motivo.
Tres "Controles" Independientes en el Formulario Empleados, con los Nombres de: FInicio, FFin y el IdEmpleado (que en tu caso ya debes tener). Un Botón que llamaré >> BtnCreaRegistros
El código que has de poner en ese botón citado es el Siguiente.
Private Sub BtnCreaRegistros_Click()
'Nota Inicial: No olvidar dar de alta la Referencia: Microsoft Office xx.y Access database engine Object Library.
'En Heramientas >> Referencias .............
Dim StrSQL As String
Dim Rst As DAO.Recordset
Dim NumDia As Integer, TotalDias As Integer
'Me aseguro que FIni y FechaFin están llenas y son Fechas
If IsDate(Me.FInicio) And IsDate(Me.FFin) Then
StrSQL = ""
'Hago el cálculo de los días que he de Insertar en la Tabla
TotalDias = DateDiff("d", Me.FInicio, Me.FFin)
'Ahora abro un Recordset sobre la Tabla, para grabar los días desde FInicio a FFin
StrSQL = "SELECT * From TblAusencias;"
Set Rst = CurrentDb.OpenRecordset(StrSQL, dbOpenDynaset)
For NumDia = 0 To TotalDias
Rst.AddNew
Rst!IdEmpleado = Me.IdEmpleado
Rst!FechaAusente = Me.FInicio + NumDia
Rst!Motivo = "Vacaciones"
Rst.Update
Next
StrSQL = ""
'Cierro el Recordset y libero Recursos
Rst.Close
Set Rst = Nothing
Else
MsgBox "La Fecha de Inicio o la de Fin o ambas están vacías o tienen un valor incorrecto", vbCritical, "REPASA LAS FECHAS"
End If
End Sub
Es una forma de hacerlo, pero no la única, y si quieres indagar por tu cuenta, mira el concepto de una SQL de Inserción de datos.
Un saludo >> Jacinto
Buen apunte Diego para simplificar código: No obstante creo que la terminación debería ser ,'Vacaciones')" en lugar de ,'Vacaciones''"). Un saludo >> Jacinto - Jacinto Trillo Jareño
Diego: Tu terminación era ,'Vacaciones'") y no la que te he puesto. Un saludo >> Jacinto - Jacinto Trillo Jareño
Tienes toda la razón, Jacinto, el último paréntesis debe ir antes de la comilla doble. Cosas del directo....Un saludo - Sveinbjorn El Rojo