so you have 2 recordsets on the page.
the first Books recordset is set to filter on the recID querystring variable, the second recordset is set to filter on a column from the first recordset.
like I said initially:
My guess is that the recordset is set to filter on URL variable which exists when the page opens, but is not passed as part of the form action, so when the form posts, the recordset is now empty. 
this is indeed the case.
edit the forms action so it passes the recID querystring variable on submitting the form
change:
<form class="NewFromBlank_Default" id="SimpleContact_NewFromBlank_Default" name="SimpleContact_NewFromBlank_Default" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
to:
<form class="NewFromBlank_Default" id="SimpleContact_NewFromBlank_Default" name="SimpleContact_NewFromBlank_Default" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?><?php echo (isset($_SERVER["QUERY_STRING"]) && $_SERVER["QUERY_STRING"] != "")?"?".htmlspecialchars($_SERVER["QUERY_STRING"]):""; ?>">

