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