è successo anche a me...ho risolto sostituendo gli apici con * in fase di scrittura nel database; in fase di lettura faccio l'operazione opposta, sostituisco l'asterisco con gli apici.
è sempre bene controllare se la query ha dato almeno un risultato, poiché se così non è, cursor2.Position=0 darà errore, visto che non c'è un record su cui impostare la 'position'
altra cosa, alla fine dell'If è bene chiudere il cursor, con Cursor.Close. cioè ad ogni query eseguita (che essa dia risultati o meno) deve corrispondere un'istruzione di chiusura del cursor.