Avatar billede Keld Nielsen Professor
02. januar 2000 - 16:27 Der 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

resultat =  TTTTTTTT00FFFFK
Avatar billede jonasj Nybegynder
02. januar 2000 - 21:17 #1
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...
Avatar billede Keld Nielsen Professor
06. januar 2000 - 22:42 #2
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!
Avatar billede jonasj Nybegynder
07. januar 2000 - 00:28 #3
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"....
Avatar billede fdata Forsker
03. marts 2000 - 17:53 #4
Er spørgsmålet stadig relevant, så har jeg en lille rutine.
Avatar billede Keld Nielsen Professor
04. marts 2000 - 01:39 #5
ABSOLUT !!!!!
Jeg glæder mig!
Avatar billede fdata Forsker
07. marts 2000 - 20:36 #6
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)
Avatar billede Keld Nielsen Professor
09. marts 2000 - 20:05 #7
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???
Avatar billede fdata Forsker
11. marts 2000 - 13:21 #8
Den enkle løsning er:

Private Sub Tekstinddata_AfterUpdate()
  Me.OCRlinien=Me.Tekstinddata & FI_KontrolCiffer(Me.Tekstinddata)
End Sub

(FI_KontrolCiffer ligger som en selvstændig rutine)
Avatar billede Keld Nielsen Professor
21. marts 2000 - 12:58 #9
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

Me.ocr = Me.Tekstinddata & FI_kontrol(Me.Tekstinddata)
 
End Sub

der kommer overhovedet intet frem!
Avatar billede fdata Forsker
21. marts 2000 - 18:55 #10
Du skal flytte funktionen FI_kontrol UD AF Sub Tekstinddata_AfterUpdate. Den skal ligge som en separat rutine. Altså:

Function FI_kontrol
....
End Function

Sub Tekstinddata_AfterUpdate
...
End Sub
Avatar billede Keld Nielsen Professor
21. marts 2000 - 19:39 #11
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!
Avatar billede Keld Nielsen Professor
03. april 2000 - 22:22 #12
Nogen som vi hjælpe mig ved at gå filen igennem . læs ovenstående
Avatar billede Keld Nielsen Professor
11. juni 2000 - 14:15 #13
Jeg er stadig interesseret som beskrevet ovenfor - dumt at stoppe når man er så tæt på !
Avatar billede fdata Forsker
12. juni 2000 - 20:04 #14
OK. Lad mig få en mailadresse, som jeg kan kontakte dig på.
Avatar billede Keld Nielsen Professor
12. juni 2000 - 22:22 #15
keld@photodk.com - glæder mig til at få det løst!
Avatar billede Keld Nielsen Professor
01. august 2000 - 08:38 #16
Hej fdata
Jeg glæder mig til at høre fra dig - jeg vil gerne have sluttet dette spørgsmål
Avatar billede hugopedersen Nybegynder
08. april 2002 - 07:24 #17
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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester