General

6.132 Dividere automaticamente in due campi (Indirizzo+NumeroCivico e CAP+Città) la stringa contenuta in un solo campo che contiene indirizzo, numeo civico, CAP e città
  Roberto
(D)
Come si può dividere in due campi la stringa di un campo contenente indirizzo, numero civico, CAP, città e sigla della provincia, in modo tale che il primo campo contenga l'indirizzo ed il numero civico ed il secondo campo contenga il CAP, la città e la sigla della provincia?

(R)
Se è vero che nella stringa iniziale l'unica sottostringa in essa contenuta che sia lunga 5 caratteri e che sia formata da soli numeri sia il CAP.
Se i dati da suddividere sono contenuti in un campo di tipo Testo chiamato TuttoInsieme contenuto in una tabella chiamata Tabella1.

In un modulo del tuo database memorizza il seguente codice VBA:
Public Function DividiIndirizzo(IndirizzoUnico As String, PrimaDopo As Integer) As String
Dim Conta As Integer
Dim Conta2 As Integer
Dim Pippo As String
DividiIndirizzo = ""
For Conta = 1 To Len(IndirizzoUnico) - 5
    Pippo = ""
    For Conta2 = 0 To 4
        If IsNumeric(Mid(IndirizzoUnico, Conta + Conta2, 1)) Then
            Pippo = Pippo & Mid(IndirizzoUnico, Conta + Conta2, 1)
        End If
    Next Conta2
    If Len(Pippo) = 5 Then
        If PrimaDopo = 1 Then
            DividiIndirizzo = Left(IndirizzoUnico, Conta - 1)
            Exit Function
        Else
            DividiIndirizzo = Mid(IndirizzoUnico, Conta)
            Exit Function
        End If
    End If
Next Conta
End Function
Quindi per ottenere la suddivisione stringa iniziale in due campi, crea una query che abbia il seguente codice SQL:
SELECT Tabella1.TuttoInsieme, DividiIndirizzo([TuttoInsieme],1) AS Campo1, DividiIndirizzo([TuttoInsieme],2) AS Campo2
FROM Tabella1;


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.