Use SQL statements, They are far faster.
Note: Text values should be surrounded with single quotes.
conn.Execute("INSERT INTO Messages (ForumID, PostedBy,....) VALUES(" & Request ("ForumID") & ",'" & Request("PostedBy") & "'," & ...
conn.Execute("UPDATE Forums SET Posts = Posts + 1, LastPost= Now() WHERE ForumID = " & Request("ForumID") )
Info on JET SQL:
Otherwise, I think that you may have to set the cursor location to adUseClient before opening a static recordset that you want to update. (Very not sure).
rs.cursorLocation = adUseClient