Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 23-02-2005, 14:20
Martin
Avatar van Martin
Martin is offline
IBAN = International Bank Account Number

Ik wil met VBA een IBAN-nummer kunnen "berekenen". Op zich is dit niet zo moeilijk, want:

NL91 ABNA 0417 1643 00

NL = ISO landcode, in dit geval altijd NL
91 = controlegetal
ABNA = naamcode bank, moet altijd ABNA zijn in dit geval
0417164300 = bankrekeningnummer, is ook bekend

Als ik een ABN AMRO-bankrekeningnummer invoer moet hij automatisch dit maken:

NL** ABNA 0417 1643 00

Dat is geen probleem, maar ik moet het controlegetal uitrekenen wat op de plek van de sterretjes moet staan. Maar hoe bereken ik in godsnaam dit controlegetal? Dit kan ik namelijk helaas nergens vinden... Iemand een idee?
Met citaat reageren
Advertentie
Oud 23-02-2005, 15:42
dafelix
Avatar van dafelix
dafelix is offline
lees de JS van deze pagina uit

http://www.rietumu.com/eng.nsf/page?...256E9400268F24
__________________
$karma++;
Met citaat reageren
Oud 23-02-2005, 15:52
Verwijderd
die staat dus hier: http://www.rietumu.lv/iban2.js
Met citaat reageren
Oud 23-02-2005, 17:16
Martin
Avatar van Martin
Martin is offline
Citaat:
dafelix schreef op 23-02-2005 @ 16:42 :
lees de JS van deze pagina uit

http://www.rietumu.com/eng.nsf/page?...256E9400268F24
Heb al heel wat scripts doorgespit op Internet, maar kon eerlijk gezegd níet de functie vinden die het controlegetal maakt
Met citaat reageren
Oud 23-02-2005, 17:50
Verwijderd
zoals ik al zei, wat jij zoekt staat op http://www.rietumu.lv/iban2.js in de code van de webpagina is namelijk hetvolgende te vinden:

<script language="JavaScript1.2" src="http://www.rietumu.lv/iban2.js"></script>

src staat voor source als ik het goed heb, hiermee wordt de code in iban2.js behandeld alsof hij in de pagina staat maar op deze manier kun je heel makkelijk een ander uiterlijk plaatsen zonder lappen code te hoeven kopieren bijvoorbeeld.

ps. mocht je het daar nog niet vinden, ergens onderaan function ChecksumIBAN(iban)
Met citaat reageren
Oud 23-02-2005, 18:22
Martin
Avatar van Martin
Martin is offline
Hmm, ik probeer nu deze functions te ontleden om deze om te kunnen zetten naar VBA, maar kom er niet echt uit...

PHP-code:
function capital2digits(ch){
  var 
capitals "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  for (var 
0capitals.length; ++i)
    if (
ch == capitals.charAt(i))
      break;
  return 
10;
}

function 
mod97(digit_string){
  var 
0;
  for (var 
0digit_string.length; ++i)
    
= (10 parseInt(digit_string.charAt(i))) % 97;
  return 
m;

De eerste functie zet letters om naar cijfers, maar hoe ze dat doen is mij een raadsel, hetzelfde geldt voor de tweede function.

Hmmz, zou dit eigenlijk niet in JS-topic moeten? Hoewel ik me afvraa g of dat wel handig is aangezien het gaat om het omzetten naar VBA-code...
Met citaat reageren
Oud 24-02-2005, 12:35
Verwijderd
volgens http://www.ecbs.org/Download/EBS204_V3.2.pdf

Gebruik als voorbeeld:

NL91 ABNA 0417 1643 00

91 wil je berekenen.

je hebt ABNA (bankcode) en 0417 1643 00 (rekeningnummer) en je weet dat je in NL (Nederland) zit.

eerste stap:
maak een "kunstmatig" IBAN-nummer bestaande uit landcode + "00" + bankcode + bankrekeningnummer, dus
NL00ABNA0417164300

stap 2:
zet de eerste vier karakters naar het einde:
ABNA0417164300NL00

stap 3:
zet de letters om naar cijfers volgens de methode: A=10, B=11, C=12 ... Z=35:
101123100417164300232100

stap 4:
Bereken de modulo van dat getal met 97 en trek het resultaat daarvan af van 98. Als je dan een getal van één cijfer overhoudt, plak er dan een 0 voor.

modulo van 101123100417164300232100 met 97 = 7. Trek dat af van 98 --> 91.

Daar is je controlegetal.
Met citaat reageren
Oud 25-02-2005, 08:54
Martin
Avatar van Martin
Martin is offline
Probeer nu met VBA de modulo te berekenen met de operator Mod, maar deze geeft als foutmelding: "Overloop":

PHP-code:
Modulo 335097073232100# Mod 97 
EDIT: ^^^Er zit een bugje in de PHP-parser volgens mij

Citaat:
Overloop (Fout 6)

U krijgt een overloop als u probeert een toewijzing te maken die de grens van het toewijzingsdoel overschrijdt. Voor deze fout zijn de volgende oorzaken en oplossingen mogelijk:

Het resultaat van een toewijzing, een berekening of een gegevenstypeconversie is zo groot dat het niet kan worden weergegeven binnen het bereik van waarden die zijn toegestaan voor dat type variabele.
Wijs de waarde toe aan een variabelentype dat een groter bereik van waarden kan bevatten.

Een toewijzing aan een eigenschap is groter dan de maximale waarde die de eigenschap kan ontvangen.
Zorg dat de toewijzing binnen het bereik valt van de eigenschap waarvoor deze is bedoeld.

U probeert een getal in een berekening te gebruiken en dat getal moet een integer zijn, maar het resultaat is groter dan een integer. Bijvoorbeeld:
Dim x As Long
x = 2000 * 365 ' Error: Overflow
U kunt dit probleem omzeilen door het getal als volgt te typen:

Dim x As Long
x = CLng(2000) * 365
Selecteer voor aanvullende informatie het desbetreffende item en druk op F1 (in Windows) of op HELP (op de Macintosh).

Zoals gezegt kan dit worden veroorzaakt doordat het getal in de berekening groter is dan een integer. Ik heb het gegeven advies gevolgt, maar toch krijg ik weer de melding "Overloop". Wie heeft er een work-a-round?

Laatst gewijzigd op 25-02-2005 om 08:57.
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 12:36.