La prima cosa che mi viene in mente è che se ti capita una città come L'Aquila l'apostrofo rende la tua select così:

SELECT CAP from dati_localita WHERE nome_comune = 'L'Aquila'

quindi 'L'Aquila' la prende come campo 'L' (qui finisce la stringa) e Aquila' non sa cos'è perchè è dopo l'istruzione e si incazza.

quindi devi mettere il doppio apice all'interno della stringa:

my_localita = Replace(my_localita, "'", "''")
my_query = "SELECT CAP from dati_localita WHERE nome_comune = '" & my_localita & "';"

non so se questo risolve i tuoi problemi ma è sicuramente uno dei problemi che incontrerai più avanti