В Jet / ACE SQL вы не можете поместить предложение WHERE или ORDER BY в псевдоним имени поля - вы должны повторить выражение, на которое ссылается псевдоним. Итак, замените это:
SELECT title, (a1_Fname + a2_Fname) AS ColumnA, (a1_Lname + a2_Lname) AS ColumnB
FROM books
WHERE ColumnB LIKE '#firstletter#%'
ORDER BY ColumnB
... с этим:
SELECT title, (a1_Fname + a2_Fname) AS ColumnA, (a1_Lname + a2_Lname) AS ColumnB
FROM books
WHERE a1_Lname + a2_Lname LIKE '#firstletter#%'
ORDER BY a1_Lname + a2_Lname
Если у вас установлен Access, я настоятельно рекомендую вам протестировать SQL в интерактивном Access, в QBE. Вы бы быстро обнаружили, что это так, если бы вы просто попробовали это в Access.