Newsgroup: it.comp.appl.access
Titolo: Ricavare stringa tra due caratteri

Ciao a tutti
ho degli indirizzi in questo formato:
VA - GALLARATE - Via del Lavoro 13
Io vorrei scomporli in tre campi:
provincia = caratteri a destra del primo "-"
Comune = caratteri a sinistra del primo "-" e a destra del secondo "-"
Indirizzo = caratteri a sinistra del secondo "-"
Esiste una qualche funzione che mi dia questo risultato?
Grazie a tutti
Ciao
Marco

 wrote in message
news:YNn_a.240687$
lK4.7...@twister1.libero.it

Allora devi sfruttare qualche funzione dedicata alle stringhe:
Instr(TuaStringa,"-") ti restituisce la posizione del 1° carattere "-"
Nel tuo caso 3
Mid$(Tuastringa, start[, length]) recupera una porzione di Stringa
quindi 
PrimaStringa=Mid$(TuaStringa,1,Instr(tuastringa,"-")-1)="VA"
SecondaStringa=Mid$(TuaStringa,Instr(Tuastringa,"-")+1,Len(TuaStringa))
In realtà il recipero della seconda parte sarà parziale, nel senso che
sarà:
SecondaStringa="GALLARATE - Via del Lavoro 13"
Quindi:
SecondaStringa=Mid$(SecondaStringa,1,Instr(SecondaStringa,"-")-1)="GALLARATE"
E così via per la 3° parte.
Ciao.
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:YNn_a.240687$lK4.7...@twister1.libero.it...

Sono ancora io e aggiungo un'appendice.
Ho controllato che alcuni indirizzi possono essere così:
"VA - GALLARATE - Via del Lavoro 13"
per cui dovrei eliminare anche il primo ed ultimo carattere della stringa
(se ovviamente corrispondente alle virgolette)
Sto provando così ma senza risultato perché non riesco  a fargli
identificare le virgolette. Mi dice sempre PREVISTO THEN OPPURE GOTO
Dim rst As DAO.Recordset
Dim Provincia As String
Dim Comune As String
Dim Indirizzo As String
Set rst = CurrentDb().OpenRecordset("SELECT DISTINCT [Indirizzo Cliente] " &
_
                                    "FROM Clienti" & _
                                    "WHERE (((Clienti.[Indirizzo Cliente])
Is Not Null));")
        Do Until rst.EOF
            rst.Edit
            carattere = Left(rst.Fields("Indirizzo Cliente"), 1)
            If carattere = """ Then rst.Fields("Indirizzo Cliente") =
Right(rst.Fields("Indirizzo Cliente"), 1)
            rst.Update
            rst.MoveNext
        Loop
rst.Close

 ha scritto nel messaggio
news:YNn_a.240687$lK4.7...@twister1.libero.it...

Molte strade sono possibili. Te ne propongo una:
Crea una tabella cosě fatta:
Tabella1:
ID              Contatore
PR             Testo 2 caratteri
Citta          Testo 100 caratteri
Indirizzo     Testo 255 caratteri
Presuppongo che la tabella dalla quale prelevare o trasformare i dati
si chiami "INDIRIZZI" e contiene un campo che si chiama "Indirizzo"
Creo la seguente funzione in un db che ha nei riferimenti il solo DAO o non
ADO:
Public Function ScomponiIndirizzo()
'VA - GALLARATE - Via del Lavoro 13
Dim pos As Integer, pos2 As Integer, i As Integer
Dim indirizzo As String
Dim rcs As Recordset, RcsIndirizzi As Recordset
    Set rcs = CurrentDb.OpenRecordset("Tabella1")
    Set RcsIndirizzi = CurrentDb.OpenRecordset("Indirizzi")
        RcsIndirizzi.MoveLast
        RcsIndirizzi.MoveFirst
    For i = 1 To RcsIndirizzi.RecordCount
        indirizzo = RcsIndirizzi!indirizzo
        pos = InStr(1, indirizzo, "-")
        pos2 = InStr(pos + 1, indirizzo, "-")
            With rcs
            .AddNew
            !PR = Mid$(indirizzo, 1, 2)
            !Citta = Trim(Mid$(indirizzo, pos + 1, (pos2 - (pos + 1))))
            !indirizzo = Trim(Mid$(indirizzo, pos2 + 1, Len(indirizzo)))
            .Update
            End With
        RcsIndirizzi.MoveNext
        Next i
        RcsIndirizzi.Close
        Set RcsIndirizzi = Nothing
        rcs.Close
        Set rcs = Nothing
End Function
Questa č una delle possibili strade ma dalla quale potrai trarre degli utili
esempi
sulle funzioni Mid$, Instr, Len ecc.
Ciao, Carlo

 wrote in message
YNn_a.240687$lK4.7...@twister1.libero.it...

Sbaglio o fai un po' di confusione tra "destra" e "sinistra"?
Certo che politicamente sei messo un po' male!! ;-)
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:cHo_a.240376$Ny5.7...@twister2.libero.it...

In effetti ho fatto un pò di confusione...
Si vede che sto fondendo e che mi ci vuole una vacanza.
Politicamente, purtroppo, mi sembra che siamo un pò tutti messi male
(soprattutto in questo momento...)
Ciao dall'ambidestro...


L'importante e' non essere ambisinistro
Sib

"Sib" <si...@SPAMiol.it> ha scritto nel messaggio
news:Leq_a.79835$cl3.2...@news2.tin.it...

o ambidestro