or you can use
if AdoQuery1.State in [dsEdit, dsInsert] then
AdoQuery1.Post;
also if you are iterating with 'next'
'Next' provides an automatic Post, so after Next your DataSet is not in an Edit mode. To make it work just switch Next and Post lines.
Also you need to refresh data (Adoquery.requery or refresh)
but like I said we must see the code....