01. april 2009 - 08:31Der er
4 kommentarer og 1 løsning
Opdeling af adresse
Hej Jeg har en tabel med et adresse-felt. Kan det lade sig gøre i en forespørgsel at opdele indholdet i adresse-feltet, så det bliver til følgende felter:
Du kan måske klare dig med en quick-and-dirty i stil med nedenstående. Her har du en række funktioner, der returnerer de enkelte komponenter. BEMÆRK: Den er nok ikke 112% skudsikker; men den er tæt på ;o)
I din forespørgsel lægger du en række felter med indholdet: Gadenavn: Find_Gadenavn(Adr) Husnr: Find_Husnr(Adr) osv
Adr = "Hovedgaden 42" Debug.Print Find_Gadenavn(Adr); "*"; Find_Husnr(Adr); "*"; Find_Etage(Adr); "*"; Find_Dør(Adr); "*" Debug.Print End Sub
Function Find_Gadenavn(Adr As String) As String Dim Gadenavn As String Dim Husnr As String Dim Etage As String Dim Dør As String
Call OpdelAdresse(Adr, Gadenavn, Husnr, Etage, Dør) Find_Gadenavn = Gadenavn End Function
Function Find_Husnr(Adr As String) As String Dim Gadenavn As String Dim Husnr As String Dim Etage As String Dim Dør As String
Call OpdelAdresse(Adr, Gadenavn, Husnr, Etage, Dør) Find_Husnr = Husnr End Function
Function Find_Etage(Adr As String) As String Dim Gadenavn As String Dim Husnr As String Dim Etage As String Dim Dør As String
Call OpdelAdresse(Adr, Gadenavn, Husnr, Etage, Dør) Find_Etage = Etage End Function
Function Find_Dør(Adr As String) As String Dim Gadenavn As String Dim Husnr As String Dim Etage As String Dim Dør As String
Call OpdelAdresse(Adr, Gadenavn, Husnr, Etage, Dør) Find_Dør = Dør End Function
Sub OpdelAdresse(Adresse As String, Gadenavn As String, Husnr As String, Etage As String, Dør As String) Dim a() As String Dim i As Integer Dim n As Integer
Gadenavn = "" Husnr = "" Etage = "" Dør = ""
a = Split(Adresse, " ") n = UBound(a)
i = 0 Gadenavn = "" Do Until IsNumeric(Left(a(i), 1)) Gadenavn = Gadenavn & a(i) & " " i = i + 1 Loop Gadenavn = Left(Gadenavn, Len(Gadenavn) - 1) If i <= n Then Husnr = a(i) i = i + 1 End If Husnr = Replace(Husnr, ",", "") Husnr = Replace(Husnr, ".", "") If i <= n Then Etage = a(i) i = i + 1 End If If i <= n Then Dør = a(i) End If End Sub
Opdeling af et adressefelt til mere end 2 felter (dvs. at man ikke kan bruge left og len...ovenstående kode tror jeg kan anvendes. Fdata, vil du give et bud?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.