Perché non usi una funzione UDF?
Public Function Apici(ByVal s As String) As String
s = s & vbNullString
If s = vbNullString Then
Apici = "''"
Exit Function
End If
Apici = Chr$(39) & Replace(s, "'", "''") & Chr$(39)
Ebd Function
Poi la usi così:
Set rs = DB.OpenRecordset("Select * from Nome where voce = " & Apici(Trim(lst_dati.List(lst_dati.ListIndex)))