Un ejemplo parecido a lo que entiendo quieres hacer:
Variables globales para el manejo de datos:
Código vb:
Ver originalDim cn As ADODB.Connection
Dim res As ADODB.Recordset
Dim conexion As String
en el load del formulario colocas esto, (en este caso yo lo hice con una BD en access 2007, pero solo cambia la cadena de conexión para version de access que tú estes utlizando):
Código vb:
Ver originalPrivate Sub Form_Load()
Set cn = New ADODB.Connection
conexion = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Data.accdb;Persist Security Info=False"
cn.ConnectionString = conexion
cn.Open
Set res = New ADODB.Recordset
With res
.ActiveConnection = cn
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockOptimistic
End With
actualizargrid
End Sub
Primero que nada creas registros en blanco de acuerdo al número de días del mes eso lo puedes hacer con esto colocado en un botón, aqui por ejemplo le indico que me cree 10 registros en blanco con su respectivo código:
Código vb:
Ver originalPrivate Sub Command1_Click()
res.Close
res.Open "SELECT MAX(codigo) FROM Alumnos" 'Se obtiene el numero mayor de la columna código para poder generar el siguiente
Dim codigo As Variant
codigo = res.Fields(0)
If IsNull(codigo) Then 'se pregunta si el resultado ha sido null, lo que quiere decir que la tabla está en blanco
codigo = 0
End If
res.Close
For contador = 1 To 10
codigo = codigo + 1
With res
.Open "INSERT INTO Alumnos VALUES(" & codigo & ",'','','','')"
End With
Next
actualizargrid
End Sub
Y para actulizar el datagrid:
Código vb:
Ver originalSub actualizargrid()
res.Open "SELECT * FROM Tabla"
Set DataGrid1.DataSource = res
End Sub
La propiedad AllowUpdate del data grid debe es en true, y con eso todo cambio que hagas en la grilla se guardará en la base de datos.