ID-bakske

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.697
Beste allemaal

We hebben hier in Belgie een identiteitskaart die we via een USB poort en een kaartlezertje, kunnen uitlezen voor een aantal, officiele, dingen (belastingsbrief invullen bvb)
Weet er iemand hoe ik dat kan uitlezen zodat gegevens rechtstreeks in een access tabel terecht komen?

Bedankt
JP
 
Hier heb je een vbtje.
Inlezen gebeurt via excel.
Hoe krijg je het werkend?
Maak een mapje aan.
Plaats daarin het excel vb bestandje, een mapje met de naam Photos en een access datase bestandje.
Daarna:
Eerst moet je twee zaken downloaden en installeren. (zie de links in tabblad help)
Nadien moet je in de VBA editor (excel) onder extra, verwijzingen EIDwrapper aanvinken.
Daarmee klaar dan kan je aan de slag met inlezen.
Nadien in access koppelen met excel.
 

Bijlagen

@gast0660: Ik heb je bestandje nog niet bekeken, maar een tussenstap met Excel lijkt mij op voorhand nogal overbodig. Als het in Excel kan, kan het veel beter in Access. Dus waarom Excel er tussen gooien?
 
Eerst zien of er uberhaupt iets gebeurt.
Er zijn meerdere draadjes over dit onderwerp, weinig met echt resultaat.
 
EID Wrapper

Alle verwijzigingen naar de EID.lib zijn onbruikbaar met de nieuwe Belgische EID's sinds maart 2014, die oude VBA code moet je dus aanpassen.
Ik gebruik de EID Wrapper van Jasper De Temmerman van github al van dan gecombineerd met Access en blijft prima werken met zowel de oude als de nieuwe EID's.
Je moet de 32 of 64 versie installeren en bij mijn weten is er nog geen andere oplossing.
Onderstaande code achter een knopje in een formulier geeft dan een messagebox met de gegevens die je vrij kan uitlezen van de nieuwe kaarten.
Er zit een vertraging van een paar seconden (of langer indien het over netwerk moet gaan).
Code:
Private Sub CmdEIDTest_Click()
On Error GoTo Err_CmdEIDTest_Click
'Uitvoerende VBA code
Dim wrapper As New EID_Wrapper.wrapper
Dim data As EID_Wrapper.CardData
    Set data = wrapper.GetCardData()
    ' Toon de EID Kaart Data in een messagebox
    MsgBox "Voornamen: " & (data.FirstNames) & vbCrLf & _
    "Naam: " & (data.Surname) & vbCrLf & _
    "Geslacht: " & (data.Gender) & vbCrLf & _
    "Geboortedatum: " & (data.BirthDate) & vbCrLf & _
    "Geboorteplaats: " & (data.BirthPlace) & vbCrLf & _
    "Straat en nummer: " & (data.StreetAndNumber) & vbCrLf & _
    "Postcode: " & (data.ZipCode) & vbCrLf & _
    "Woonplaats: " & (data.Municipality) & vbCrLf & _
    "Nationaliteit: " & (data.Nationality) & vbCrLf & _
    "Kaartnummer: " & (data.CardNumber) & vbCrLf & _
    "Chipnummer: " & (data.ChipNumber) & vbCrLf & _
    "Uitgifteplaats: " & (data.IssuingMunicipality) & vbCrLf & _
    "Beginvaliditeit: " & (data.ValidityBeginDate) & vbCrLf & _
    "Eindvaliditeit: " & (data.ValidityEndDate) & vbCrLf & _
    "Rijksregisternummer: " & (data.NationalNumber), vbInformation + vbOKOnly, "EID Kaart info"
Exit_CmdEIDTest_Click:
     Exit Sub
Err_CmdEIDTest_Click:
     Select Case Err.Number
            Case 20 'Resume zonder Error
                    Resume Next
            Case 94 'Ongeldig gebruik van Null
                 MsgBox " Geen criteria, herbegin of vul het nodige veld in", vbCritical + vbOKOnly, "Opgelet!"
                    Resume Next
            Case 3021 ' Geen huidige record
                    Resume Next
            Case 3077  'Geen criteria
                    MsgBox " Geen criteria, herbegin", vbCritical + vbOKOnly, "Opgelet!"
                    Resume Next
            Case 3167  'Record is al verwijderd
                    Resume Next
            Case 9999
                   Resume Next
            Case 999
                   Resume Exit_CmdEIDTest_Click
            Case Else
            Call LogError(Err.Number, Err.Description, "CmdEIDTest_Click()")
                Resume Exit_CmdEIDTest_Click
     End Select
End Sub

De code om de EID foto apart uit te lezen, ergens op te slaan op uw HDD en gekoppeld in een frame weer te geven in uw formulier.
Code:
Private Sub CmdFotoImport_Click()
On Error GoTo Err_CmdFotoImport_Click
Dim wrapper As New EID_Wrapper.wrapper
Dim data As EID_Wrapper.CardData
Dim filename As String
Dim strFileName As String
'Check of er een naam of voornaam is ingevuld
If (IsNull(Me.BNaam.Value)) Or (IsNull(Me.BVoornaam.Value)) Then
  MsgBox "Naam én voornaam eerst invullen"
   DoCmd.Hourglass False
   Me.BNaam.SetFocus
    Exit Sub
