To get round this issue I know replace the @ in my sql string with CHAR(64), its a bit messy but works for me.
if InStr(1, strSQL, "Like N'@%") > 1 Then
strSQL = Replace(strSQL, "Like N'@%", "LIKE CHAR(64) + N'%")
Else
strSQL = Replace(strSQL, "@", "'+ CHAR(64)+ N'")
End If