You haven't provided enough parameters for rs.Open - so it opens with the default options, which includes ReadOnly.

For more information, see the article What do the parameters of the recordset.Open method mean? from our Database Development FAQs/Tutorials (at the top of this forum)