02. januar 2000 - 16:27Der er
16 kommentarer og 1 løsning
OCR-linie til FI-kort
Er der nogen som kender formlen til MSAccess for beregning af OCR-linien på et FI-kort (bankernes indbetlingskort), selve resultatet er på 15 tegn og sidst tegn er kontrolcifferet (modus 10).
Jeg ønsker at kundens telefonnummer står først derefter to ”0”-er, fakturanummeret (4 ciffer) og slut med kontrolciffer: som flg.:
T = Telefonnummer 0 = O (mellemrum) F = Fakturanummer K = kontrolciffer
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Kan den ikke i hovedet, men det er en Modulus 10, med vægttallene 1&2 eller 1&3. Checkcifferet for 1 er 8. Evt. ring til PBS - de vil hjertens gerne sende dig en CD-ROM fuld af PDF-filer, som beskriver det hele så ganske glimrende. Der er jo også et regelsæt for hvor og hvordan ocr-linien skal placeres...
Jeg ved godt det er modlus 10, det skrev jeg faktisk i spørgsmålet - jeg har også lavet det i andre programmer, men er ikke så meget "hjemme" i access, derfor spørgsmålet!
Modlus!?!? Så må du på apoteket!!! Undskyld! Jeg troede at det var fordi du ikke havde styr på udregningen. Det vildledte mig jo nok en anelse af du skrev "modus"....
Værsgo. Her er lidt til aftenkaffen: Inddata: Streng bestående af 14 cifre Uddata : Kontrolcifferet -------------------------------------- Function FI_KontrolCiffer(s As String) As Byte Dim i As Byte, j As Byte, sum As Integer sum = 0 For i = 1 To 14 j = Mid(s, i, 1) * (2 - (i Mod 2)) If j > 9 Then j = (j Mod 10) + 1 sum = sum + j Next i sum = sum Mod 10 FI_KontrolCiffer = 10 - sum If FI_KontrolCiffer = 10 Then FI_KontrolCiffer = 0 End Function -------------------------------------- Happy programming :o)
Det virker ikke rigtig! Jeg har lavet det som flg.: ------------------------------- Private Sub Tekstinddata_AfterUpdate()
Function FI_kontrol(s As String) As Byte Dim i As Byte, j As Byte, sum As Integer s = Me!Tekstinddata sum = 0 For i = 1 To 14 j = Mid(s, i, 1) * (2 - (i Mod 2)) If j > 9 Then j = (j Mod 10) + 1 sum = sum + j Next i sum = sum Mod 10 FI_kontrol = 10 - sum If FI_kontrol = 10 Then FI_kontrol = 0 Me!kontrol = FI_kontrol End Function -------------------------------- Hvor "Tekstinddata" er en streng på 14 cifre, og hvor "kontrol" er sat til byte, - hvor har jeg misset noget???
Jeg har forsøgt og forsøgt, men må indrømme min evner ikke slår til!! Flg. har jeg tastet ind i feltet "tekstinddata":
Private Sub Tekstinddata_AfterUpdate()
Function FI_kontrol(s As String) As Byte Dim i As Byte, j As Byte, sum As Integer sum = 0 For i = 1 To 14 j = Mid(s, i, 1) * (2 - (i Mod 2)) If j > 9 Then j = (j Mod 10) + 1 sum = sum + j Next i sum = sum Mod 10 FI_kontrol = 10 - sum If FI_kontrol = 10 Then FI_kontrol = 0 End Function
Hej fdata! Kender du det at når først man får startet dårligt på noget, ja så er den svær at bringe på plads igen.
Kan jeg for et par hundrede point få dig til at gå rutinen igennem, det er kun selve rutinen omkring OCR - 176 Kb -jeg vil med andre ord gerne sende den til dig, så du kan afluse min(e) fejl!
Er der kommet en løsning på dette ? Jeg roder med noget for tiden i Access med nogle GIRO kort og mangler en fungerende modulus 10 og en modulus 97-10 rutine.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.