1. I valori per i campi di tipo testo vanno racchiusi tra apici
2. Gli apici raddoppiati:

codice:
criterio = "'" & Replace(criterio , "'","''") & "'"
"SELECT * FROM Anagrafica WHERE campo=" & criterio & ";", cn, 1
Ma ci sono un sacco di altre convenzioni sulla formattazione dei valori nelle query.
Questo modo di costruire gli enunciati SQL è vecchio e sbagliato.

Oggi si usano i Command e Parameters.
Leggi il mio articolo in firma su ADODB che vedi in firma.