Namen met spaties correct sorteren in Access

Status
Niet open voor verdere reacties.

gbsjsh

Nieuwe gebruiker
Lid geworden
10 okt 2009
Berichten
3
Bij het sorteren van namen mét en zonder spaties in een formulier van Access treden steeds fouten op.
In de query koos ik voor 'oplopend'.
Zo krijg is volgende foutief resultaat: Van de Walle - Vandenbergh.
Access houdt dus ook rekening met de spaties. Is dit aan te passen?
 
Wat vind je fout aan het sorteerresultaat? Een spatie is gewoon een tekstteken, dus is het logisch dat daar met de sortering rekening mee wordt gehouden. Wat wil je precies bereiken?
 
Leg voornamen/voorletters, tussenvoegsels en achternamen vast in aparte kolommen.
Vervolgens sorteren op achternaam.

Grtz,

Tardis
 
Sorteren in access

Het probleem is de de namen worden ingevuld via een formulier; dus in het veld 'naam' wordt bvb ingevuld Van de Velde of Vandenbergh.
Deze namen worden opgenomen in een tabel.
Uit deze tabel wordt een rapport gegenereerd, waarbij al de namen correct moeten worden gealfabetiseerd, dus eerst moet komen Vandenbergh en daarna Van de Velde, zoals een alfabetische sortering hoeft te zijn! Dat is het probleem.
 
Even voor de duidelijkheid: van den Velde komt altijd voor VandenBerg, juist omdat er een spatie in zit! Wat jij nodig hebt, is een tooltje om de tussenvoegsels te scheiden van de achternamen, zodat VandenBerg vergeleken wordt met Velde.
Je kunt wel een functie(tje) gebruiken waarbij je bijvoorbeeld eerst scant of er een spatie in de naam voorkomt, en dan de tekst apart zetten vanaf de laatste spatie, zodat je Velde apart krijgt van het tussenvoegsel Van den, maar zo'n formule is niet helemaal waterdicht, omdat je ook samengestelde achternamen hebt: <Van Boekelo tot Winschoten> bijvoorbeeld, die zou je moeten beschouwen als Tussenvoegsel: <van>, Achtenaam: <Boekelo tot Winschoten>.
Ik ben nog wel bezig om een tool die ik speciaal voor dit werk heb gemaakt te 'veralgemeniseren', maar die is nog niet helemaal af, want een tikkie te groot om zo te posten.
Maar je kunt het wel oplossen... Het mooiste zou zijn om de gegevens apart aan te leveren, dus bij de bron ervoor te zorgen dat je de gegevens gescheiden ophaalt, dan kun je ze in aparte velden opslaan.
 
Bedankt voor je toelichting.
Probleem is alleen dat in het formulier slechts één veld voorzien is om de volledige familienaam in te vullen.
Dus daar komt in: Van de Velde zowel als Vandenbergh als Wouters. Wat ik nodig heb is dus wel degelijk een tooltje om bij het alfabetiseren de spaties te negeren.
 
Pas om te beginnen je tabel aan en je formulier.
En wel zo, dat voornamen/voorletters, tussenvoegsels en achternamen apart worden ingevoerd/opgeslagen.
Achternamen die je nu al hebt ingevoerd kun je splitsen in tussenvoegsel en achternaam met behulp van de funktie Split en een stukje VBA code.

Hoe zal ongetwijfeld eerder op het forum zijn behandeld, zou zeggen, zoek even.

Grtz,

Tardis
 
Ik heb een tooltje voor je, dat je kunt gebruiken om de namen te splitsen in aparte kolommen. Kijk maar eens of je daar mee uit de voeten kunt.
Ik heb wel het e.e.a. moeten strippen, dus ik kan niet garanderen dat hij goed werkt.
Om te beginnen, importeer je eerst de tabel met de gegevens die je wilt splitsen.
Vervolgens open je het formulier <frmConverteren> en selecteer je de tabel die je wilt aanpassen. Je kunt op de verschillende tabbladen aparte velden converteren, zoals adres en contactgegevens.
Zoals gezegd, het tooltje maakt zelf eigen kolommen aan, dus je oorspronkelijke velden blijven onaangeroerd. Probeer 'm uit, en kijk of je er wat aan hebt!
 

Bijlagen

Ik kwam toevallig via Google terecht op dit topic omdat iemand me hetzelfde probleem voorlegde.
Technisch gezien komt idd een spatie voor een gewone letter, maar bij sorteren (bvb. in een telefoonboek) is dit niet altijd gewenst.

Even verder gedacht, de oplossing is vrij eenvoudig:

  1. Maak een query waarin je de achternamen opneemt
  2. Maak hierin een berekend veld met de REPLACE functie. Deze kan in een string een stukje tekst vervangen door een andere tekst, in dit geval een spatie door niets:
  3. =REPLACE(Achternaam; " ";"")
  4. Je toont deze kolom niet (vinkje bij SHOW" weghalen), maar je gerbuikt ze wel om erop te sorteren.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan