#2 - Det har ikke rigtig noget med koden til FI kort at gøre, de 2 henvisninger du linker til. Det er kun en skabelon til, hvordan man håndterer selve opstillingen af FI feltet ;-)
Koden til beregning af kontrolciffer kan ses i link i #2 på side 11 alt efter om det er kortart 71 eller 75 du ønsker. #3 hvis det ikke er dette du ønsker må du være lidt mere specifik ;-)
Her er to funktioner du kan indsætte. Den ene kan genere et checkciffer og den anden kan kontrollere et.
Funktionen CheckCiffer(BetalingsID, KortArt): Hvis nummeret er 00000073995094 vil funktionen =Checkciffer("00000073995094";71) give checkciffer 7 som skal sættes på bagerst
Funktionen IsCheckCifferOK(BetalingsID As String, KortArt) : hvis nummeret 000000739950947 er givet vil funktionen =ercheckcifferok("000000739950947"; 71) give resultatet Sandt.
Public Function IsCheckCifferOK(BetalingsID As String, KortArt) As Boolean Dim vTemp As Variant On Error GoTo GetOut vTemp = CheckCiffer(Left(BetalingsID, Len(BetalingsID) - 1), KortArt) If vTemp = CInt(Right(BetalingsID, 1)) Then IsCheckCifferOK = True Else GoTo GetOut Exit Function GetOut: IsCheckCifferOK = False End Function
Function CheckCiffer(BetalingsID, KortArt) As Variant Dim Chksum As Long Dim lTempSum As Long Dim x As Long Dim lNumLen As Long Dim lMin As Long Dim lMax As Long Dim bStart As Boolean
Select Case KortArt Case "01", "73": GoTo Fejl Case "04", "15": lMin = 12: lMax = 15 Case "71": lMin = 14: lMax = lMin Case "75": lMin = 15: lMax = lMin Case " ", """ """ If Left(BetalingsID, 1) Like "[2,4,8]" And Len(BetalingsID) = 18 Then lMin = 18 lMax = lMin Else GoTo Fejl End If Case Else: GoTo Fejl End Select
If Len(BetalingsID) < lMin Or Len(BetalingsID) > lMax Then GoTo Fejl lNumLen = Len(BetalingsID) Chksum = 0 bStart = False For x = lNumLen To 1 Step -1 lTempSum = CInt(Mid(BetalingsID, x, 1)) * (bStart + 2) bStart = Not bStart If lTempSum > 9 Then lTempSum = CInt(Left(lTempSum, 1)) + CInt(Mid(lTempSum, 2, 1)) Chksum = Chksum + lTempSum Next Chksum = Chksum Mod 10 If Chksum <> 0 Then Chksum = 10 - Chksum CheckCiffer = Chksum Exit Function Fejl: CheckCiffer = CVErr(xlErrValue) End Function
#10 - Det ser ikke ud til, at nogen af indlæggene har været noget brugbart, selvom der liggger brugbare svar ;-) Det var bedre, at spørgeren sørgede for at følge op på sit spørgsmål, og så fik lukket det igen. Så var der ikke personer herinde, som spildte tid på at forsøge at hjælpe, vedkommende!
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.