Close the connection. Maybe something is holding it open.

Also, you probably don't need dynamic cursors.

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Private Sub Command0_Click()

    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\test.accdb;"
    
    cn.Open

        rs.Open "SELECT * From table1", cn, adOpenStatic, adLockOptimistic

            rs.AddNew
                rs!a = Day(Date)
                rs!b = Month(Date)
                rs!c = Year(Date)
            rs.Update
        rs.Close
    cn.Close
    
    rsout
End Sub

Sub rsout()
    cn.Open

        rs.Open "select * from table1", cn, adOpenForwardOnly, adLockReadOnly

            Do Until rs.EOF

                'print out
                Debug.Print rs(0).Value, rs(1).Value, rs(2).Value, rs(3).Value

                rs.MoveNext
            Loop
        rs.Close
    cn.Close
End Sub