Springen naar inhoud


- - - - -
Solved

Foto uit EID vanuit Access bewaren in bestand

eID Access

  • Log in a.u.b. om te beantwoorden
Er zijn 23 reacties in dit onderwerp

#1 BESLO

BESLO

    Teacher

  • Teachers
  • PipPipPip
  • 190 berichten
    Laatst bezocht 14 dec 2014 12:20
  • LocatieMelsele

Geplaatst op 11 maart 2011 - 16:20


Ik schrijf momenteel een applicatie voor het beheren van de patienten van mijn vrouw.
Hierbij ga ik ook de gegevens uit de EID (en indien mogelijk, uit de SIS kaart) uitlezen en in de juiste velden op mijn formulier plaatsen (en dus daarna ook in de database).

Het uitlezen van de EID gaat zonder enig probleem. Maar ik zou ook graag de foto, die op die EID staat, uitlezen, in een image control plaatsen en bij het bewaren van mijn record deze foto naar een bestand wegschrijven (ik wil de foto niet in een tabel plaatsen omdat ik overal lees dat externe image bestanden efficienter is).

Op het web kan ik wel code vinden om afbeeldingen naar de database te sturen (wat bij een bound-control geen probleem zou mogen zijn) maar nergens vind ik code om de inhoud van een picturebox weg te schrijven naar een extern bestand.

Iemand enig idee waar ik wel bruikbare kan vinden?


Ik werk met MS-access 2007 (op PC van mijn vrouw) en 2010 (op mijn PC).


Alvast bedankt
Doe nooit aan een ander wat u niet zelf wil overkomen (Confucius)

#2 Thanatos

Thanatos

    CVU Certified Vbib User

  • Leden
  • PipPipPipPipPipPipPip
  • 1799 berichten
    Laatst bezocht 17 nov 2014 16:31

Geplaatst op 13 maart 2011 - 06:04

Ik heb hier vorig jaar ergens mee zitten prutesen, welliswaar in Java.
Hier vind je anders wel veel informatie over programmeren met de eid.
https://securehomes....ingExamples0014
Je kan zien dat het van de KUL is, en dat je verschillende interessante pagina's ziet, misschien vind je daar iets.

#3 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3470 berichten
    Laatst bezocht 19 dec 2014 23:48
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 13 maart 2011 - 20:37

Misschien ook interessant om je volledige code te posten hoe je info uit je eID kunt halen ?

Uiteraard niet verplicht maar ik denk dat andere leden dat ook wel zouden appreciëren.

Greetzzz

*** If you like youre solution or appriciate the crew's effort, please click on the facebook like or the Google +1 button ***

 

- Any fool can know, the point is to understand -


email : RedThread@vbib.be | MSN : Red_Thread@Hotmail.com

Huisregels - Tutorials - VS 2013 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


#4 pluto

pluto

    Master Developer

  • Leden
  • PipPipPipPipPip
  • 600 berichten
    Laatst bezocht gisteren, 16:44

Geplaatst op 13 maart 2011 - 22:38

dat is zeker we kunnen niet genoeg weten. Zo wachten we ook nog altijd naar het vervolg van Swets i.v.m Printerpoort.

groetjes

#5 BESLO

BESLO

    Teacher

  • Teachers
  • PipPipPip
  • 190 berichten
    Laatst bezocht 14 dec 2014 12:20
  • LocatieMelsele

Geplaatst op 16 maart 2011 - 08:47

Nu pas tijd gehad om de code uit mijn database te halen.

Visual Basic Code:
Private Sub cmdEID_Click()
   Dim EIDlib1		   As New EIDLIBCTRLLib.EIDlib
   Dim lhandle		   As Long
   Dim RetStatus		 As New EIDLIBCTRLLib.RetStatus
   Dim MapColPicture	 As New EIDLIBCTRLLib.MapCollection
   Dim MapColID		  As New EIDLIBCTRLLib.MapCollection
   Dim MapColAddress	 As New EIDLIBCTRLLib.MapCollection
   Dim CertifCheck	   As New EIDLIBCTRLLib.CertifCheck
   Dim strName		   As String
   Dim strFirstName1	 As String
   Dim strBirthPlace	 As String
   Dim strBirthDate	  As String
   Dim strGender		 As String
   Dim strNationality	As String
   Dim strNationalNumber As String
   Dim strStreet		 As String
   Dim strZipCode		As String
   Dim strMunicipality   As String
   Dim Pasfoto_Temp	  As Variant
 
   DoCmd.Hourglass True
   
   Set RetStatus = EIDlib1.Init("", 0, 0, lhandle)
   Set RetStatus = EIDlib1.GetID(MapColID, CertifCheck)
 
   strName = MapColID.GetValue("Name")
   strFirstName1 = MapColID.GetValue("FirstName1")
   strBirthDate = MapColID.GetValue("BirthDate")
   strGender = MapColID.GetValue("Gender")
   strNationalNumber = MapColID.GetValue("NationalNumber")
 
   Set RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)
 
   strStreet = MapColAddress.GetValue("Street")
   strZipCode = MapColAddress.GetValue("ZIPCode")
   strMunicipality = MapColAddress.GetValue("Municipality")

   Set RetStatus = EIDlib1.Exit
   If Me.NewRecord Then
	  Me.Naam = strName
	  Me.Voornaam = strFirstName1
	  Me.Adres = strStreet
	  Me.Woonplaats = GetZipCodeRecNo(strZipCode, strMunicipality)
	  Me.Woonplaats.Requery
	  Me.Geslacht = strGender
	  Me.Geboortedatum = CreateDate(strBirthDate)
	  Me.NationaalNummer = strNationalNumber
	  Me.Telefoon.SetFocus
   Else  ' Update record information with new info from eID
	  If Me.NationaalNummer = strNationalNumber Then
		 Me.Naam = strnaam
		 Me.Voornaam = strvoornaam
		 Me.Adres = strStreet
		 Me.Woonplaats = GetZipCodeRecNo(strZipCode, strMunicipality)
		 Me.Woonplaats.Requery
		 Me.Geslacht = strGender
		 Me.Geboortedatum = CreateDate(strBirthDate)
	  Else
		 If Me.Naam = strName And Me.Voornaam = strFirstName1 Then
			Me.Adres = strStreet
			Me.Woonplaats = GetZipCodeRecNo(strZipCode, strMunicipality)
			Me.Woonplaats.Requery
			Me.Geslacht = strGender
			Me.NationaalNummer = strNationalNumber
			Me.Geboortedatum = CreateDate(strBirthDate)
		 Else
		 DoCmd.Hourglass False
			If strName = "" Then
			   MsgBox "Geen eID kaart in lezer!" & _
					   vbCrLf & "Plaats de eID van de patient in de lezer.", vbCritical, "FOUT"
			Else
			   MsgBox "De patientenfiche en de eID kaart komen niet overeen!" & _
					   vbCrLf & "Zoek de juiste fiche die bij deze kaart hoort of maak een nieuwe fiche.", vbCritical, "FOUT"
			End If
		 End If
	  End If
   End If
   DoCmd.Hourglass False
End Sub



Met deze code kan ik perfect mijn EID inlezen (had ik lang geleden ergens op het web gevonden, maar weet niet meer waar. De link van RedThread lijkt wel ongeveer dezelfde code te geven).

Wel moet je natuurlijk de middleware van het web halen en installeren.
http://eid.belgium.be/nl/
Sinds kort werkt dit ook op Windows 7 64-bit (inclusief het uitlezen van de SIS kaart, die code heb ik echter nog niet geschreven).

Ondertussen heb ik ook kans gezien om even vlug de code te testen die ik via de link van RedThread gevonden heb (op die pagina staat onderaan een link naar een excel bestand waar goeie code in staat).

Ook dat werkt heel goed! Nu alleen nog verfijnen (o.a. wegschrijven naar een specifieke "applicatie image" folder).
Doe nooit aan een ander wat u niet zelf wil overkomen (Confucius)

#6 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3470 berichten
    Laatst bezocht 19 dec 2014 23:48
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 16 maart 2011 - 10:15

thx  :?   :?

*** If you like youre solution or appriciate the crew's effort, please click on the facebook like or the Google +1 button ***

 

- Any fool can know, the point is to understand -


email : RedThread@vbib.be | MSN : Red_Thread@Hotmail.com

Huisregels - Tutorials - VS 2013 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


#7 BESLO

BESLO

    Teacher

  • Teachers
  • PipPipPip
  • 190 berichten
    Laatst bezocht 14 dec 2014 12:20
  • LocatieMelsele

Geplaatst op 16 maart 2011 - 12:09

Ik zal later deze week de opgekuiste code nog plaatsen (inclusief alles wat met de foto te maken heeft) zodat daarna dit topic gesloten kan worden.

Nog eens bedankt RedThread!
Doe nooit aan een ander wat u niet zelf wil overkomen (Confucius)

#8 BESLO

BESLO

    Teacher

  • Teachers
  • PipPipPip
  • 190 berichten
    Laatst bezocht 14 dec 2014 12:20
  • LocatieMelsele

Geplaatst op 18 maart 2011 - 13:03

Zoals beloofd hier de volledige code.
Eerst de code om een afbeelding te bewaren
Visual Basic Code:
Option Compare Database

'---------------------------------------------------------------------------------------
' Module	: z_Convert_byte
' Author	: Charlizenne ... and some websites with necessary info
' Date	  : 19/06/2010
' Purpose   : Convert a picture in the byte format in a format to be able to save
'---------------------------------------------------------------------------------------

Type GUID
  Data1 As Long
  Data2 As Integer
  Data3 As Integer
  Data4(7) As Byte
End Type

Declare Function CreateStreamOnHGlobal Lib "ole32.dll" (ByRef hGlobal As Any, _
														ByVal fDeleteonresume As Long, _
														ByRef ppstr As Any) As Long
Declare Function OleLoadPicture Lib "olepro32.dll" (ByVal lpStream As IUnknown, _
													ByVal lSize As Long, _
													ByVal fRunMode As Long, _
													ByRef riid As GUID, _
													ByRef lplpObj As Any) As Long
Private Declare Function CLSIDFromString Lib "ole32.dll" (ByVal lpsz As Long, ByRef pclsid As GUID) As Long

Private Const SIPICTURE As String = "{7BF80980-BF32-101A-8BBB-00AA00300CAB}"

' convert a byte array containing a resource to IPicture
'---------------------------------------------------------------------------------------
' Procedure : PictureFromRes
' Author	: Charlizenne ... and some websites with necessary info
' Date	  : 19/06/2010
' Purpose   : the actual function to do the conversion
'---------------------------------------------------------------------------------------
'
Public Function PictureFromRes(ByRef b() As Byte) As IPicture
  On Error GoTo errorhandler
  
  Dim istrm As IUnknown
  Dim tGuid As GUID
  
  If Not CreateStreamOnHGlobal(b(LBound(:?), False, istrm) Then
	CLSIDFromString StrPtr(SIPICTURE), tGuid
	OleLoadPicture istrm, UBound(:? - LBound(;) + 1, False, tGuid, PictureFromRes
  End If
  
  Set istrm = Nothing
  Exit Function
errorhandler:
  Debug.Print "Could not convert to IPicture!"
End Function


Dan de code om de eID te lezen en de gegevens naar een tabel te sturen (via bound controls op mijn form).

Visual Basic Code:
Private Sub cmdEID_Click()
   Dim EIDlib1			  As New EIDLIBCTRLLib.EIDlib
   Dim lhandle			  As Long
   Dim RetStatus			As New EIDLIBCTRLLib.RetStatus
   Dim MapColPicture		As New EIDLIBCTRLLib.MapCollection
   Dim MapColID			 As New EIDLIBCTRLLib.MapCollection
   Dim MapColAddress		As New EIDLIBCTRLLib.MapCollection
   Dim CertifCheck		  As New EIDLIBCTRLLib.CertifCheck
   Dim strName			  As String
   Dim strFirstName1		As String
   Dim strBirthPlace		As String
   Dim strBirthDate		 As String
   Dim strGender			As String
   Dim strNationality	   As String
   Dim strNationalNumber	As String
   Dim strStreet			As String
   Dim strZipCode		   As String
   Dim strMunicipality	  As String
   Dim strFileName		  As String
   Dim strEIDStartValidDate As String
   Dim strEIDEndValidDate   As String
   
   Dim Pasfoto_Temp() As Byte
   
  ' Omdat het uitlezen wel even durut zet ik de cursor even op de zandloper.
  ' Ik denk er over om een mogelijkheid te zoeken om hier een progressbar in de plaats te zetten.
   DoCmd.Hourglass True
   
   Set RetStatus = EIDlib1.Init("", 0, 0, lhandle)
   Set RetStatus = EIDlib1.GetID(MapColID, CertifCheck)
 
   strName = MapColID.GetValue("Name")
   strFirstName1 = MapColID.GetValue("FirstName1")
   strBirthDate = MapColID.GetValue("BirthDate")
   strGender = MapColID.GetValue("Gender")
   strNationalNumber = MapColID.GetValue("NationalNumber")
   strEIDStartValidDate = MapColID.GetValue("BeginValidityDate")
   strEIDEndValidDate = MapColID.GetValue("EndValidityDate")
   
   Set RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)
 
   strStreet = MapColAddress.GetValue("Street")
   strZipCode = MapColAddress.GetValue("ZIPCode")
   strMunicipality = MapColAddress.GetValue("Municipality")

   'Haal eID foto op
   Set RetStatus = EIDlib1.GetPicture(MapColPicture, CertifCheck)
   Pasfoto_Temp = MapColPicture.GetValue("Picture")
   'Schrijf eID foto weg naar een bestand
   FileName = GetPath & "\Images\eID\" & strNationalNumber & ".jpg"
   SavePicture PictureFromRes(Pasfoto_Temp), FileName
   'Laad bestand in image control
   imgPhoto.Picture = FileName
 
   Set RetStatus = EIDlib1.Exit
   If Me.NewRecord Then
	  Me.Naam = strName
	  Me.Voornaam = strFirstName1
	  Me.Adres = strStreet
	  Me.Woonplaats = GetZipCodeRecNo(strZipCode, strMunicipality)
	  Me.Woonplaats.Requery
	  Me.Geslacht = strGender
	  Me.Geboortedatum = CreaDate(strBirthDate)
	  Me.NationaalNummer = strNationalNumber
	  Me.EidGeldigheid = CreaDate(strEIDEndValidDate)
	  Me.CreateDate = CreaDate(strEIDStartValidDate)
	  Me.Telefoon.SetFocus
   Else  ' Update record information with new info from eID
	  If Me.NationaalNummer = strNationalNumber Then
		 Me.Naam = strName
		 Me.Voornaam = strFirstName1
		 Me.Adres = strStreet
		 Me.Woonplaats = GetZipCodeRecNo(strZipCode, strMunicipality)
		 Me.Woonplaats.Requery
		 Me.Geslacht = strGender
		 Me.Geboortedatum = CreaDate(strBirthDate)
		 Me.EidGeldigheid = CreaDate(strEIDEndValidDate)
		 Me.CreateDate = CreaDate(strEIDStartValidDate)
	  Else
		 If Me.Naam = strName And Me.Voornaam = strFirstName1 Then
			Me.Adres = strStreet
			Me.Woonplaats = GetZipCodeRecNo(strZipCode, strMunicipality)
			Me.Woonplaats.Requery
			Me.Geslacht = strGender
			Me.NationaalNummer = strNationalNumber
			Me.Geboortedatum = CreaDate(strBirthDate)
			Me.EidGeldigheid = CreaDate(strEIDEndValidDate)
			Me.CreateDate = CreaDate(strEIDStartValidDate)
		 Else
		 DoCmd.Hourglass False
			If strName = "" Then
			   MsgBox "Geen eID kaart in lezer!" & _
					   vbCrLf & "Plaats de eID van de patient in de lezer.", vbCritical, "FOUT"
			Else
			   MsgBox "De patientenfiche en de eID kaart komen niet overeen!" & _
					   vbCrLf & "Zoek de juiste fiche die bij deze kaart hoort of maak een nieuwe fiche.", vbCritical, "FOUT"
			End If
		 End If
	  End If
   End If
   DoCmd.Hourglass False
End Sub



Omdat ik mijn bestanden op een specifieke locatie wil hebben (vertrekkende van de locatie van mijn db) heb ik ook nog die kleine routinetje nodig
Visual Basic Code:
Function GetPath()
   'Returns the path to currently opened MDB or ADP
   GetPath = CurrentProject.Path
End Function


Deze topic kan op "Solved" gezet worden.
Zo nu nog hopen dat men de interne veldnamen van de SIS kaart vrijgeeft zodat ik ook die gegevens kan uitlezen. Blijkbaar is deze info nog niet publiek beschikbaar maar enkel aan een aantal ontwikkelaars gegeven  :?
Doe nooit aan een ander wat u niet zelf wil overkomen (Confucius)

#9 Chris d

Chris d

    Starting Developer

  • Leden
  • 2 berichten
    Laatst bezocht 04 apr 2013 20:10

Geplaatst op 07 maart 2013 - 22:01

Leuk stukje vb!
Ben nieuw op dit forum en zie niet onmiddellijk hoe getoonde code eenvoudig te downloaden...

#10 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3470 berichten
    Laatst bezocht 19 dec 2014 23:48
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 08 maart 2013 - 00:25

Bericht bekijkenChris d, op 07 maart 2013 - 22:01, zei:

Ben nieuw op dit forum en zie niet onmiddellijk hoe getoonde code eenvoudig te downloaden...

Dag chris, welkom !

boven de code staat een linkje "copy to clipboard"
klik daarop en ga vervolgens naar visual studio.
daar gewoon in je form plakken (of CTRL-V)

Greeetzzz

*** If you like youre solution or appriciate the crew's effort, please click on the facebook like or the Google +1 button ***

 

- Any fool can know, the point is to understand -


email : RedThread@vbib.be | MSN : Red_Thread@Hotmail.com

Huisregels - Tutorials - VS 2013 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


#11 barremans

barremans

    Junior Developer

  • Leden
  • PipPip
  • 55 berichten
    Laatst bezocht gisteren, 18:44
  • LocatieKortrijk

Geplaatst op 06 augustus 2014 - 16:03

Hoi allen, sorry dat ik effe inpik op een oude topic,

Ik heb het bovenliggende code gebruikt welliswaar de module modDBPath aangepast.

Het volgende probleem bekom ik nu

Als er een eID uitlees waarbij de "2 de voornaam" niet bestaat heb ik een foutmelding :

"fout 5 tijdens uitvoering:
Ongeldig procedure-aanroep of ongeldig argument"

Deze lijn is highlighted:

strConvertedFirstname = Left([strFirstName1], InStr(1, [strFirstName1], " ") - 1)

vraag is nu wat er veranderd moet worden om de 2 de voornaam te verwijderen of wanneer er geen is deze ingevuld word door *

Bedankt voor de replays

Grtz Barre
Geplaatste afbeelding


Grtz Barre

#12 wim dewilde

wim dewilde

    Starting Developer

  • Leden
  • 2 berichten
    Laatst bezocht 22 sep 2014 09:39

Geplaatst op 10 september 2014 - 11:16

Hallo iedereen.

Ik ben bezig een database aan het maken die klantgegevens verwerkt, in microsoft acces. ik ben zelf géén programmeur en zit nu stilaan echt aan de grens om te moeten beginnen bijscholen om dit rond te krijgen.

Voor het gemak van de mensen die ermee werken wil ik graag een knop toevoegen die de gegevens van een identiteitskaart uitlezen. ik heb hiervoor code teruggevonden onder andere hier en op https://securehomes....ingExamples0014.

ik heb een werkend voorbeeld gevonden die excel betreft, maar daar ben ik bitterweinig mee.

Ik vroeg mij af of iemand van jullie hier een basis kan uitzetten voor mij waarbij een werkende code van een identiteitskaartlezer kan worden gebruikt...
het komt enorm ondankbaar over om dit op die manier te vragen maar anders zie ik geen optie meer om dit  in mijn database te integreren..
ik heb het werkend voorbeeld van excel upgeload, en de code voor een (schijnbaar werkende) VBA is hieronder toegevoegd.

super bedankt bij voorbaat,
Wim
code vba:
Visual Basic Code:
Sub TestEID()
'
' TestEID Macro
'
'
Dim EIDlib1 As New EIDLIBCTRLLib.EIDlib

Dim lhandle As Long

Dim RetStatus As New EIDLIBCTRLLib.RetStatus
Dim MapColPicture As New EIDLIBCTRLLib.MapCollection
Dim MapColID As New EIDLIBCTRLLib.MapCollection
Dim MapColAddress As New EIDLIBCTRLLib.MapCollection
Dim CertifCheck As New EIDLIBCTRLLib.CertifCheck

Dim strName As String
Dim strFirstName1 As String
Dim strBirthPlace As String
Dim strBirthDate As String
Dim strGender As String
Dim strNationality As String
Dim strNationalNumber As String

Dim strStreet As String
Dim strZipcode As String
Dim strMunicipality As String

Dim Pasfoto_Temp As Variant

Set RetStatus = EIDlib1.Init("", 0, 0, lhandle)

Set RetStatus = EIDlib1.GetID(MapColID, CertifCheck)

strName = MapColID.GetValue("Name")
strFirstName1 = MapColID.GetValue("FirstName1")
strBirthDate = MapColID.GetValue("BirthDate")
strBirthPlace = MapColID.GetValue("BirthPlace")
strGender = MapColID.GetValue("Gender")
strNationality = MapColID.GetValue("Nationality")
strNationalNumber = MapColID.GetValue("NationalNumber")

Set RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)

strStreet = MapColAddress.GetValue("Street")
strZipcode = MapColAddress.GetValue("ZIPCode")
strMunicipality = MapColAddress.GetValue("Municipality")

Set RetStatus = EIDlib1.GetPicture(MapColPicture, CertifCheck)
Pasfoto_Temp = MapColPicture.GetValue("Picture")

Set RetStatus = EIDlib1.Exit

MsgBox strName & ", " & strFirstName1 & vbCrLf & _
					  strStreet & vbCrLf & _
					  strZipcode & "		" & strMunicipality & vbCrLf,
vbOKOnly
End Sub

Bijgevoegde Bestanden


Veranderd door ArComAr, 10 september 2014 - 14:48.
Code Tags toegevoegd


#13 barremans

barremans

    Junior Developer

  • Leden
  • PipPip
  • 55 berichten
    Laatst bezocht gisteren, 18:44
  • LocatieKortrijk

Geplaatst op 10 september 2014 - 12:10

Ik heb een werkende versie staan voor access op mijn werk, maar ben voorlopig ziek thuis.  Deze kan ik pas Maandag posten.

Maar kijk alvast eens hier eens http://www.helpmij.n...-uitlezen-(Beid)

Grtz Barre
Geplaatste afbeelding


Grtz Barre

#14 wim dewilde

wim dewilde

    Starting Developer

  • Leden
  • 2 berichten
    Laatst bezocht 22 sep 2014 09:39

Geplaatst op 11 september 2014 - 18:42

Dag Iedereen, na veel vergelijken en zoeken heb ik nog steeds niet gevonden wat ik verkeerd doe. indien jullie eens zouden kunnen kijken zou dat heel erg tof zijn!

Barre, superhard bedankt voor je voorbeeld. ik weet nu dat dit kan, ik weet alleen nog niet hoe het moet...

Bijgevoegde Bestanden



#15 barremans

barremans

    Junior Developer

  • Leden
  • PipPip
  • 55 berichten
    Laatst bezocht gisteren, 18:44
  • LocatieKortrijk

Geplaatst op 11 september 2014 - 20:09

Geduld, maandag eerste werk is mijn werkende access form posten.
Geplaatste afbeelding


Grtz Barre

#16 barremans

barremans

    Junior Developer

  • Leden
  • PipPip
  • 55 berichten
    Laatst bezocht gisteren, 18:44
  • LocatieKortrijk

Geplaatst op 15 september 2014 - 10:08

Hierbij mijn acces bestanden, de eerste is de originele (met dank aan poster).
De tweed is een aangepaste maar nog niet helemaal afgewerkt.
Hopelijk ben hiermee alvast iets.
Grtz Barre

Bijgevoegde Bestanden


Geplaatste afbeelding


Grtz Barre

#17 gerpat

gerpat

    Starting Developer

  • Leden
  • 1 berichten
    Laatst bezocht 18 sep 2014 00:03

Geplaatst op 17 september 2014 - 23:34

Dag iedereen,

Barre, Is deze versie compatibel met de nieuwe eID (vanaf maart 2014)?

Gerpat

#18 barremans

barremans

    Junior Developer

  • Leden
  • PipPip
  • 55 berichten
    Laatst bezocht gisteren, 18:44
  • LocatieKortrijk

Geplaatst op 18 september 2014 - 07:28

inderdaad deze is compatible, laat later maar eens weten hoe je project gaat.

grtz Barre
Geplaatste afbeelding


Grtz Barre

#19 Bevernage

Bevernage

    Starting Developer

  • Leden
  • 2 berichten
    Laatst bezocht 22 sep 2014 10:00

Geplaatst op 18 september 2014 - 08:33

Werkt dit ook in acces 2007, heeft foutmelding fout 76, kan pad niet vinden.

graag een beetje hulp
Bevernage

#20 barremans

barremans

    Junior Developer

  • Leden
  • PipPip
  • 55 berichten
    Laatst bezocht gisteren, 18:44
  • LocatieKortrijk

Geplaatst op 18 september 2014 - 09:06

@Bevernage het juiste pad  moet je aanpassen naar uw path.

Deze kan je vinden onder modules "modDBPath" zie hieronder

Visual Basic Code:
Function GetPath()
   'Returns the path to currently opened MDB or ADP
	GetPath = "C:\Users\garage\Documents\documenten garage\access\"   '<======= DEZE VERANDEREN !!!!!!!!!

   'GetPath = CurrentProject.Path
End Function


Geplaatste afbeelding


Grtz Barre

#21 Bevernage

Bevernage

    Starting Developer

  • Leden
  • 2 berichten
    Laatst bezocht 22 sep 2014 10:00

Geplaatst op 18 september 2014 - 09:17

@barremans

Heb het pad aangepast, naar waar de .accdb staat.

Krijg volgende fout,

SavePicture PictureFromRes(Pasfoto_Temp), FileName

Dank,

#22 DidierV

DidierV

    Starting Developer

  • Leden
  • 2 berichten
    Laatst bezocht 23 okt 2014 21:17

Geplaatst op 23 oktober 2014 - 20:06

@Bevernage

Heb je een "fotomap" staan in die drive? en je hebt eigenlijk ook een blanco jpg nodig 0geenfoto.jpg nodig die in die fotomap staat.

#23 DidierV

DidierV

    Starting Developer

  • Leden
  • 2 berichten
    Laatst bezocht 23 okt 2014 21:17

Geplaatst op 23 oktober 2014 - 20:40

Ik had een oude versie (pré 2014) die mooi werkte mits enkele aanpassingen qua diacriet en nog de indeling van velden etc., en vandaag had ik iemand met een nieuwe pas, en leest hij die nieuwe pas niet uit.
Echter als ik de code bekijk zie ik geen verschillen, buiten dat ik dus meer aanpassingen heb voor het diacriet zie ik geen verschil, of zoek ik het mss op de verkeerde plek?
Een copy van mijn DB is helaas niet mogelijk te maken.
Hier heb ik alvast de code die onder de knop zit.

Visual Basic Code:
Private Sub cmdEID_Click()
On Error Resume Next
Dim EIDlib1			  As New EIDLIBCTRLLib.EIDlib
   Dim lhandle			  As Long
   Dim RetStatus			As New EIDLIBCTRLLib.RetStatus
   Dim MapColPicture		As New EIDLIBCTRLLib.MapCollection
   Dim MapColID			 As New EIDLIBCTRLLib.MapCollection
   Dim MapColAddress		As New EIDLIBCTRLLib.MapCollection
   Dim CertifCheck		  As New EIDLIBCTRLLib.CertifCheck

   'BEID Persoons Info
   Dim strName			  As String
   Dim strFirstName1		As String
   Dim strBirthPlace		As String
   Dim strConvertedFirstname As String
   Dim strConvertedBirthDate As String
   Dim strConvertedSecondFirstname As String
   Dim strBirthDate As String
   Dim strGender			As String
   Dim strNationality	   As String
   Dim strNationalNumber	As String
   Dim strConvertedBegVal As String
   Dim strConvertedEndVal As String
   Dim MyPath As String
			MyPath = "S:\Muziekdepartement\fotomap\"
   'BEID Adres Info
   Dim strStreet			As String
   Dim strZipCode		   As String
   Dim strMunicipality	  As String

   'BEID_ Kaart Info
   Dim strCardNumber As String
   Dim strChipNumber As String
   Dim strBegValDag, strBegVal, strBegValMaand As Object
   Dim strBegValJaar As String
   Dim strEndValDag, strEndVal, strEndValMaand As Object
   Dim strIssuingMunicipality As String
   'Dim strBegVal As String
   'Dim strEndVal   As String

   'BEID_ Kaart Info
   Dim strDate As String, dteConvertedDate As Date

   'BEID pasfoto Info
   Dim Pasfoto_Temp() As Byte
   Dim FileName, strFilename		  As String
   Dim iPos				  As Integer
   Dim iPos2				 As Integer
   'BEID Adres Info
   Dim notexists, Exists, strConvertedStreet, strConvertedStreetNew, strconvertedgender		   As String


   Dim LResult As String
   Dim dtDatum As Date
   Dim iDatum As Long

  ' Omdat het uitlezen wel even kan duren cursor even op de zandloper zetten.
  ' Misschien is er een mogelijkheid te zoeken om hier een progressbar in de plaats te zetten.
DoCmd.Hourglass True

   Set RetStatus = EIDlib1.Init("", 0, 0, lhandle)
   Set RetStatus = EIDlib1.GetID(MapColID, CertifCheck)
If Not (RetStatus.GetGeneral = 0) Then
		MsgBox "Geen EId kaart ingevoegd; steek een Identiteitskaart in de kaartlezer"
		DoCmd.Hourglass False
		Exit Sub
Else
   strName = MapColID.GetValue("Name")

   strFirstName1 = MapColID.GetValue("FirstName1")
   'MsgBox strName & " " & strconvertedFirstName
   If IsNull(InStr(1, [strFirstName1])) Or InStr(1, [strFirstName1]) = 0 Then
   Else
   strConvertedFirstname = Left([strFirstName1], InStr(1, [strFirstName1], " ") - 1)
   End If

   strConvertedFirstname = Left([strFirstName1], InStr(1, [strFirstName1], " ") - 1)
   strConvertedSecondFirstname = Right([strFirstName1], Len([strFirstName1]) - InStrRev([strFirstName1], " "))

   strBirthPlace = MapColID.GetValue("BirthPlace")
   strBirthDate = MapColID.GetValue("BirthDate")
   strConvertedBirthDate = CDate(Mid$(strBirthDate, 5, 2) & "/" & Right$(strBirthDate, 2) & "/" & Left$(strBirthDate, 4))
   strGender = MapColID.GetValue("Gender")
   If Not Exists = InStr(strGender, "M") = 0 Then
			strconvertedgender = MapColID.GetValue("Gender")
		End If
		If Exists = InStr(strGender, "M") <> 0 Then
			strconvertedgender = "V"
		End If

   strNationality = MapColID.GetValue("Nationality")
   strNationalNumber = MapColID.GetValue("NationalNumber")
   MsgBox strNationalNumber
   Set RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)

   strStreet = MapColAddress.GetValue("Street")
' google maps werkt niet goed met een straatnaam met gemeenteafkorting tussen haakjes in
' indien het zo op de EID staat geeft dit de straat weer zonder dat er haakjes in staan met de deelgemeente
	If notexists = InStr(strStreet, "(") = 0 Or InStr(strStreet, ")") = 0 Then
			strConvertedStreet = MapColAddress.GetValue("Street")
	End If

	If Exists = InStr(strStreet, "(") <> 0 Or InStr(strStreet, ")") <> 0 Then
				iPos = InStr(strStreet, "(")
				iPos2 = InStr(strStreet, ")")
				If iPos > 0 Then
					strConvertedStreet = Left$(strStreet, iPos - 1) & "" & Mid$(strStreet, iPos2 + 1)
				 End If
	End If




   strZipCode = MapColAddress.GetValue("ZIPCode")
   strMunicipality = MapColAddress.GetValue("Municipality")

   strCardNumber = MapColID.GetValue("CardNumber")
   strChipNumber = MapColID.GetValue("ChipNumber")
   strIssuingMunicipality = MapColID.GetValue("IssuingMunicipality")
   strBegVal = MapColID.GetValue("BeginValidityDate")
   'strConvertedBegVal = CDate(Mid$(strBegVal, 5, 2) & "/" & Right$(strBegVal, 2) & "/" & Left$(strBegVal, 4))
   strConvertedBegVal = CDate(Right$(strBegVal, 2) & "/" & Mid$(strBegVal, 5, 2) & "/" & Left$(strBegVal, 4))
   strEndVal = MapColID.GetValue("EndValidityDate")
   'strConvertedEndVal = CDate(Mid$(strEndVal, 5, 2) & "/" & Right$(strEndVal, 2) & "/" & Left$(strEndVal, 4))
   strConvertedEndVal = CDate(Right$(strEndVal, 2) & "/" & Mid$(strEndVal, 5, 2) & "/" & Left$(strEndVal, 4))

   'Haal eID foto op
   Set RetStatus = EIDlib1.GetPicture(MapColPicture, CertifCheck)
   Pasfoto_Temp = MapColPicture.GetValue("Picture")
   'Schrijf eID foto weg naar een bestand
   strFilename = MyPath & strName & strConvertedFirstname & strConvertedSecondFirstname & "_eid.jpg"
   SavePicture PictureFromRes(Pasfoto_Temp), strFilename
   'Laad bestand in image control
   ImageFrame.Picture = MyPath & strName & strConvertedFirstname & strConvertedSecondFirstname & "_eid.jpg"

   Set RetStatus = EIDlib1.Exit
   'BIJ NIEUW RECORD
   If Me.NewRecord Then
	  'Me.TxtNaam_voornaam = strName & " " & strFirstName1
	  Me.Achternaam = Replace(Replace(Replace(Replace(strName, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç")
	  'Me.Voornaam = strFirstName1
	  Me.Voornaam = Replace(Replace(Replace(Replace(strConvertedFirstname, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç")
	  Me.devoornaam = Replace(Replace(Replace(Replace(strConvertedSecondFirstname, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç")
	  Me.Geboorteplaats = strBirthPlace
	  Me.Geboortedatum = strConvertedBirthDate
	  Me.Geslacht = strGender
	  Me.Nationaliteit = strNationality
	  Me.Rijksregisternummer = strNationalNumber
	  Me.Huisadresstraat = strStreet
	  Me.Huisadrespostcode = strZipCode
	  Me.Huisadresplaats = strMunicipality
	  Me.Huisadresplaats.Requery
	  Me.Identiteitskaartnr = strCardNumber
	  'Me.Chipnummer = strChipNumber
	  Me.Uitreikingsplaats = strIssuingMunicipality
	  Me.Geldigvan = strConvertedBegVal
	  Me.Geldigtot = strConvertedEndVal
	  'MsgBox strFileName ' GetPath & "\fotomap\" & strName & "" & strConvertedSecondFirstname & "_eid.jpg"
	  Me.Eidfoto = MyPath & strName & strConvertedFirstname & strConvertedSecondFirstname & "_eid.jpg"

   Else  ' Update record information with new info from eID
   MsgBox strName & " " & Replace(Replace(Replace(Replace(strConvertedFirstname, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç")
	  If Me.Achternaam = strName And Me.Voornaam = Replace(Replace(Replace(Replace(strConvertedFirstname, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç") Then
			If IsNull(Me.Rijksregisternummer) Or Me.Rijksregisternummer <> strNationalNumber Then MsgBox "Deze identiteitsfiche beschikt niet over een correct rijksregisternummmer, bent u zeker dat het zich over de juiste persoon handelt?", vbOKCancel
			DoCmd.Hourglass False
		 'Me.Naam_voornaam = strName & " " & strFirstName1
		 Me.Achternaam = Replace(Replace(Replace(Replace(strName, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç")
		 If strConvertedSecondFirstname = "" Or Replace(Replace(Replace(Replace(strConvertedSecondFirstname, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç") <> Replace(Replace(Replace(Replace(strConvertedFirstname, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç") Then
		 Me.devoornaam = ""
		 Else
		 Me.devoornaam = Replace(Replace(Replace(Replace(strConvertedSecondFirstname, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç")
		 End If

		 If strConvertedFirstname = "" Then
		 Me.Voornaam = strFirstName1
		 Else
		 Me.Voornaam = Replace(Replace(Replace(Replace(strConvertedFirstname, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç")
		 End If

		 Me.Achternaam = Replace(Replace(Replace(Replace(strName, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç")
	  'Me.Voornaam = strFirstName1
	  Me.Voornaam = Replace(Replace(Replace(Replace(strConvertedFirstname, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç")
	  Me.devoornaam = Replace(Replace(Replace(Replace(strConvertedSecondFirstname, "ë", "ë"), "é", "é"), "è", "è"), "ç", "ç")



		 Me.Geboorteplaats = strBirthPlace
		 Me.Geboortedatum = strConvertedBirthDate
		 Me.Geslacht = strGender
		 Me.Nationaliteit = strNationality
		 Me.Rijksregisternummer = strNationalNumber
		 Me.Huisadresstraat = strStreet
		 Me.Huisadrespostcode = strZipCode
		 Me.Huisadresplaats = strMunicipality
		 Me.Huisadresplaats.Requery
		 Me.Identiteitskaartnr = strCardNumber
		' Me.Chipnummer = strChipNumber
		 Me.Uitreikingsplaats = strIssuingMunicipality
		 Me.Geldigvan = strConvertedBegVal
		 Me.Geldigtot = strConvertedEndVal
		'MsgBox strFileName ' GetPath & "\fotomap\" & strName & "" & strConvertedSecondFirstname & "_eid.jpg"
	  'Me.Eidfoto = GetPath & "\fotomap\" & strName & "" & strConvertedFirstname & "_eid.jpg"

			Me.Eidfoto = MyPath & strName & strConvertedFirstname & strConvertedSecondFirstname & "_eid.jpg"
	  Else
		 If Me.Achternaam = strName And Me.Voornaam = strFirstName1 Then
			Me.Geboorteplaats = strBirthPlace
			Me.Geboortedatum = strConvertedBirthDate
			Me.Geslacht = strGender
			Me.Nationaliteit = strNationality
			Me.Rijksregisternummer = strNationalNumber
			Me.Huisadresstraat = strStreet
			Me.Huisadrespostcode = strZipCode
			Me.Huisadresplaats = strMunicipality
			Me.Huisadresplaats.Requery
			Me.Identiteitskaartnr = strCardNumber
		   ' Me.Chipnummer = strChipNumber
			Me.Uitreikingsplaats = strIssuingMunicipality
			Me.Geldigvan = strConvertedBegVal
			Me.Geldigtot = strConvertedEndVal
			Me.Eidfoto = MyPath & strName & strConvertedFirstname & strConvertedSecondFirstname & "_eid.jpg"
		 Else
		 DoCmd.Hourglass False
			If strName = "" Then
			   MsgBox "Geen eID kaart in lezer!" & _
					   vbCrLf & "Plaats de eID van de bewoner in de lezer.", vbCritical, "FOUT"
					   DoCmd.Hourglass False
			Else
			   MsgBox "De identiteitsfiche en de eID kaart komen niet overeen!" & _
					   vbCrLf & "Zoek de juiste fiche die bij deze kaart hoort of maak een nieuwe fiche.", vbCritical, "FOUT"
					   DoCmd.Hourglass False
			End If
		 End If
	  End If
   End If
End If
   Me.Nationaliteit = StrConv(Me.Nationaliteit, vbProperCase)
   'DoCmd.Hourglass False
End

Exit_cmdEID_Click:
	Exit Sub
End Sub




Function VervangDiacriet(sWaarde As String) As String
Dim iLen As Integer, i As Integer
Dim sLetter As String, sTmp As String
iLen = Len(sWaarde)
For i = 1 To iLen
	sLetter = Mid(sWaarde, i, 1)
	Select Case sLetter
		Case "ë", "Á«", "«", "ë", "Ä«", "Å«", "Æ«"
			sTmp = sTmp & "é"
		Case "À", "Á", "Â", "Ã", "Ä", "Å", "Æ"
			'sTmp = sTmp & "A"
		Case "à", "á", "â", "ã", "ä", "å", "æ"
			'sTmp = sTmp & "a"
		Case "Ç"
			'sTmp = sTmp & "C"
		Case "ç"
			'sTmp = sTmp & "c"
		Case "È", "É", "Ê", "Ë"
			'sTmp = sTmp & "E"
		Case "è", "é", "ê", "ë"
			'sTmp = sTmp & "e"
		Case "Ñ"
			'sTmp = sTmp & "N"
		Case "ñ"
			'sTmp = sTmp & "n"
		Case "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Œ"
			'sTmp = sTmp & "O"
		Case "ò", "ó", "ô", "õ", "ö", "ø", "œ"
			'sTmp = sTmp & "o"
		Case "Š"
			'sTmp = sTmp & "S"
		Case "š"
			'sTmp = sTmp & "s"
		Case "Ù", "Ú", "Û", "Ü"
			'sTmp = sTmp & "U"
		Case "ù", "ú", "û", "ü"
			'sTmp = sTmp & "u"
		Case "Ý", ""
			'sTmp = sTmp & "Y"
		Case "ÿ"
			sTmp = sTmp & "y"
		Case Else
			sTmp = sTmp & sLetter
	End Select
	VervangDiacriet = sTmp
Next

End Function


de modules zijn dezelfde.

Wie kan me hierin verderhelpen?

Veranderd door ArComAr, 24 oktober 2014 - 14:13.
VB-Tags


#24 devuyst

devuyst

    Starting Developer

  • Leden
  • 1 berichten
    Laatst bezocht 08 nov 2014 18:33

Geplaatst op 01 november 2014 - 15:21

Hallo,

Ik gebruik enkel XLS (geen Access). Wanneer ik de macro uit "werkend voorbeeld eid" hieronder gebruik krijg ik een fout

Run Time error "13" type mismatch

op lijn

Pasfoto_Temp = MapColPicture.GetValue("Picture")

Een hint voor wat ik kan doen om dit te laten werken ?

Bericht bekijkenwim dewilde, op 10 september 2014 - 11:16, zei:

Hallo iedereen.

Ik ben bezig een database aan het maken die klantgegevens verwerkt, in microsoft acces. ik ben zelf géén programmeur en zit nu stilaan echt aan de grens om te moeten beginnen bijscholen om dit rond te krijgen.

Voor het gemak van de mensen die ermee werken wil ik graag een knop toevoegen die de gegevens van een identiteitskaart uitlezen. ik heb hiervoor code teruggevonden onder andere hier en op https://securehomes....ingExamples0014.

ik heb een werkend voorbeeld gevonden die excel betreft, maar daar ben ik bitterweinig mee.

Ik vroeg mij af of iemand van jullie hier een basis kan uitzetten voor mij waarbij een werkende code van een identiteitskaartlezer kan worden gebruikt...
het komt enorm ondankbaar over om dit op die manier te vragen maar anders zie ik geen optie meer om dit  in mijn database te integreren..
ik heb het werkend voorbeeld van excel upgeload, en de code voor een (schijnbaar werkende) VBA is hieronder toegevoegd.

super bedankt bij voorbaat,
Wim
code vba:
Visual Basic Code:
Sub TestEID()
'
' TestEID Macro
'
'
Dim EIDlib1 As New EIDLIBCTRLLib.EIDlib

Dim lhandle As Long

Dim RetStatus As New EIDLIBCTRLLib.RetStatus
Dim MapColPicture As New EIDLIBCTRLLib.MapCollection
Dim MapColID As New EIDLIBCTRLLib.MapCollection
Dim MapColAddress As New EIDLIBCTRLLib.MapCollection
Dim CertifCheck As New EIDLIBCTRLLib.CertifCheck

Dim strName As String
Dim strFirstName1 As String
Dim strBirthPlace As String
Dim strBirthDate As String
Dim strGender As String
Dim strNationality As String
Dim strNationalNumber As String

Dim strStreet As String
Dim strZipcode As String
Dim strMunicipality As String

Dim Pasfoto_Temp As Variant

Set RetStatus = EIDlib1.Init("", 0, 0, lhandle)

Set RetStatus = EIDlib1.GetID(MapColID, CertifCheck)

strName = MapColID.GetValue("Name")
strFirstName1 = MapColID.GetValue("FirstName1")
strBirthDate = MapColID.GetValue("BirthDate")
strBirthPlace = MapColID.GetValue("BirthPlace")
strGender = MapColID.GetValue("Gender")
strNationality = MapColID.GetValue("Nationality")
strNationalNumber = MapColID.GetValue("NationalNumber")

Set RetStatus = EIDlib1.GetAddress(MapColAddress, CertifCheck)

strStreet = MapColAddress.GetValue("Street")
strZipcode = MapColAddress.GetValue("ZIPCode")
strMunicipality = MapColAddress.GetValue("Municipality")

Set RetStatus = EIDlib1.GetPicture(MapColPicture, CertifCheck)
Pasfoto_Temp = MapColPicture.GetValue("Picture")

Set RetStatus = EIDlib1.Exit

MsgBox strName & ", " & strFirstName1 & vbCrLf & _
					 strStreet & vbCrLf & _
					 strZipcode & "		" & strMunicipality & vbCrLf,
vbOKOnly
End Sub







Ook met taq Solved, eID, Access voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[Solved] Untitled 1

Met dank aan PascalBianca die tot op heden alles bijhoud sinds anno dec 2010)
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
vbib.be - vbnet.be - vbdotnet.be - visualbasic.be