End If
Set data = wrapper.GetCardData()
' Check of de kaart correct is ingevoerd
If Not data.FirstCard Is Nothing Then
    data.FirstCard.SavePhoto (GetPath & "fotomap\" & Me.BNaam.Value & "_" & Me.BVoornaam.Value & "_eid.jpg")
    ImageFrame.Picture = GetPath & "fotomap\" & Me.BNaam.Value & "_" & Me.BVoornaam.Value & "_eid.jpg"
    Me.TxtEidfoto = GetPath & "\fotomap\" & Me.BNaam.Value & "_" & Me.BVoornaam.Value & "_eid.jpg"
End If
 
Exit_CmdFotoImport_Click:
    Exit Sub

Err_CmdFotoImport_Click:
    MsgBox Err.Description
    Resume Exit_CmdFotoImport_Click
End Sub
 
Compleerfout

Johan,
Ik krijg een compileerfout:
Sub of Function is niet gedefinieerd...

Enig idee?

Bedankt

JP
 

Bijlagen

  • Fout.jpg
    Fout.jpg
    125,4 KB · Weergaven: 89
Je kan die en de volgende regel wissen.
Deze worden alleen uitgevoerd als echt alles mis gaat.
 
OK, geen compileer-fout meer..
Ik krijg de vraag of access toegang mag hebben tot mijn ID-bakske
Ik klik op "ja, altijd" en that's it.. ik zie geen msgbox met data..
als ik op de knop druk, dan licht het controlelampje wel op maar verder gebeurt er niets

JP
 
Laatst bewerkt:
Die compileerfout van de call logerror is inderdaad my mistake door te snelle copie-paste, in mijn database zit er een functie die foutmeldingen wegschrijft naar een tabel en die heb je dus niet. Gewoon een ' voor de regel zetten en dan opslaan.
Waarschijnlijk heb je de EID Wrapper nog niet geïnstalleerd en/of toegevoegd bij de "verwijzingen" in je VBA editor?
 
Ik denk dat de installatie gelukt is.... als ik op een knop in mijn form klik dan krijg ik een msgbox met de vraag of access toegang krijgt tot de ID-reader.
Ik antwoord: "Altijd"
En dan gebeurt er niets... ik zou een msgbox verwachten met de uitgelezen data er in maar zie niets..
Waarom is dat en wat kan ik er aan doen?
Bedankt
JP
 
Heb je een 32bit (x86) of 64bit (x64) systeem?
Heb je ""EID Middleware" geinstalleerd? van deze site, zie http://eid.belgium.be/nl/je_eid_gebruiken/de_eid-middleware_installeren
Heb je "EID.Wrapper.Register.exe" uit "release.zip" laten lopen, om de bestanden te registreren bij windows
Zie je "EID.Wrapper" in VBE-editor-extra-verwijzingen

Zie http://www.helpmij.nl/forum/showthread.php/889505-Identiteitskaart-uitlezen-in-Excel/page2 bericht#29 en verder voor meer uitleg

Zoals eerder gezegd, bekende vraag, nooit afdoende beantwoordt
 
Laatst bewerkt:
Ik denk dat, als de voorgestelde procedure niet correct zou geweest zijn, ik ook de vraag zou krijgen waarover ik het in mijn mail had.
Als ik op de knop van de form klik flikkert ook het groene lichtje op het ID-readertje dus... dat deel is correct denk ik
JP
 
probeer dit eens
I can't read any data

The wrapper provides an EID.Wrapper.Console-utility that can be used to verify if the DLL works. This works independently from the COM-registration. If the console utility returns your data the problem can be narrowed down to the COM-registration. Please make sure your cardreader is connected and and EID-card placed into the device before attempting to use the utility.
bron: https://github.com/jdt/EID.Wrapper

P.S. ik ben nederlander en heb geen belgisch id en ook geen "bakske"
 
Laatst bewerkt:
OK, de zaken beginnen te vorderen...
Ik kan de gegevens op de identiteitskaart uitlezen en krijg een msgbox.
De fout lag bij de code van Johan:

MsgBox "Voornamen: " & (data.FirstNames) & vbCrLf & _
"Naam: " & (data.Surname) & vbCrLf & _
"Geslacht: " & (data.Gender) & vbCrLf & _
"Geboortedatum: " & (data.BirthDate) & vbCrLf & _
"Geboorteplaats: " & (data.BirthPlace) & vbCrLf & _
"Straat en nummer: " & (data.StreetAndNumber) & vbCrLf & _

Als ik hier bvb data.Surname verander in data.FirstCard.Surname) dan werkt alles zoals het hoort.
Maar,
nu worstel ik met het inlezen van de foto (en laat dat nu net, voor mij, het belangrijkste zijn)

Ik krijg een foutmelding:
Fout -2147467259 tijdens uitvoering
Er is een algemene fout opgetreden in GDI+

Op de site "GitHub" wordt hierover geschreven:

I get exceptions when saving the photo to disk (for example, GDI+ exceptions)

If you try to save the photo to an invalid location (directory does not exist, not enough permissions) you might see some odd exceptions pop up. Check this first to make sure you are not just having issues writing the file.

Hoe los ik dit op
Bedankt
iedereen...

Ben er bijna, hopelijk lukt die laatste stap nu ook nog

JP
 
@JohanRVT

Kan jij de code uit bericht#7 controleren op basis van bericht#18, en eventueel corrigeren.
Hiermee wil ik voorkomen dat in de toekomst steeds verwezen wordt naar foutieve code.
 
1. sla je bestand op, op de harde schijf en niet alleen in het geheugen
2. vervang overal
Code:
GetPath & "fotomap\"
door
Code:
ActiveWorkbook.Path & "\"

Mocht het misgaan, de foto staat in dezelfde map als het bestand.
Reden GetPath wordt nergens gevuld

De code van JohanRVT zal bij hem/haar wel werken, maar er is onvoldoende over nagedacht om het ook feilloos bij anderen te laten werken.
Heb je het bestand van gast0660 uit bericht#4 al geprobeerd, dat ziet er wat beter uit qua code.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan