Ga naar inhoud
  • 0

Van Sofi naar BSN... De missende '0'


Gustav

Vraag

Ik ben bezig om 2 tabellen met elkaar te vergelijken op BSN nummer. Dankzij elmystica ben ik al weer een stuk verder.

Maar nu bemerk ik het volgende probleem.

 

In Tabel 1 wordt gebruik gemaakt van 8 en 9 cijferige BSN, in Tabel 2 alleen van 9 cijferig. Ondanks veel pogingen om een goed overzicht te krijgen, lukte het maar niet.

Een kleine zoektocht op Sofi en BSN leert me dat het Sofi nummer met 8 cijfers is begonnen, en bij de omzetting naar BSN een voorloop "0" heeft gekregen.

Het heeft me een aantal uren gekost om hierop uit te komen. Als beginnende FMP gebruiker, leg ik eerst het onvermogen bij mezelf.

In het kader van frustratiereductie, het volgende:

 

Is er een manier om indien het BSN in tabel 1 8 cijfers heeft, deze automatisch een 'voorloop 0' te geven?.

Is dit iets om met veel 'if clausules, en set Field, en length aan te pakken, of is een custom functie de manier om dit op te lossen?

Bij 8 cijfers moet er een 0 voor het sofi nummer geplaatst worden, bij 9 cijfers hoeft er niets te gebeuren.

 

Heeft iemand hier een advies voor de oplossing?

Link naar reactie

8 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Je kan ofwel een berekeningsveld toevoegen aan je tabel (zo hou je je originele data) of een auto-entered berekening.

 

Je doet bijvoorbeeld zoiets:

 

Right( "0000" & Sofi; 9 )

 

Wat dit doet? Simpel, het kleeft een aantal nullen voor je veld, telt 9 karakters, beginnend aan de rechterzijde. Als je Sofi negen cijfers zou hebben, komt hij nooit aan die nullen. En anders neemt hij nummer bij zoals je nodig hebt.

Link naar reactie
  • 0
ik gebruik altijd de volgende regel:

 

wil ik met het veld een bewerking doen (zoals aantal, prijs, ...) -> numeriek

wil ik met het veld geen bewerking doen (telefoonnummer, SOFI, ... ) -> tekst

Deze redenatie kan ik volgen en gebruik ik zelf ook alleen ging het mij om de algemene opmerking dat het een tekst veld moet zijn ipv numeriek.

BSN is numeriek en als je wilt controleren of dit een geldig BSN is dan moet je een controle er op uitvoeren en dat is lastig als het een tekst veld is. Als je verder niets met dit veld van plan bent dan kan een tekst veld volstaan.

Link naar reactie
  • 0

Misschien zou je controleberekeningen op het tekstveld kunnen uitvoeren met GetAsNumber?

Anders blijf je toch weer met het probleem voorloopnullen zitten, of kun je de veldweergave van een numeriek veld ook instellen dat deze altijd x digits laat zien incl. eventuele voorloopnullen? Nog nooit geprobeerd door mij..... ik vraag het me hier even hardop af.

Link naar reactie
  • 0

Een controleberekening kan je doen met een "11-proef". Een voorbeeld kan je vinden op de site van Brian Dunning (deze is gemaakt door mijn oud-collega Hartger). Het laatste cijfer van het BSN fungeert als controle-getal voor de rest van het BSN. (dus hier is ook de vaste lengte van 9 getallen weer van belang)

 

Het BSN is geen getal, het bestaat alleen uit cijfers en is 9 karakters lang, dus het moet een gewoon tekstveld zijn dat je zal moeten filteren op 0-9 en controleren op de lengte van 9.

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...