The Single Quote basically tells the SQL Parser that the String has finished,
and the characters following that will cause it to fall over.
To avoid this, when working with Strings, replace with TWO single quotes.
e.g (for your code)
' Build criteria string from lstAuthor listbox
Dim selAuthor as String
selAuthor = Replace$(Me.lstAuthor.ItemData(varItem),"'", "''")
For Each varItem In Me.lstAuthor.ItemsSelected
strAuthor = strAuthor & ",'" & selAuthor & "'"
I hope this helps,
<center>"Nothing can stop the man with the right mental attitude from achieving his goal;
nothing on earth can help the man with the wrong mental attitude".