{"id":55000419,"date":"2006-12-01T00:00:00","date_gmt":"2021-02-11T21:07:06","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=419"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Dokumente_scannen_mit_WIA","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/","title":{"rendered":"Dokumente scannen mit WIA"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg09.met.vgwort.de\/na\/e991013d616b48f9b7ced8c3ea589e2f\" width=\"1\" height=\"1\" alt=\"\">        <\/p>\n<p><b>Da einige Zeitgenossen immer noch an das papierlose B&uuml;ro glauben, will Access im Unternehmen zumindest einen kleinen Teil zu diesem Traum beitragen. Dazu liefern wir Ihnen Know-how rund um das Scannen von Dokumenten per VBA &#8211; nat&uuml;rlich mit automatischer Konvertierung in den gew&uuml;nschten Dateityp und Speicherung der Datei am von Ihnen vorgegebenen Ort.<\/b><\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Voraussetzungen<\/p>\n<p>Das Scannen von Dokumenten und das Handling der so entstehenden Dateien erfolgt unter modernen Betriebssystemen (Windows XP SP1 und h&ouml;her) mit der kostenlosen<b> Windows Image Acquisition Automation Library v2.0 <\/b>(<b>WIA<\/b>), die Sie unter [1] herunterladen k&ouml;nnen. <\/p>\n<p>Diese Bibliothek setzt einen modernen Scanner mit WIA-Schnittstelle voraus. Informationen zu entsprechenden Techniken f&uuml;r &auml;ltere Betriebssysteme und Scanner finden Sie im Kasten <b>Scannen mit &auml;lteren Betriebssystemen<\/b>. Die WIA-Bibliothek offeriert noch weitere M&ouml;glichkeiten wie etwa das Einlesen von Bildern einer Digitalkamera. Dieser Beitrag beschr&auml;nkt sich jedoch auf die Steuerung von Scannern.Nach dem Herunterladen m&uuml;ssen Sie die im Paket enthaltene DLL mit dem Befehl<b> Regsvr32 &lt;Dateiname&gt; <\/b>registrieren. F&uuml;r den Einsatz in VBA richten Sie au&szlig;erdem einen passenden Verweis auf diese Bibliothek ein (siehe Bild 1).<\/p>\n<p>            <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2006_06\/ScannenMitAccess-web-images\/pic001_opt.jpeg\" alt=\"pic001.tif\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Das Steuern eines Scanners per VBA erfordert einen Verweis auf die WIA-Bibliothek.<\/span><\/b><\/p>\n<p><b>Scannen auf die Schnelle<\/b><\/p>\n<p>Wer will schon in die Tiefen einer Objektbibliothek einsteigen, wenn man auch mit einer kleinen Routine den ersten Scan von Access initiieren kann Wenn Sie obige Vorbereitungen getroffen haben und ein funktionst&uuml;chtiger Scanner an Ihrem Rechner h&auml;ngt, k&ouml;nnen Sie sofort mit der Routine aus Listing 1 loslegen.<\/p>\n<p class=\"kastentabelleheader\">Listing 1: Dokument scannen und speichern<\/p>\n<pre>Public Function ScannenUndSpeichern(strDateiname As String)\r\n     Dim objCommonDialog As WIA.CommonDialog\r\n     Dim objImage As WIA.ImageFile\r\n     Set objCommonDialog = New WIA.CommonDialog\r\n     Set objImage = objCommonDialog.ShowAcquireImage\r\n     If Not objImage Is Nothing Then\r\n         objImage.SaveFile strDateiname\r\n         Set objImage = Nothing\r\n     End If\r\n     Set objCommonDialog = Nothing\r\nEnd Function<\/pre>\n<p>Dabei lernen Sie auch direkt das Objekt kennen, von dem aus Sie alle notwendigen (und weniger notwendigen) Dialoge &ouml;ffnen k&ouml;nnen. Der Dialog, den die Routine mit der Methode <b>ShowAcquireImage<\/b> anzeigt, sieht etwa wie in Bild 2 aus.<\/p>\n<p>            <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2006_06\/ScannenMitAccess-web-images\/pic002_opt.jpeg\" alt=\"pic002.tif\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: Der per VBA ge&ouml;ffnete Dialog zum Steuern des Scanners<\/span><\/b><\/p>\n<p>Dieser Dialog erlaubt die grunds&auml;tzlichen Einstellungen wie die Auswahl des Bildtyps und des zu scannenden Bereichs, wobei der Dialog bereits eine sinnvolle Vorauswahl trifft. Weitere Details stellen Sie mit dem Dialog aus Bild 3 ein, den Sie &uuml;ber den Link <b>Qualit&auml;t des gescannten Bildes verbessern<\/b> &ouml;ffnen. Die Routine aus Listing 1 erwartet den Dateinamen der zu speichernden Datei als Parameter. Der Aufruf k&ouml;nnte dann etwa folgenderma&szlig;en lauten:<\/p>\n<pre>ScannenUndSpeichern \"c:\\Scan.bmp\"<\/pre>\n<p>            <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2006_06\/ScannenMitAccess-web-images\/pic003_opt.jpeg\" alt=\"pic003.tif\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3: Feineinstellungen f&uuml;r das Scannen<\/span><\/b><\/p>\n<p>Die wichtigste Eigenschaft dieses Dialogs ist, dass er ein Objekt des Typs <b>ImageFile<\/b> zur&uuml;ckgibt, das Sie anschlie&szlig;end per VBA weiterbearbeiten k&ouml;nnen &#8211; etwa, um es wie in diesem Fall zu speichern.<\/p>\n<p><b>Dialoge &uuml;ber Dialoge<\/b><\/p>\n<p>Neben diesem Dialog bietet WIA noch einige Dialoge mehr. Die Methode <b>ShowDeviceProperties<\/b> etwa &ouml;ffnet den Dialog mit den Eigenschaften des ausgew&auml;hlten Scanners (ist nur ein Scanner vorhanden, entf&auml;llt der Auswahldialog, den die Methode <b>ShowAcquireImage <\/b>in der gleichen Routine aufruft). Listing 2 zeigt eine Beispielroutine zum Aufrufen dieses Dialogs. Die Funktionen der &uuml;brigen Methoden des <b>CommonDialog<\/b>-Objekts sind in der Online-Hilfe dokumentiert.<\/p>\n<p class=\"kastentabelleheader\">Listing 2: Beispiel f&uuml;r die Anzeige der <br \/>Scanner-Eigenschaften<\/p>\n<pre>Public Function Scannereigenschaften()\r\n     Dim objCommonDialog As WIA.CommonDialog\r\n     Dim objDevice As WIA.Device\r\n     Set objCommonDialog = New WIA.CommonDialog\r\n     Set objDevice = objCommonDialog. _<br \/> ShowSelectDevice\r\n     With objCommonDialog\r\n         .ShowDeviceProperties objDevice\r\n     End With\r\nEnd Function<\/pre>\n<p><b>Komfortabel scannen<\/b><\/p>\n<p>F&uuml;r Access-Anwendungen wie etwa Rechnungs- oder Vertragsverwaltungen kann der Aufruf des Scanvorgangs von einem Formular aus und das anschlie&szlig;ende Speichern des Scanergebnisses und des dazugeh&ouml;renden Pfades sehr viel Arbeit sparen. In diesem Beitrag lernen Sie ein Formular kennen, mit dem Sie den Scanner ausw&auml;hlen, einen Dateinamen festlegen und den Scanvorgang starten k&ouml;nnen. Das fertige Formular sieht wie in Bild 4 aus.<\/p>\n<p>Viel interessanter ist jedoch das Modul, das f&uuml;r die vom Formular aus aufgerufenen Scanvorg&auml;nge verantwortlich ist. Dieses Modul hei&szlig;t <b>mdlScannen<\/b> und enth&auml;lt alle f&uuml;r das Scannen erforderlichen Routinen &#8211; welche das im Einzelnen sind, erfahren Sie in den folgenden Abschnitten.<\/p>\n<p><b>Scanner ausw&auml;hlen<\/b><\/p>\n<p>Das Kombinationsfeld zum Ausw&auml;hlen des Scanners wird mit der Funktion <b>ScannerErmitteln<\/b> (s. Listing 3) gespeist, und zwar beim &ouml;ffnen des Formulars. Die Routine erzeugt zun&auml;chst ein Objekt des Typs <b>DeviceManager<\/b>, der das Erzeugen einer Connection auf die enthaltenen Scanner erm&ouml;glicht. Die einzelnen Ger&auml;te kann man &uuml;ber die Auflistung <b>DeviceInfos <\/b>ansprechen, die eindeutige ID und die Bezeichnung erh&auml;lt man &uuml;ber die passenden Properties eines Elements dieser Auflistung. Die Funktion <b>ScannerErmitteln<\/b> liefert eine Liste mit den durch Semikola getrennten IDs und den Bezeichnungen der Ger&auml;te. Damit das Kombinationsfeld <b>cboScanner <\/b>diesen Ausdruck vern&uuml;nftig auswerten kann, stellen Sie die Eigenschaft <b>Herkunftsart<\/b> auf <b>Wertliste<\/b>, <b>Spaltenanzahl<\/b> auf <b>2<\/b> und <b>Spaltenbreite<\/b> auf <b>0cm <\/b>ein.<\/p>\n<p class=\"kastentabelleheader\">Listing 3: Erstellen einer Liste der vorhandenen Scanner<\/p>\n<pre>Public Function ScannerErmitteln() As String\r\n     Dim objDeviceManager As WIA.DeviceManager\r\n     Dim i As Integer\r\n     Dim strScannerliste As String\r\n     Set objDeviceManager = New WIA.DeviceManager\r\n     For i = 1 To objDeviceManager.DeviceInfos.Count\r\n         Debug.Print objDeviceManager.DeviceInfos.Item(i).DeviceID\r\n         strScannerliste = strScannerliste _<br \/> &amp; objDeviceManager.DeviceInfos.Item(i).DeviceID &amp; \";\" &amp; objDeviceManager.DeviceInfos. _<br \/> Item(i).Properties(\"Name\") &amp; \";\"\r\n     Next i\r\n     ScannerErmitteln = strScannerliste\r\nEnd Function<\/pre>\n<p><!--30percent--><\/p>\n<p>&uuml;ber die ID kann das Formular eine Verbindung zum ausgew&auml;hlten Scanner herstellen &#8211; das funktioniert prinzipiell so wie in Listing 4. Nun bringt das Formular aus Bild 4 es mit sich, dass zum aktuell ausgew&auml;hlten Scanner mehrere Informationen ermittelt werden m&uuml;ssen &#8211; die Farbeinstellung, die Aufl&ouml;sung sowie die Helligkeit und der Kontrast. Au&szlig;erdem erfordert auch das Starten des Scanvorgangs eine Referenz auf eine aktive Verbindung zum Scanner. Um die Funktionen der WIA-Bibliothek m&ouml;glichst in einem Standardmodul zu versammeln, sollen die Zugriffe auf den jeweiligen Scanner allein &uuml;ber die ID als Parameter erfolgen &#8211; diese k&ouml;nnen Sie ganz einfach als String &uuml;bergeben.<\/p>\n<p class=\"kastentabelleheader\">Listing 4: Initialisieren des Formulars frmScanner<\/p>\n<pre>Private Sub Form_Open(Cancel As Integer)\r\n    Dim strDevice As String\r\n     Me!cboScanner.RowSource = ScannerErmitteln\r\n     If Len(Me!cboScanner.RowSource) &gt; 0 Then\r\n         Me!cboScanner = Nz(DLookup(&quot;Wert&quot;, &quot;tblParameter&quot;, _<br \/> &quot;Parameter = &apos;AktuellerScanner&apos;&quot;), _<br \/> Me!cboScanner.ItemData(0))\r\n         strDevice = Me!cboScanner\r\n         SteuerelementeAktualisieren strDevice\r\n     Else\r\n         MsgBox &quot;Es ist kein Scanner an diesen Rechner angeschlossen.&quot;\r\n         Cancel = True\r\n     End If\r\nEnd Sub\r\nPrivate Sub SteuerelementeAktualisieren(strDevice As String)\r\n     Me!cboAufloesung.RowSource = AufloesungenErmitteln(strDevice)\r\n     Me!cboAufloesung.Value = AktuelleAufloesungErmitteln(strDevice)\r\n     Me!txtHelligkeit = AktuelleHelligkeitErmitteln(strDevice)\r\n     Me!txtKontrast = AktuellenKontrastErmitteln(strDevice)\r\nEnd Sub<\/pre>\n<p>            <img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2006_06\/ScannenMitAccess-web-images\/pic005_opt.jpeg\" alt=\"pic005.tif\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4: Das Formular zum Eingeben der Parameter und zum Starten des Scanvorgangs<\/span><\/b><\/p>\n<p>Legen Sie also zun&auml;chst die ben&ouml;tigten Funktionen fest, indem Sie die Ereignisprozedur <b>Beim &ouml;ffnen <\/b>des Formulars <b>frmScannen <\/b>wie in Listing 2 anlegen. Die Routine liest zun&auml;chst die Liste der vorhandenen Scanner ein und weist diese der Eigenschaft <b>RowSource <\/b>des passenden Kombinationsfeldes zu &#8211; vorausgesetzt, sie findet einen Scanner. Ist das der Fall, pr&uuml;ft die Routine den in der Tabelle <b>tblParameter<\/b> gespeicherten Wert des Parameters <b>AktuellerScanner<\/b> und w&auml;hlt im Kombinationsfeld entweder diesen Wert oder den ersten vorhandenen Eintrag aus.<\/p>\n<p>Anschlie&szlig;end weist sie der Variablen <b>strDevice<\/b> die ID des ausgew&auml;hlten Scanners hinzu. Die Routine <b>SteuerelementeAktualisieren <\/b>f&uuml;llt die vier Steuerelemente mit den passenden Eigenschaften; diese Anweisungen sind deshalb in einer eigenen Routine enthalten, weil diese auch noch nach dem Aktualisieren des Kombinationsfeldes <b>cboScanner <\/b>aufgerufen wird.<\/p>\n<p><b>WIA-Funktionen<\/b><\/p>\n<p>Fehlen noch die Definitionen der Funktionen <b>AufloesungenErmitteln<\/b>, <b>AktuelleAufloesungErmitteln<\/b>, <b>AktuelleHelligkeitErmitteln <\/b>und <b>AktuellenKontrastErmitteln<\/b>. Diese stecken zusammen mit der Funktion <b>ScannerErmitteln <\/b>im Standardmodul <b>mdlScannen<\/b>. Im Wesentlichen kommen in diesen Funktionen die WIA-Objekte <b>DeviceManager <\/b>und <b>Device <\/b>zum Einsatz. Beide sollen nur bei Bedarf erzeugt werden, deshalb enth&auml;lt das Modul zwei private <b>Property Get<\/b>-Prozeduren, die je nach Bedarf eine neue Instanz erzeugen oder eine bestehende zur&uuml;ckgeben. Die Prozeduren hei&szlig;en <b>WIADeviceManager <\/b>und <b>WIADevice <\/b>(s. Listing 5).<\/p>\n<p class=\"kastentabelleheader\">Listing 5: Prozeduren zum Erzeugen oder Zur&uuml;ckgeben von WIA-Objekten<\/p>\n<pre>Private mDevice As WIA.Device\r\nPrivate mDevicename As String\r\nPrivate mDeviceManager As WIA.DeviceManager\r\nPrivate Property Get WIADeviceManager() As WIA.DeviceManager\r\n     If mDeviceManager Is Nothing Then\r\n         Set mDeviceManager = New WIA.DeviceManager\r\n     End If\r\n     Set WIADeviceManager = mDeviceManager\r\nEnd Property\r\nPrivate Property Get WIADevice(strDevicename) As WIA.Device\r\n     If strDevicename = mDevicename Then\r\n         If mDevice Is Nothing Then\r\n             Set mDevice = WIADeviceManager.DeviceInfos.Item(mDevicename).Connect\r\n         End If\r\n     Else\r\n         mDevicename = strDevicename\r\n         Set mDevice = _<br \/> WIADeviceManager.DeviceInfos.Item(mDevicename).Connect\r\n     End If\r\n     Set WIADevice = mDevice\r\nEnd Property<\/pre>\n<p>Die Routine <b>ScannerErmitteln <\/b>aus Listing 3 wird entsprechend an diese <b>Property Get<\/b>-Prozeduren angepasst (s. Beispieldatenbank, Modul <b>mdlScannen<\/b>).<\/p>\n<p><b>Aufl&ouml;sungen ermitteln<\/b><\/p>\n<p>Die mit dem ausgew&auml;hlten Scanner m&ouml;glichen Ausl&ouml;sungen ermittelt die Routine <b>AufloesungenErmitteln<\/b> aus Listing 6. Die Routine greift auf die Liste der Unterwerte der Eigenschaft <b>Horizontal Resolution <\/b>des anstehenden Scanvorgangs zu, die alle verf&uuml;gbaren Aufl&ouml;sungen enth&auml;lt, und f&uuml;gt diese zu einer Semikola-separierten Liste zusammen.<\/p>\n<p class=\"kastentabelleheader\">Listing 6: Funktion zum Ermitteln der mit einem bestimmten Scanner m&ouml;glichen Aufl&ouml;sungen<\/p>\n<pre>Public Function AufloesungenErmitteln(strDevice As String) As String\r\n     Dim i As Integer\r\n     Dim str As String \r\n     With WIADevice(strDevice).Items(1)._<br \/> Properties(&quot;Horizontal Resolution&quot;)\r\n         For i = 1 To .SubTypeValues.Count\r\n             str = str &amp; .SubTypeValues(i)\r\n             If i &lt;&gt; .SubTypeValues.Count Then\r\n                 str = str &amp; &quot;;&quot;\r\n             End If\r\n         Next\r\n     End With\r\n     AufloesungenErmitteln = str\r\nEnd Function<\/pre>\n<p>Die Routinen zum Ermitteln der Helligkeit, des Kontrasts und der aktuellen Aufl&ouml;sung aus Listing 7 ermitteln jeweils den Wert einer der Eigenschaften des anstehenden Scans.<\/p>\n<p class=\"kastentabelleheader\">Listing 7: Funktionen zum Ermitteln von Helligkeit, Kontrast und Aufl&ouml;sung<\/p>\n<pre>Public Function AktuelleHelligkeitErmitteln(strDevice As String) As Long\r\n     AktuelleHelligkeitErmitteln = WIADevice(strDevice).Items(1). _<br \/> Properties(&quot;Brightness&quot;).Value\r\nEnd Function\r\nPublic Function AktuellenKontrastErmitteln(strDevice As String) As Long\r\n     AktuellenKontrastErmitteln = WIADevice(strDevice).Items(1). _<br \/> Properties(&quot;Contrast&quot;).Value\r\nEnd Function\r\nPublic Function AktuelleAufloesungErmitteln(strDevice As String)\r\n     AktuelleAufloesungErmitteln = WIADevice(strDevice).Items(1). _<br \/> Properties(&quot;Horizontal Resolution&quot;).Value\r\nEnd Function<\/pre>\n<p><b>Scanvorgang<\/b><\/p>\n<p>Fehlt noch die Routine, die f&uuml;r den eigentlichen Scan-Vorgang verantwortlich ist. Diese hei&szlig;t <b>BildScannenUndSpeichern <\/b>und ist ebenfalls im Modul <b>mdlScannen <\/b>zu finden (s. Listing 8).<\/p>\n<p class=\"kastentabelleheader\">Listing 8: Scannen und speichern nach Dateityp<\/p>\n<pre>Public Function BildScannenUndSpeichern(strDevice As String, strFilename As String, _<br \/> lngCurrentIntent As Long, lngResolution As Long, lngBrightness As Long, lngContrast As Long) _<br \/> As Boolean\r\n     Dim objImageFile As WIA.ImageFile\r\n     Dim strDateiendung As String\r\n     Dim strFormat As String\r\n     strDateiendung = Mid(strFilename, InStrRev(strFilename, &quot;.&quot;) + 1)\r\n     With WIADevice(strDevice).Items(1)\r\n         .Properties(&quot;Current Intent&quot;).Value = lngCurrentIntent\r\n         .Properties(&quot;Vertical Resolution&quot;).Value = lngResolution\r\n         .Properties(&quot;Horizontal Resolution&quot;).Value = lngResolution\r\n         .Properties(&quot;Brightness&quot;).Value = lngBrightness\r\n         .Properties(&quot;Contrast&quot;).Value = lngContrast\r\n     End With\r\n     Set objImageFile = WIADevice(strDevice).Items(1).Transfer\r\n     Select Case strDateiendung\r\n         Case &quot;bmp&quot;\r\n             strFormat = wiaFormatBMP\r\n         Case &quot;png&quot;\r\n             strFormat = wiaFormatPNG\r\n         Case &quot;gif&quot;\r\n             strFormat = wiaFormatGIF\r\n         Case &quot;jpg&quot;\r\n             strFormat = wiaFormatJPEG\r\n         Case &quot;tif&quot;\r\n             strFormat = wiaFormatTIFF\r\n         Case Else\r\n             strFormat = &quot;Unknown&quot;\r\n     End Select\r\n     If strFormat &lt;&gt; wiaFormatBMP Then\r\n         Set objImageFile = ImageFileKonvertieren(objImageFile, strFormat)\r\n     End If\r\n     objImageFile.SaveFile strFilename\r\n     BildScannenUndSpeichern = True\r\nEnd Function\r\nPublic Function ImageFileKonvertieren(objImageFile As WIA.ImageFile, strFormat As String) _<br \/> As WIA.ImageFile\r\n     Dim objImageProcess As WIA.ImageProcess\r\n     Set objImageProcess = New WIA.ImageProcess\r\n     objImageProcess.Filters.Add objImageProcess.FilterInfos(&quot;Convert&quot;).FilterID\r\n     objImageProcess.Filters(1).Properties(&quot;FormatID&quot;).Value = strFormat\r\n     Set ImageFileKonvertieren = objImageProcess.Apply(objImageFile)\r\nEnd Function<\/pre>\n<p>Diese Routine erwartet als Eingangsparameter die ID des Scanners (<b>strDevice<\/b>), den Dateinamen, unter dem die eingescannte Datei gespeichert werden soll, sowie die festgelegten Eigenschaften.<\/p>\n<p>Wichtig ist, dass der Dateiname gleichzeitig das Format festlegt, in dem die Bilddatei gespeichert werden soll &#8211; lautet der Dateiname also etwa <b>c:\\Test.jpg<\/b>, wird die Bilddatei automatisch in eine JPEG-Datei umgewandelt.<\/p>\n<p>Die Routine legt zun&auml;chst die Eigenschaften f&uuml;r den kommenden Scanvorgang entsprechend den im Formular gemachten Angaben fest und startet mit der <b>Transfer<\/b>-Methode den Scan-Vorgang. Das Ergebnis des Scans wird dabei in der Variablen <b>objImageFile <\/b>gespeichert.<\/p>\n<p>Anschlie&szlig;end ermittelt die Routine aus dem Dateinamen die passende Dateiendung und legt die der Endung entsprechende Formatkonstante fest.<\/p>\n<p>Wenn ein anderer Dateityp als das standardm&auml;&szlig;ig voreingestellte BMP-Format ausgew&auml;hlt wurde, ruft die Routine damit und mit dem <b>ImageFile<\/b>-Objekt als Parameter die Funktion <b>ImageFileKonvertieren <\/b>auf. Diese erzeugt mit den dazu notwendigen Methoden einen Filter, der Informationen &uuml;ber das anzuwendende Format enth&auml;lt.<\/p>\n<p>Ein <b>ImageProcess<\/b>-Objekt sorgt mit der Methode <b>Convert <\/b>schlie&szlig;lich f&uuml;r die Umwandlung des gescannten Bildes. Schlie&szlig;lich speichert die Routine <b>BildScannenUndSpeichern <\/b>das Bild in dem gew&uuml;nschten Format (s. Listing 8).<\/p>\n<p><b>Zusammenfassung und Ausblick<\/b><\/p>\n<p>Die WIA-Bibliothek bietet eine einfache M&ouml;glichkeit zum Scannen von Dokumenten &#8211; vorausgesetzt, Sie besitzen einen Scanner mit einer WIA-Schnittstelle und Windows XP oder h&ouml;her als Betriebssystem.<\/p>\n<p>Die hier vorgestellten Funktionen liefern alles, was Sie zum automatisierten Erstellen einfacher Scans ben&ouml;tigen. <\/p>\n<p>Das Formular <b>frmScannen<\/b> zeigt, wie Sie die Funktionen einsetzen, und kann selbst in eigene Anwendungen integriert werden. <\/p>\n<p>F&uuml;r &auml;ltere Betriebssysteme und Scannermodelle empfiehlt sich ein Blick in [2], alternativ gibt es die M&ouml;glichkeit, den Scanner direkt per API zu steuern.<\/p>\n<p class=\"zwischen-berschriftquellen\">Quellen<\/p>\n<p class=\"quellen\">[1] Download WIA: http:\/\/www.microsoft.com\/down<br \/>loads\/details.aspxFamilyID=a332a77a-01b8-4de6-<br \/>91c2-b7ea32537e29&amp;DisplayLang=en#filelist<\/p>\n<p class=\"quellen\">[2] Harald Langer, Scannen aus Access (Whitepaper): http:\/\/www.accessprofipool.de\/app\/whitepaper\/files\/appscan.zip<\/p>\n<p class=\"kastentabelleheader\">Scannen mit &auml;lteren Betriebssystemen<\/p>\n<p>Die vorgestellten Techniken erfordern die WIA-Bibliothek von Microsoft. F&uuml;r fr&uuml;here Versionen von Windows k&ouml;nnen Sie alternative Tools einsetzen. Harald Langer hat unter [2] ein Whitepaper ver&ouml;ffentlicht, das diese Tools und ihren Einsatz detailliert vorstellt.<\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>ScannenMitAccess.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/10109B98-36F2-475B-98D6-A512A834544B\/aiu_419.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Da einige Zeitgenossen immer noch an das papierlose B&uuml;ro glauben, will Access im Unternehmen zumindest einen kleinen Teil zu diesem Traum beitragen. Dazu liefern wir Ihnen Know-how rund um das Scannen von Dokumenten per VBA &#8211; nat&uuml;rlich mit automatischer Konvertierung in den gew&uuml;nschten Dateityp und Speicherung der Datei am von Ihnen vorgegebenen Ort.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662006,66062006,44000026,44000027],"tags":[],"class_list":["post-55000419","post","type-post","status-publish","format-standard","hentry","category-662006","category-66062006","category-Interaktiv","category-Loesungen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Dokumente scannen mit WIA - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dokumente scannen mit WIA\" \/>\n<meta property=\"og:description\" content=\"Da einige Zeitgenossen immer noch an das papierlose B&uuml;ro glauben, will Access im Unternehmen zumindest einen kleinen Teil zu diesem Traum beitragen. Dazu liefern wir Ihnen Know-how rund um das Scannen von Dokumenten per VBA - nat&uuml;rlich mit automatischer Konvertierung in den gew&uuml;nschten Dateityp und Speicherung der Datei am von Ihnen vorgegebenen Ort.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-11T21:07:06+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg09.met.vgwort.de\/na\/e991013d616b48f9b7ced8c3ea589e2f\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"11\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Dokumente scannen mit WIA\",\"datePublished\":\"2021-02-11T21:07:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/\"},\"wordCount\":1687,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/e991013d616b48f9b7ced8c3ea589e2f\",\"articleSection\":[\"2006\",\"6\\\/2006\",\"Interaktiv\",\"L\u00f6sungen\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/\",\"name\":\"Dokumente scannen mit WIA - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/e991013d616b48f9b7ced8c3ea589e2f\",\"datePublished\":\"2021-02-11T21:07:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/e991013d616b48f9b7ced8c3ea589e2f\",\"contentUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/e991013d616b48f9b7ced8c3ea589e2f\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Dokumente_scannen_mit_WIA\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dokumente scannen mit WIA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Dokumente scannen mit WIA - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/","og_locale":"de_DE","og_type":"article","og_title":"Dokumente scannen mit WIA","og_description":"Da einige Zeitgenossen immer noch an das papierlose B&uuml;ro glauben, will Access im Unternehmen zumindest einen kleinen Teil zu diesem Traum beitragen. Dazu liefern wir Ihnen Know-how rund um das Scannen von Dokumenten per VBA - nat&uuml;rlich mit automatischer Konvertierung in den gew&uuml;nschten Dateityp und Speicherung der Datei am von Ihnen vorgegebenen Ort.","og_url":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-02-11T21:07:06+00:00","og_image":[{"url":"http:\/\/vg09.met.vgwort.de\/na\/e991013d616b48f9b7ced8c3ea589e2f","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"11\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Dokumente scannen mit WIA","datePublished":"2021-02-11T21:07:06+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/"},"wordCount":1687,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/e991013d616b48f9b7ced8c3ea589e2f","articleSection":["2006","6\/2006","Interaktiv","L\u00f6sungen"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/","url":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/","name":"Dokumente scannen mit WIA - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/e991013d616b48f9b7ced8c3ea589e2f","datePublished":"2021-02-11T21:07:06+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/#primaryimage","url":"http:\/\/vg09.met.vgwort.de\/na\/e991013d616b48f9b7ced8c3ea589e2f","contentUrl":"http:\/\/vg09.met.vgwort.de\/na\/e991013d616b48f9b7ced8c3ea589e2f"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Dokumente_scannen_mit_WIA\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Dokumente scannen mit WIA"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000419"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000419\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}