10/11/10 13:41
Iohoilpotere
Salve, sto armeggiando un po con le stringhe SQL su Access utilizzando il codice VBA. Purtroppo non sto avendo buoni risultati... per cui chiedo consiglio a voi, se mi potete correggere dove sbaglio.
La stringa seguente dovrebbe inserire in una tabella 3 campi, presi da un altra tabella e manipolati al fine di ottenere questo:
* Il primo campo NON deve avere uno zero in seconda posizione, e copiare nel caso il primo, il terzo, il quarto e il quinto carattere, nel cas altro i primi 5 dal campo F1 di una tabella.
* Il secondo campo deve contenere i restanti caratteri (per una questione di formattazione del testo so che non deve prendere i primi 12 caratteri del campo) dallo stesso campo di cui sopra.
* Il terzo campo è uguale al primo, differenziato dal fatto che deve essere escluso l'ultimo carattere.
La condizione è che nelle celle della tabella di origine siano presenti un certo numero di spazi (per la precisione 5) prima del testo.
Il codice da me eseguito è il seguente:
Non so se ho fatto bene ad usare degli alias...
EDIT: Dimenticavo l'errore che mi ritorna: "Errore di run-time 3219: operazione non valida"
La stringa seguente dovrebbe inserire in una tabella 3 campi, presi da un altra tabella e manipolati al fine di ottenere questo:
* Il primo campo NON deve avere uno zero in seconda posizione, e copiare nel caso il primo, il terzo, il quarto e il quinto carattere, nel cas altro i primi 5 dal campo F1 di una tabella.
* Il secondo campo deve contenere i restanti caratteri (per una questione di formattazione del testo so che non deve prendere i primi 12 caratteri del campo) dallo stesso campo di cui sopra.
* Il terzo campo è uguale al primo, differenziato dal fatto che deve essere escluso l'ultimo carattere.
La condizione è che nelle celle della tabella di origine siano presenti un certo numero di spazi (per la precisione 5) prima del testo.
Il codice da me eseguito è il seguente:
Set rs = DB.OpenRecordset("insert into TB_ATC4(ATC4, ATC4_DESCRIZIONE, ATC3) " _ & "select if(mid(trim(f1), 2, 1) = 0, left(trim(f1),1) + mid(trim(f1), 3, 3), left(trim(f1), 3)) as RC1, " _ & "right(f1, len(f1) -12) as DESCR, " _ & "left(RC1, len(RC1) -1) as ATC3 " _ & "from TB_Import where (len(F1) - len(ltrim(F1))) = 5")
Non so se ho fatto bene ad usare degli alias...
EDIT: Dimenticavo l'errore che mi ritorna: "Errore di run-time 3219: operazione non valida"
Ultima modifica effettuata da Iohoilpotere 10/11/10 13:50
aaa