8. Kommunikation

mit anderen Programmen, Dateien, Schnittstellen

8.1   Datei-Auswahl-Dialog 8.7  Import fremder Formate
8.2   Serielle Schnittstelle ansprechen 8.8  Access und Oracle
8.3   Barcodes 8.9  Access und MySQL
8.4   Telefon 8.10 Access und MS SQL-Server
8.5   Daten an Word übergeben 8.11 Access und PostgreSQL
8.6   Access-DB im Internet
   
8.1 Datei-Auswahl-Dialog
http://www.donkarl.com?FAQ8.1

Problem

Du möchtest in Access ein Dialogformular verwenden um Dateien oder Verzeichnisse auszuwählen, wie es in den meisten Windows-Programmen z.B. zum Öffnen oder Speichern einer Datei üblich ist.

Lösung

Du kannst das Active-X-Objekt Common-Dialog von MS verwenden, das z.B. in der Office-Developer-Edition dabei ist. Das bereitet bei der Weitergabe aber oft Probleme mit den Verweisen.

Eine andere Variante (ab AX) ist die Verwendung des FileDialog-Objektes von Office (s. <F1>). In AX gibt's dabei aber keinen Speicher-Dialog.
s. http://support.microsoft.com/?kbid=282335
Mit A03 wurde das behoben.

Die beste Alternative ist ein Datei-Dialog, der direkt auf die Windows-API zugreift. z.B. "Common-Dialog" (auch für die Auswahl von Ordnern/Verzeichnissen) von Karsten Pries bzw. "Comdlg32-Ersatz" (auch für Schriftart und Farben) von Henry Habermacher. Alles zu finden bei den Downloads von http://www.dbdev.org .

nach oben

8.2 Serielle Schnittstelle ansprechen
http://www.donkarl.com?FAQ8.2 aktualisiert 2012-11-26

Problem

Du möchtest von Access aus die serielle Schnittstelle (RS232) ansprechen d.h. Daten lesen und/oder schreiben.

Lösung

Zur einfachen Kommunikation mit der seriellen Schnittstelle gibt es ein kostenloses ActiveX-Steuerelement von Richard Grier:
http://home.comcast.net/~hardandsoftware/xmcomm.htm

Von MS gibt es das MSComm32.oxc (wird z.B. mit VB6 mitgeliefert).
Es funktioniert mit Access, aber um dieses Steuerelement einsetzen zu können, benötigt man eine VB-Lizenz. Doku s.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/comm98/html/vbobjcomm.asp

Ansonsten ist zum Ansprechen der Schnittstelle aufwendiger API-Code notwendig.
Dafür gibt's eine Beispiellösung von Peter Steimann: http://www.accessprofipool.de

nach oben

8.3 Barcodes
http://www.donkarl.com?FAQ8.3 aktualisiert 2017-02-10

Problem

Du möchtest Barcodes in Access verwenden. Welche Soft- und Hardware ist dazu nötig? Welche Barcodes gibt es? Wo bekommt man sie?

Lösung

Im PC werden nur die Zahlen bzw. Texte, die im Code stecken, gespeichert.
In Access kannst du also ein Feld vom Typ Text oder Zahl zur Speicherung verwenden.

Es gibt verschiedene Varianten an Software:

Am einfachsten ist eine Truetypeschrift meist für Code 39. z. B.
https://www.barcodesinc.com/free-barcode-font/
http://www.adams1.com
Dort gibt's auch detaillierte Beschreibungen der Barcodes-Spezifikationen und vieles mehr über Barcodes.

Die gängigen Barcodes gibt es hier kostenlos (Fonts + VB-Beispiele):
http://grandzebu.net/informatique/codbar-en/codbar.htm

Freeware zum Druck von Code39-Labels in Berichten: 
von Peter Steimann bei den Downloads von http://www.accessprofipool.de

Für komplexere Strichcodes wie z.B. EAN-Codes, gibt's ebenfalls jede Menge Software, aber in den meisten Fällen kostenpflichtig wie z.B.
http://www.tec-it.co.at/

Du brauchst ein Barcodelesegerät (Scanner). Ich verwende solche, die zwischen Tastatur und PC gesteckt werden. Es gibt sie aber auch für die serielle Schnittstelle. Diese Scanner wandeln den Strichcode in die Zahl um und geben diese an den PC weiter. Scanner gibt's z.B. bei www.strichcode.com u.v.a.

Zum Drucken kannst du normale Drucker oder spezielle Barcode-Drucker bzw. Etikettendrucker verwenden, die meist an der seriellen Schnittstelle hängen und in die man Rollen mit Etiketten lädt. Gibt's bei vielen Firmen wie Epson, Star usw.

Die Produktgruppe, unter der du Barcodeleser und -drucker findest, nennt sich POS (Point Of Sale).
Für weitere Firmen suche einfach mit "Barcode", "EAN" etc. bei der Suchmaschine deiner Wahl.

nach oben

8.4 Telefon
http://www.donkarl.com?FAQ8.4 aktualisiert 2014-10-23

Problem

Du möchtest aus Access heraus eine Telefonnummer wählen oder eine Telefonanlage steuern.

Lösung

Der Großteil dieses Artikels ist von Dieter Liessmann. Er ist daher der "ich" und "wir" in diesem Artikel. S.a. weitere Infos und Links zum Thema auf seiner Webseite http://www.topsolutions.de.

Es gibt verschiedene Möglichkeiten, die von 2 Faktoren abhängen:
- Nur wählen, oder auch kommende Anrufe überwachen.
- Welche Schnittstelle

Willst Du nur aus Access heraus wählen, ist die einfachste Möglichkeit die von MS:
http://support.microsoft.com/?kbid=148857 (API alle Versionen)
http://support.microsoft.com/?kbid=141625 (TAPI Access95-97)
http://support.microsoft.com/?kbid=837146 (TAPI Access2000-2003)

Willst Du den ComPort direkt ansprechen s. FAQ 8.2

Willst Du wählen, aber auch kommende Anrufe überwachen, musst Du entweder die CAPI (Common-ISDN-API, Softwareschnittstelle die mit allen ISDN-Karten mitgeliefert wird) oder die TAPI (Telefonie API, Softwareschnittstelle die mit immer mehr Kommunikationsendgeräten wie Telefonen, Modems, ISDN-Karten mitgeliefert wird) nutzen.

CAPI

Meines Erachtens eine Variante die immer mehr ins Hintertreffen gerät. Mitunter bieten die Hersteller der ISDN Karten eigene CAPI Tools an. Eine allgemeine Lösung kenne ich leider nicht.

TAPI

Meines Erachtens die professionellste und flexibelste Lösung, da die TAPI Schnittstelle auch von den meisten ISDN-Telefonen und TK-Anlagen unterstützt wird. Voraussetzung ist also ein TAPI-ServiceProvider des Herstellers des Telefons/der TK-Anlage. Dann kann's losgehen.

Direkt aus VBA von A97 ist das Ansprechen der TAPI nur gehend möglich, und das auch nur über API-Calls. Mehr zu diesem Thema z.B. unter http://www.shrinkwrapvb.com/vbtapi.htm

Eine Lösung wäre das TeleTool-OCX bei http://www.exceletel.com - runterladen und testen.
Ebenfalls für Entwickler gedacht ist die "sevTAPI.DLL" auf der Access-Tools CD Vol.1 von access-paradies.de.

nach oben

8.5 Daten an Word übergeben
http://www.donkarl.com?FAQ8.5 aktualisiert 2006-03-31

Problem

Du möchtest Daten aus Access zur Weiterverarbeitung an Word übergeben.

Lösung

Wenn du mit den Daten in Word einen Serienbrief fabrizieren möchtest, dann ist die einfachste und problemloseste Variante, die Daten mithilfe der TransferText-Aktion oder -Methode in ein Word.doc oder eine Textdatei zu exportieren, die dann in Word als Datenquelle für den Seriendruck verwendet wird.

Wenn du nur einzelne Daten z.B. aus dem gerade aktuellen Datensatz übergeben und dazu Word aus Access heraus öffnen willst, dann schau dir folgende Beispiele an:
"OBD Wordbrief" von Klaus Oberdalhoff bei http://www.freeaccess.de
"adrWord12.zip" von Harald Langer bei http://www.dbdev.org

Erläuterung mit Code für A00:
http://support.microsoft.com/?kbid=210271
Erläuterung mit Code für A97:
http://support.microsoft.com/?kbid=131583

nach oben

8.6 Access-DB im Internet
http://www.donkarl.com?FAQ8.6 aktualisiert 2011-12-16

Problem

Du möchtest eine Access-Datenbank bzw. ihre Daten ins Inter-/Intranet bringen.

Lösung

Sharepoint
Ab Access 2010 kann man die Access Services von Sharepoint verwenden. Man erstellt dazu eine Webdatenbank, in der man in eingeschränkter Form Tabellen, Abfragen, Formulare, Berichte und Makros von Access verwenden kann (kein VBA). Es gibt dazu einige Webseiten z.B. http://office.microsoft.com/de-de/HA010356866.aspx und Folien eines AEK13-Vortrages von Ynte Jan Kuindersma.

Eine andere Möglichkeit ab A03 ist das Exportieren und Verknüpfen von Tabellen in Sharepoint. Man kann dann in Access mit den verknüpften Tabellen arbeiten und/oder am Sharepoint mit Listen. Das Exportieren und Verknüpfen funktioniert ähnlich wie mit anderen Backends.

DAP
Von A00 bis A03 gibt es die relativ einfach zu erstellenden (Datenzugriffs-)Seiten (DAPs = Data Access Pages) als eigene Datenbankobjekte. Diese eignen sich aber i.d.R. nur für ein Intranet, weil sie nur mit dem Internet Explorer von MS funktionieren. Aufgrund dieser und anderer Beschränkungen (z.B. lizenzrechtlich je nach Office-Version) und wegen etlicher Bugs funktionieren DAPs in A07 nur noch passiv, d.h. man kann alte verwenden, aber keine neuen mehr erstellen. Ab A10 hat sie MS komplett aus Access entfernt.

Normale Webtechniken
Flexibler als die bisher genannten Möglichkeiten sind natürlich Webtechniken wie Active Server Pages (ASP bzw. ASP.NET) oder PHP usw. Allerdings muss man dann die Oberflächen d.h. das Frontend komplett neu erstellen, kann also keine Formulare und Berichte aus Access nutzen sondern nur auf die Daten d.h. Tabellen und Abfragen einer mdb oder accdb zugreifen, die am Webserver liegt. Es gibt dazu jede Menge Webseiten und auch AEK-Skripten wie z.B. ein einführendes Skriptum zu ASP mit MDB von K. Konopasek von der AEK2 und Vortragsfolien zu ASP.NET mit MDB von Mark Dörbandt von der AEK7.

nach oben

8.7 Import fremder Formate
http://www.donkarl.com?FAQ8.7

Problem

Du hast Daten oder eine komplette Anwendung in Fremdformaten vorliegen und suchst nach einer Möglichkeit, sie nach Access zu portieren.

Lösung

Du kannst keine Oberflächen etc. aus anderen Formaten nach Access übernehmen, sondern nur die Daten.
Access kann einige Formate direkt importieren (s. Online-Hilfe), die als Vermittler für Formate dienen, die Access nicht lesen kann. Meist sind diese vermittelnden Formate: Text mit Trennzeichen (csv), dBase (dbf), Excel (xls). Suche in deinem Programm nach entsprechenden Exportmöglichkeiten. Einige Beispiele (hängt auch von den Programmversionen ab):

Filemaker (Pro): Export aus FM als csv oder dBase 
Works: Export als csv (in Works "Text und Semikolon") http://support.microsoft.com/?kbid=197894
F&A: Export als dBase IV

BTrieve
Bei A2 gab es einen IISAM-Treiber für BTrieve. Wenn du noch A2 installiert hast oder auftreiben kannst, wäre das eine Möglichkeit zur Übernahme der Daten.
http://support.microsoft.com/?kbid=157036
http://support.microsoft.com/?kbid=141623

http://www.pervasive.com bietet einen 32-bit ODBC-Treiber an (viel Glück beim Suchen), der dann auch mit höheren A-Versionen funktionieren sollte. Lt. mehreren Postings in den NGs gibt's dabei aber Versionsprobleme und mussten eigene Lösungen gestrickt werden.

Einen Workaround bietet noch das DOS-Programm "BUTIL". Mit dem Parameter RECOVER lassen sich BTrieve-Daten in Textdateien abspeichern. Füttere damit die Suchmaschine deiner Wahl.

nach oben

8.8 Access und Oracle
http://www.donkarl.com?FAQ8.8 aktualisiert 2011-04-18

Problem

Du suchst Informationen zum Thema: Verwendung von Access als Frontend für eine Oracle-DB.

Lösung

Die Verbindung Access - Oracle ist per ODBC möglich.

Aktuelle ODBC-Treiber und Informationen gibt's direkt bei Oracle:
http://www.oracle.com/technetwork/database/windows/index-098976.html
http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html
http://wiki.oracle.com/page/ODBC

Info über Unterschiede bei den Datentypen:
http://support.microsoft.com/?kbid=104977

Es gibt einen "Oracle Migration Workbench" der u.a. Access/JET-Daten nach Oracle mirgrieren soll:
http://www.oracle.com/technetwork/topics/index-095746.html

nach oben

8.9 Access und MySQL
http://www.donkarl.com?FAQ8.9 aktualisiert 2014-01-20

Problem

Du suchst Informationen zum Thema Access in Verbindung mit MySQL.

Lösung

Die Verbindung Access - MySQL ist per ODBC möglich.

ODBC-Treiber und viele Infos zu MySQL:
http://www.mysql.com
Mit "Access" als Suchbegriff gibt's dort eine Menge spezifischer Artikel.

Auf den Downloadseiten der AEK gibt es zwei Skripte zum Thema Access und mySQL:
eine praktische Einführung von Jörg Ackermann von der AEK6 und Joachim Bartels umfangreiches Skript von der AEK13.

Phil Stiefel bietet Infos über die Zusammenarbeit mit Access, Probleme, Bugs etc.:
http://www.codekabinett.com/page.php?Theme=4&Lang=1

Umfangreiche Info auf deutsch:
http://www.little-idiot.de/mysql

nach oben

8.10 Access und MS SQL-Server
http://www.donkarl.com?FAQ8.10 aktualisiert 2011-12-16

Problem

Du suchst Informationen zum Thema Access als Frontend für den MS SQL-Server.

Lösung

Die Kombination Access - MS SQL Server ist auf zwei sehr unterschiedliche Arten möglich:
Die Tabellen des SQL Servers können per ODBC in eine MDB eingebunden sein oder Access kann "direkt" (per OLEDB) mit den Objekten der Server-DB wie Tabellen, Views, Stored Prodecures, Funktionen etc. arbeiten. Diese direkte Variante nennt sich "Access Projekt" (Access Data Project) und hat die Dateierweiterung "adp" statt "mdb".

Info und Tipps bei Problemen gibt's in der SQL-Server-FAQ von Bernd Jungbluth:
http://www.sqlfaq.de

Viel Info zum Thema bieten die Skripte von diversen AEK-Vorträgen.

Info zu ADP bei MS:
http://msdn.microsoft.com/en-us/library/aa217647(office.11).aspx

Beachte auch, dass es eine eigene Newsgroup für alle Fragen zum Thema Access als Frontend für alle Varianten von SQL-Server-DBs gibt (MS-SQL-Server, Oracle, MySQL etc.): microsoft.public.de.access.clientserver

nach oben

8.11 Access und PostgreSQL
http://www.donkarl.com?FAQ8.11 aktualisiert 2012-11-14

Problem

Du suchst Informationen zum Thema Access in Verbindung mit PostgreSQL.

Lösung

(Der Großteil dieses Artikels stammt von Stefan Wirrer. Die meisten gelinkten Seiten hier sind in englisch.)

Die Verbindung Access - PostgreSQL ist per ODBC möglich.

Infos zu PostgreSQL:
http://www.postgres.de/index.whtml (deutsch)
http://www.postgresql.org/

ODBC-Treiber:
http://www.postgresql.org/ftp/odbc/versions/msi/

Grafisches Administrationswerkzeug für PostgreSQL:
http://www.pgadmin.org/

Migrationstool Access to PostgreSQL:
http://www.bullzip.com/products/a2p/info.php

Beschreibung des Konvertierungsprozesses (noch aus A97-Zeiten):
http://wiki.postgresql.org/wiki/Microsoft_Access_to_PostgreSQL_Conversion

Vergleich verschiedener DBMS:
http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems

nach oben