Postcode en huisnummers scheiden

Status
Niet open voor verdere reacties.

thagator

Gebruiker
Lid geworden
19 feb 2009
Berichten
7
Als beginnend access gebruiker heb ik al veel info uit de diverse vragen en antwoorden die reeds door anderen zijn gepost op dit forum gehaald. :thumb:

Nu heb ik een vraag waar ik zo niets over terug kon vinden.

Ik heb een tabel met postcodes en huisnummers in het volgende formaat:

7941AN-12

Zo nu en dan heb ik een postcode/huisnummer met daarachter ook nog een toevoeging:

7941AN-12-A

Zou iemand mij kunnen vertellen hoe ik deze kan scheiden in een nieuwe tabel met de kolommen: postcode, huisnummer, toevoeging

Grtz,

Patrick
 
Ik heb hier een routine die (een iets gangbaarder proces) een postcode+plaats uit elkaar trekt.
Met een paar kleine aanpassingen moet je hem wel werkend krijgen voor jouw doeleinden.
Deze code voegt overigens velden toe aan de bestaande tabel.
Code:
Private Sub AdresSplitsen()
'postcode en plaats uit elkaar trekken
' variabele                     doel

Dim strGesplitst() As String    'snelle scheiding op spaties

'Algemeen nodige variablen vullen
Set db = CurrentDB

strTable = "[NaamVanTabel]"
strField = "[NaamVanOrigineelVeld]"

'toevoegen van de velden voor gesplitste gegevens

strSQL = "ALTER TABLE " & strTable & " ADD COLUMN Nw_Postcode TEXT(50), Nw_HuisNr TEXT(5), Nw_HuisNr_Toev TEXT(5)"
db.Execute (strSQL)

db.TableDefs(strTable).Fields("Nw_Postcode").AllowZeroLength = True
db.TableDefs(strTable).Fields("Nw_HuisNr").AllowZeroLength = True
db.TableDefs(strTable).Fields("Nw_HuisNr_Toev").AllowZeroLength = True

'de tabel openen als recordset zodat 1 voor 1 door de records gegaan kan worden
Set rs = db.OpenRecordset("SELECT * FROM " & strTable & " ORDER BY " & strField & " DESC;")
rs.MoveFirst
Do While Not rs.EOF
    If Not IsNull(rs.Fields(strField).Value) Then
       If rs.Fields(strField).Value <> "" Then
        rs.Edit
        rs.Fields(strField).Value = Replace(rs.Fields(strField).Value, "'", "apostrof")
        rs.Update
        
        'ff alle variabelen legen
        strPCcijfers = ""
        strPCletters = ""
        strPlaats = ""
        'en de originele string ophalen
        strOrigineel = Trim(rs.Fields(strField).Value)
        strOudeWaarde = rs.Fields(strField).Value
            If IsNumeric(Left(strOrigineel, 4)) Then
                strPCcijfers = Left(strOrigineel, 4)
                strOrigineel = Mid(strOrigineel, 5, Len(strOrigineel))
                strOrigineel = Trim(strOrigineel)
                strPCletters = Left(strOrigineel, 2)
                strOrigineel = Mid(strOrigineel, 3, Len(strOrigineel))
                strOrigineel = Trim(strOrigineel)
                strPlaats = strOrigineel
                strSQL = "UPDATE " & strTable & " SET Nw_Postcode = '" & strPCcijfers & " " & strPCletters & "' ,Nw_HuisNr='" & strPlaats _
                    & "' WHERE " & strField & "='" & strOudeWaarde & "'"
                db.Execute (strSQL)
            End If

            If Not IsNull(rs.Fields("Nw_HuisNr").Value) Then
            rs.Edit
            rs.Fields(strField).Value = Replace(rs.Fields(strField).Value, "apostrof", "'")
            rs.Fields("Nw_HuisNr").Value = Replace(rs.Fields("Nw_HuisNr").Value, "apostrof", "'")
            rs.Update
            End If
    End If
    End If
rs.MoveNext
Loop

rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
MsgBox ("postcode en plaats gesplitst")
End Sub
 
Laatst bewerkt:
Bedankt voor je snelle reactie Michel.:thumb:
Ik ga er meteen mee aan de slag
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan