Unfortunately you haven't told us what the error or problem is.
But I do see errors in your Insert statement.
DoCmd.RunSQL ("INSERT INTO" & OutTableName & "(Book, Start) Values (" & Book & "'" & I & ")")
should be
DoCmd.RunSQL ("INSERT INTO " & OutTableName & " (Book, Start) Values ('" & Book & "', " & I & ")")
And
DoCmd.RunSQL ("Insert Into " & OutTableName & "(Book, Start) VALUES (" & Book & "'" & Right(RST.Fields("Book").Value, 5) & ")")
should be
DoCmd.RunSQL ("Insert Into " & OutTableName & " (Book, Start) VALUES ('" & Book & "', " & Right(RST.Fields("Book").Value, 5) & ")")
I'm assuming that the field Book doesn't contain any apostrophies ('). If so you need to change the apostrophies to double quotes ("") like this:
DoCmd.RunSQL ("Insert Into " & OutTableName & " (Book, Start) VALUES (""" & Book & """, " & Right(RST.Fields("Book").Value, 5) & ")")
Of course that syntax assumes that Book doesn't contain any quotes (").
Also, on the last, I'm assuming that Right(RST.Fields("Book").Value, 5) is a numeric value.
Recommendation: Instead of trying to write the RunSQL statement altogther, try this for debugging,
Dim sql as String
sql = "INSERT INTO " & OutTableName & " (Book, Start) Values ('" & Book & "', " & I & ")"
Debug.Print sql
DoCmd.RunSQL sql
The Debug.Print will show the Insert statement that is executing. It will be a little more obvious what the problem is.
Randall J Weers
Membership Vice President
Pacific NorthWest Access Developers Group
http://www.pnwadg.org