Naam-voornaam

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.697
beste allemaal

In mijn database bestaat er een veld wat de achternaam EN de voornaam bevat...
Dus beide staan opgeslagen in 1 veld
Niet zo een goed idee blijkt nu
Is er een manier waarop ik achter- en voornaam uit dit ene veld kan halen en opsplitsen in 2 afzonderlijke velden...
Manueel wordt dit echt wel een luizenwerkje.

Bedankt
JP
 
In principe is de oplossing niet anders dan een oplossing met een losse lijst. Zolang de data op een rigide manier is opgeschreven is het voor een groot deel met een script te scheiden. sommige namen kunnen moeilijk te scheiden zijn en moeten eventueel met de hand worden nagekeken.

De oplossing hoeft echter niet per se te gebeuren in access zelf. je kunt ook exporteren, scheiden en opnieuw importeren
 
Ik heb wel een functie die je daarvoor kunt gebruiken, en die één veld overzet naar 2 velden. Gewoon met een bijwerkquery dus. Het is nauwelijks nodig om daarvoor te exporteren, scheiden en importeren. Bovendien heb je dan nog steeds het probleem dat je de import alsnog moet toevoegen aan de eigenlijke tabel, en de oplossing van wampier is dus behoorlijk wat meer werk (met foutenrisico) dan een oplossing binnen Access.
 
in bijlage een voorbeeld van het splitsen van naam in voornaam, tussenvoegsel en achternaam

Het zal ongetwijfeld beter en charmanter kunnen maar het werkt wel

mvg
John
 

Bijlagen

Ik gaf alleen maar aan dat de oplossing niet in access hoeft te gebeuren. Als het kan is het prima natuurlijk.

Risico valt wel mee, hoewel dat inderdaad wel iets groter is.
 
Ik heb je nog nooit in het Excel forum zien schrijven dat de oplossing ook in Access kan :D. Hoewel dat in sommige gevallen een veel betere oplossing zou zijn.
 
Ik duid dan ook niet op excel. voor mijn werk gebruiken we soms krachtige multi-pass data-parsers. Hier kun je meerdere regels en uitzondering uitvoeren over een brokje data en hieruit weer andere data genereren. Veelal gedaan in talen zoals python of lua via dingen zoals regular expressions en matrix functies.

In veel databases kunnen deze scripts vervolgens weer gehangen worden aan bijvoorbeeld een "cursor" om door de gegevens te lopen en de uitvoer vervolgens weer in te voeren. Je kunt ook een dataset in zijn geheel in een keer transformeren.

Het klinkt allemaal wat abstract en tamelijk overkill voor het scheiden van een naam in twee delen, maar dit soort oplossing worden in de praktijk veel gebruikt om meerwaarde te creëren.
 
Ik schreef het volgende:
UPDATE fiche SET fiche.Voornaam = Left([naam],InStr(" ",[naam],1)-1), fiche.Achternaam = Mid([naam],InStr(" ",[naam],1),99);

maar de query wordt niet uitgevoerd "tengevolge van een fout bij het converteren van het type"

Naam
voornaam
achternaam
zijn alle tekstvelden, dus wat doe ik verkeerd?

Bedankt
JP
 
Je parameter is dat van een numeriek veld, niet van een tekstveld. Er moeten dus quootjes bij.
 
Sorry Michel, Ik vrees dat ik met de "terminologie" niet echt mee ben...
Wat bedoel je met de "parameter"? en waar moet ik dan die quootjes plaatsen?

Bedankt

JP
 
Verkeerde termen gebruikt, hoewel? parameter is an sich wel een goed woord in deze. Een functie als InStr gebruikt gegevens om te kunnen werken, zoals veldnaam, startpositie etc. Dat noemen we dus parameters. In jouw geval staan ze in de verkeerde volgorde. Probeer deze maar:
Code:
UPDATE fiche SET Voornaam = Left([naam],InStr(1,[naam]," ")-1), Achternaam = Mid([naam],InStr(1,[naam]," ")+1,Len([naam])-InStr(1,[naam]," "));
Het leuke is: had je de functie gemaakt met de knop <Opbouwen>, dan had dit je niet gebeurd :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan