deel van inhoud van een veld veranderen

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.697
Hallo,
Per 01/01/2025 is er in onze gemeente een belangrijke fusie gestart met als gevolg dat er een aantal straatnamen veranderd werden.
Ik zou die graag via een query aanpassen, echter, het is me niet duidelijk hoe ik dat best doe
Zo is er bvb "Eikenlaan" wat verandert in "Eikenhof'
Nu heb ik in een veld bvb staan:
Eikenln
Eikenlaan
maar het huisnummer staat ook, in het zelfde veld, dus bvb
Eikenlaan 11, wat dan Eikenhof 11 zou moeten worden of
EIkenlaan(MEL) 11 wat dan Eikenhof(MEL) 11 zou moeten worden

het klopt idd dat ik beter een afzonderlijk veld had gehad voor de huisnummers, maar dat is nu eenmaal niet zo en is wat historisch gegroeid.
Ook als ik een ID uitlees, dan staat de huisnummer altijd samen met de straatnaam op de ID's

Dus, graag jullie hulp.
Met dank
 
Ik zou eerst proberen om toch maar de tabel aan te passen en straatnaam en huisnummer te splitsen. Daarnaast lijkt mij een postcode tabel zeer nuttig, waarbij je dan het StraatID uit die tabel gebruikt in je adressen. Op die manier hoef je de straatnaam maar één keer te wijzigen, i.p.v. (wellicht) tientallen keren. Oftewel: maak het jezelf eerst makkelijk door de gegevens beter op te slaan, en dan de straatnamen tabel aan te passen.
Ik zou het, als je op de huidige constructie door wil gaan, overigens niet met een query doen, maar er een procedure voor maken, waarbij je de gegevens een stuk makkelijker kunt bewerken dan in een query.
 
Hoi, als inwoner van dezelfde gemeente: er is nog een criterium waarop je moet letten: sommige straatnamen zijn gewijzigd om geen dubbele namen in de nieuwe gemeente te krijgen. Dus sommige namen kunnen gewoon blijven staan.
De gemakkelijkste methode is volgens mij: maak een query met als criterium voor de straat naam like "*Eikenlaan*" en de deelgemeente waar die moet aangepast worden en gebruik dan op het resultaat de replace functie die je, zoals in Execel, in de menubalk vindt. Of als het er niet teveel zijn, pas het resultaat handmatig aan.
Aangezien de handeling waarschijnlijk (hopelijk) maar één keer moet uitgevoerd worden is het wat overkill om hier een automatische procedure voor te schrijven, tenware programmeren je hobby is.
 
Een (iets andere) aanpak zou kunnen zijn dat je een tabel maakt met drie kolommen: OudeNaam, NieuweNaam en Plaats. Voor elke bekende schrijfwijze neem een record op. Dus:
- Eikenlaan/Eikenhof/<Plaats>
- Eikenln/Eikenhof/<Plaats>.

Met een updatequery pas je de gegevens dan aan. Je gebruikt daarbij de functie REPLACE. Die vervangt alleen het opgegeven deel. Daardoor heb je geen last van de huisnummers en andere toevoegingen.
Code:
UPDATE tblAdres, tblConversie SET tblAdres.Adres = Replace(Adres,OudeNaam,NieuweNaam)
WHERE tblAdres.Plaats=tblConversie.Plaats And InStr(Adres,OudeNaam)>0
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan