I don't think you're supposed to close the recordset right after binding it to your form.
Try removing rsnb.Close
from your code and see if that fixes it.
Question
Private Sub Form_Open(Cancel as Integer)
Dim rsnb As ADODB.Recordset
Set rsnb = New ADODB.Recordset
rsnb.Open "SELECT * FROM QmessagesNoBill WHERE messageID='" & Me.OpenArgs & "'", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Set Me.Recordset = rsnb 'set the forms recordset (me!) as the ADO recordset noted in SQL query above, see kb281998
rsnb.Close: Set rsnb = Nothing
End Sub
Hitting debug on the error it highlights the first line of text in a button event:
Private Sub btnapprove_Click()
Me.Recordset!reviewed = 1 'mark that its been reviewed
Me.Recordset.Update
End Sub
Please note:
Solution
I don't think you're supposed to close the recordset right after binding it to your form.
Try removing rsnb.Close
from your code and see if that fixes it.