akronko ha scritto:
...utilizzo gli strumenti di MS come utente finale e al momento sto utilizzando Access per gestire database molto grandi.
Questo significa che non puoi mettere mano alla struttura dei dati?
Mi spiego: quello che hai chiesto potrebbe essere la conseguenza di tabelle strutturate male. Non è forse il caso di inserire un apposito campo relativo alla Tipologia? Da popolare massivamente magari con una query di aggiornamento, in prima battuta.
Se quello che vuoi fare è invece solo (e sottolineo solo) ottenere la tipologia in base al valore di quel campo (m'è venuta la pelle d'oca leggendo colonna), io farei una UDF (User Defined Function) che analizza il primo carattere e con una Select Case restituisce il valore che ti interessa.
Limitarsi ad analizzare il primo carattere per due motivi:
1) si riesce ad ottenere il risultato lo stesso, non servono i primi due. Senza questa salta la 2.
2) una volta che la numero 1 lo consente è possibile avvalersi della "velocità" di Asc (e relativa variante AscW)
Qui trovi un esempio:
Optimize string handling in VB6 - Part I nella parte indicata "Comparing the leftmost character"
Evidenzio però che questa è una soluzione ad hoc per il caso specifico. Se dietro si nascondono altre esigenze o quello che è mai bisogna cambiare approccio.
Come hai anche scritto nell'oggetto del thread, è possibile creare If (o IIf) nidificate direttamente in una query con un campo calcolato ma non saprei dire se è più performante della UDF creata come sopra. Per te probabilmente è più semplice.