Access Front Ends With MySQL.de

24
Copyright © 2010, Sun Microsystems Visueller Leitfaden zu Microsoft Access-Front-Ends mit MySQL Ein MySQL ® Whitepaper

Transcript of Access Front Ends With MySQL.de

Page 1: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems

Visueller Leitfaden zu

Microsoft Access-Front-Ends mit MySQL

Ein MySQL® Whitepaper

Page 2: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems

Inhalt

Einleitung .................................................................................................................................................... 4

Gründe für MySQL auf Microsoft Windows ............................................................................................. 4

Was ist Microsoft Office Access? ............................................................................................................. 4

Gründe für die Nutzung von Access-Front-Ends mit MySQL ................................................................ 4

Umfang und Zweck dieses Leitfadens .................................................................................................... 5

Schritt 1: Installieren und Konfigurieren von MySQL ............................................................................. 5

Installieren von MySQL 5.1 ..................................................................................................................... 5

Erstellen einer leeren Datenbank ............................................................................................................ 6

Schritt 2: Konfigurieren des ODBC-Treibers ........................................................................................... 6

Schritt 3: Exportieren von Tabellen und Daten aus der Datenbank „Northwind“ nach MySQL ........ 7

Verwenden von Access zur Migration einzelner Tabellen ...................................................................... 7

MySQL Partnerlösungen für Access-Migrationen ................................................................................... 8

Migrieren mehrerer Tabellen mit Access to MySQL ............................................................................... 9

Hinzufügen fehlender Spalten mit den geeigneten Standardwerten ..................................................... 11

Schritt 4: Erstellen von Tabellenbeziehungen ....................................................................................... 12

Schritt 5: Erstellen einer neuen Access-Datenbank ............................................................................. 14

Schritt 6: Verknüpfen der MySQL Tabellen mit Access ....................................................................... 15

Schritt 7: Importieren von Abfragen, Formularen, Berichten, Makros und Modulen ........................ 18

Schritt 8: Erste Anwendungstest ............................................................................................................ 20

Testen der Funktionalität ....................................................................................................................... 20

Beispiel: Eingeben eines neuen Mitarbeiters ........................................................................................ 20

Schritt 9: Erweiterte Konfiguration ......................................................................................................... 21

Datentypzuordnungen ........................................................................................................................... 21

Funktionszuordnungen .......................................................................................................................... 22

Page 3: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems

MySQL unter Windows – Anwenderberichte ......................................................................................... 23

Adobe verlässt sich auf MySQL, um Creative Expertenein effizienteres Arbeiten zu ermöglichen ...... 23

NetQoS liefert Lösung für die verteilte Netzwerkverwaltung mit integriertem MySQL .......................... 23

Fazit ............................................................................................................................................................ 23

Weitere Informationsquellen ................................................................................................................... 24

Über MySQL .............................................................................................................................................. 24

Page 4: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 4

Einleitung Seit vielen Jahren ist Microsoft Windows die beliebteste Entwicklungsplattform und die zweitbeliebteste Produktivplattform von Unternehmen, die Anwendungen mit MySQL bereitstellen. Anfang 2009 haben wir unsere jährliche Umfrage durchgeführt und festgestellt, dass 66% aller Befragten Windows für die Entwicklung verwenden und 48% der Befragten Windows in Produktivumgebungen einsetzen. Aufgrund der großen Anzahl an Benutzern, die MySQL in Produktivumgebungen unter Windows bereitstellen, ist es sinnvoll, die Möglichkeit zur Verwendung Windows-spezifischer Technologien mit MySQL zu untersuchen. Überzeugende Faktoren wie die erweiterte Skalierbarkeit (sowohl im Hinblick auf die Last durch gleichzeitige Benutzer als auch das Datenvolumen insgesamt), Kosteneinsparungen, Flexibilität bezüglich der Plattform sowie die verfügbaren MySQL Funktionen veranlassen viele MySQL Kunden, einige oder alle Ihrer Access-Anwendungen nach MySQL zu migrieren. In diesem Whitepaper werden die ersten Schritte bei der Verwendung von Microsoft Access-Front-Ends mit MySQL erläutert.

Gründe für MySQL auf Microsoft Windows

MySQL ist aufgrund der folgenden Merkmale eine ausgezeichnete Option auf der Windows-Plattform:

• Geringere Gesamtbetriebskosten • Benutzerfreundlichkeit • Zuverlässigkeit • Leistung • Datenbank mit vollem Funktionsumfang und ohne funktionale Einschränkungen

Die große Popularität von MySQL zeigt sich auch in der Anzahl der Microsoft-bezogenen Downloads für den MySQL Server, die MySQL Werkzeuge und die MySQL Konnektoren auf mysql.com. In den ersten sechs Monaten im Jahr 2009 wurden durchschnittlich sage und schreibe 45.000 Downloads pro Tag registriert.

Was ist Microsoft Office Access?

Bei Microsoft Office Access, früher Microsoft Access (kurz: MS Access), handelt es sich um ein Verwaltungssystem für relationale Datenbanken aus dem Hause Microsoft, in dem die relationale Microsoft Jet-Datenbankengine mit einer grafischen Benutzeroberfläche und Werkzeugen zur Softwareentwicklung kombiniert wird. Access ist sowohl als Bestandteil von Microsoft Office-Professional und- höheren Versionen als auch separat erhältlich.1

Gründe für die Nutzung von Access-Front-Ends mit MySQL

Unsere im Jahr 2009 durchgeführte Kunden- und Benutzerumfrage hat gezeigt, dass ca. 20% der Unternehmen sowohl MySQL als auch Access verwenden. Auf die Frage, ob der Einsatz dieser Lösungen erweitert würde, gaben jedoch ca. 75% dieser Organisationen an, ihre Access-Bereitstellungen nicht erweitern zu wollen, während über 60% die Erweiterung ihrer MySQL Bereitstellungen planten. Folglich kann davon ausgegangen werden, dass innerhalb von Unternehmen, die mit beiden Produkten vertraut sind, MySQL im Vergleich zu Access die überzeugenderen Vorteile bietet.

Wenngleich Microsoft Access nicht als „Lite“-Datenbank bezeichnet wird, kommt dieses Produkt üblicherweise für Low-End-Anwendungen zum Einsatz. Zudem weist MS Access einige

1 http://en.wikipedia.org/wiki/Microsoft_Access

Page 5: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 5

Einschränkungen auf, die es bei MySQL nicht gibt. Im Folgenden sind einige relevante Schwachstellen von Microsoft Access aufgeführt, die berücksichtigt werden sollten:

• Access unterstützt Datenbanken mit maximal 2 GB, MySQL ermöglicht eine Skalierung auf mehrere TB.

• Access kann keine große Anzahl an gleichzeitigen Benutzern verarbeiten, mit MySQL ist eine Verarbeitung von Tausenden gleichzeitiger Benutzer möglich.

• Dateidatenbanken wie Access machen nicht von moderner Hardware mit einer Vielzahl von CPUs oder Kernen Gebrauch. MySQL hingegen nutzt die Vorteile heutiger Hardwareprodukte, um einen hochleistungsfähigen Datenbankserver bereitzustellen.

• Im Hinblick auf den Schutz von Daten bietet Access für geöffnete Datenbanken und/oder während des Datenbankzugriffs durch Benutzer keine Sicherungsmöglichkeiten. MySQL bietet verschiedene Sicherungsoptionen, während Benutzer mit der Datenbank verbunden sind und auf diese zugreifen.

Weitere Informationen zu den Einschränkungen von Access 2007 finden Sie unter der folgenden Adresse: http://blogs.msdn.com/access/archive/2006/06/05/access-2007-limits.aspx Obwohl Access typischerweise in einfachen Desktopumgebungen bereitgestellt wird, werden die Datenbank und/oder Anwendungen häufig erweitert, sodass später die oben genannten Einschränkungen zu einem Problem werden können. Um nicht nachträglich von Access zu einem anderen Datenbank-Verwaltungssystem wechseln zu müssen, empfiehlt sich daher häufig von Anfang an die Bereitstellung einer Datenbank wie MySQL, mit der sich auch zukünftige Anwendungsanforderungen erfüllen lassen.

Umfang und Zweck dieses Leitfadens

In diesem Leitfaden werden die grundlegenden Schritte für die Migration der Beispielanwendung Northwind nach MySQL beschrieben, die Sie unter http://office.microsoft.com/en-us/templates/TC012289971033.aspx?CategoryID=CT101428651033 herunterladen können. Da für jede Migration spezielle Merkmale gelten und individuelle Herausforderungen erfüllt werden müssen, sollten Sie zusätzlich die folgenden Quellen studieren: A Guide to Migrating From Microsoft Access to MySQL http://www.mysql.com/why-mysql/white-papers/mysql_wp_migrate-from-access.php MySQL Forum: Migration from Microsoft Access http://forums.mysql.com/list.php?65 Darüber hinaus sollten Sie wissen, dass Access Abfragen auf MySQL Tabellen nicht unterschiedlich behandelt wie den Zugriff auf Access-Tabellen. Daher müssen beim Schreiben neuer Abfragen oder bei der Anpassung für migrierte Elemente spezielle Aspekte berücksichtigt werden.

Schritt 1: Installieren und Konfigurieren von MySQL

Installieren von MySQL 5.1

Zunächst benötigen Sie eine Kopie einer aktuellen Version von MySQL, die Sie unter folgender Adresse finden: http://www.mysql.de/downloads/

Page 6: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 6

Einzelheiten zur Installation von MySQL auf Windows finden Sie in folgendem Leitfaden: A Visual Guide to Installing MySQL on Windows

http://www.mysql.com/why-mysql/white-papers/visual_guide_to_installing_mysql_windows.php Erstellen einer leeren Datenbank

Erstellen Sie mithilfe Ihres bevorzugten grafischen MySQL Administrationswerkzeugs oder über den MySQL Befehlszeilenwerkzeug eine leere Datenbank northwind. mysql> create database northwind;

Schritt 2: Konfigurieren des ODBC-Treibers

Der MySQL ODBC-Konnektor bietet Konnektivität zwischen Access und MySQL. Der aktuelle ODBC-Konnektor kann unter der folgenden Adresse heruntergeladen werden: http://dev.mysql.com/downloads/connector/odbc/5.1.html#win32

Führen Sie das Installationsprogramm aus. (Für die Zwecke dieses Leitfadens ist eine typische Installation ausreichend.) Konfigurieren Sie anschließend mit dem Microsoft ODBC–Administrator die Datenquelle. Klicken Sie auf der Registerkarte Datei-DSN auf Hinzufügen (Add).

Suchen Sie in der angezeigten Liste den MySQL ODBC 5.1 Driver und geben Sie einen Namen für die DSN-Datei ein. In diesem Beispiel wurde localhost verwendet.

Konfigurieren Sie schließlich die Connector/ODBC-Verbindung. Geben Sie als Server localhost sowie die Anmeldeinformationen an, und wählen Sie als Datenbank northwind.

Page 7: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 7

Schritt 3: Exportieren von Tabellen und Daten aus der Datenbank „Northwind“ nach MySQL

Verwenden von Access zur Migration einzelner Tabellen

Für Access-Datenbanken mit einer geringen Tabellenanzahl kann der in Access 2007 integrierte Objektexporter verwendet werden. Da mit diesem Assistenten jedoch lediglich einzelne Tabellen exportiert werden können, ist er für Access-Datenbanken mit einer Vielzahl an Tabellen möglicherweise nicht geeignet.

Wählen Sie eine Tabelle für den Export aus, in diesem Beispiel wurde Employees ausgewählt. Wählen Sie anschließend auf der Registerkarte Externe Daten (External Data) in der Gruppe Exportieren (Export) die Option Weitere (More) und dann ODBC-Datenbank (ODBC Database).

Geben Sie einen Namen für die in der MySQL Datenbank zu erstellende Tabelle ein, in diesem Fall wurde derselbe Name gewählt: Employees.

Wählen Sie die ODBC-Verbindung für MySQL aus. In diesem Beispiel wird die zuvor konfigurierte Datenquelle localhost verwendet.

Abhängig von der Konfiguration Ihres ODBC-Treibers können Sie möglicherweise auch über die Registerkarte Computerdatenquelle (Machine Data Source) eine Verbindung erstellen.

Page 8: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 8

Geben Sie die Anmeldeinformationen für die MySQL Verbindung an, wählen Sie als Datenbank northwind, klicken Sie auf Details, und wählen Sie die geeigneten Flags aus. In diesem Beispiel wurden Return matched rows instead of affected rows und Allow big result sets ausgewählt. Anschließend können Sie die Exporteinstellungen bei Bedarf speichern.

Stellen Sie über den Befehl SHOW TABLES sicher, dass die Tabelle erstellt wurde.

Stellen Sie mithilfe des Befehls SELECT COUNT(*) FROM employees und über einen Vergleich der Zeilenanzahl in Access sicher, dass die Daten erfolgreich exportiert wurden.

MySQL Partnerlösungen für Access-Migrationen

Für erweiterte Migrationen von Access-Datenbanken nach MySQL, die über die von Access nativ unterstützte Migration einzelner Tabellen hinausgehen, sind verschiedene kommerzielle und freie Werkzeuge verfügbar. Einen guten Ausgangspunkt bei der Ermittlung einer geeigneten Lösung stellt die MySQL Website mit Partnerlösungen dar, auf die Sie über die folgende Adresse zugreifen: http://solutions.mysql.com/solutions/

Page 9: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 9

Zu diesen Lösungen zählen u.a.:

• DBConvert for MS Access and MySQL • DBForms from MS Access to PHP + MySQL • DBSync for Access and MySQL

Migrieren mehrerer Tabellen mit Access to MySQL

Zum Ausführen der nachfolgenden Migrationsaufgaben in diesem Whitepaper wurde das Programm Access to MySQL (Freeware) von Bullzip gewählt, das unter der folgenden Adresse heruntergeladen werden kann: http://www.bullzip.com/download.php Wenngleich der Arbeitsablauf und die Funktionen bei anderen Werkzeugen etwas abweichen können, ist der Vorgang bei allen von uns getesteten Produkten sehr ähnlich. Wechseln Sie in das entsprechende Verzeichnis, und wählen Sie die Datei northwind 2007.accdb (bzw. bei Verwendung einer älteren Version von Access die MDB-Datei) aus.

Wählen Sie die MySQL Zieldatenbank, in diesem Fall northwind, geben Sie die Anmeldeinformationen für die Verbindung an, und wählen Sie entweder Direct transfer oder Create dump file.

Page 10: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 10

Wählen Sie anschließend alle Tabellen aus, deaktivieren Sie jedoch die folgenden Spalten, die zum Vermeiden von Problemen mit Standardwerten erst nach der Migration erstellt werden.2

• Inventory Transactions Transaction Created Date Transaction Modified Date

• Invoices

Invoice Date • Orders

Order Date • Purchase Orders

Creation Date Stellen Sie bei der Auswahl der geeigneten Migrationsoptionen sicher, Indizes und Standardwerte auszuwählen.

2 Mit der Access 2007-Version der Beispieldatenbank Northwind wurde eine Inkompatibilität im Hinblick auf Standardwerte eingeführt. Insbesondere kann der MySQL Datentyp DATETIME nicht mit der Funktion NOW() als Standardwert verwendet werden. Weitere Informationen zu diesem Problem finden Sie unter folgenden Adressen: http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html http://bugs.mysql.com/bug.php?id=27645

Page 11: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 11

Überprüfen Sie die Konvertierungs-ergebnisse, und wählen Sie Exit. Hinzufügen fehlender Spalten mit den geeigneten Standardwerten

Erstellen Sie die zuvor ausgeschlossenen Spalten mithilfe der folgenden Anweisungen oder über Ihr bevorzugtes MySQL Administrationswerkzeug: ALTER TABLE `northwind`.`inventory transactions` ADD COLUMN `Transaction Created Date` TIMESTAMP DEFAULT '0000-00-00 00:00:00', ADD COLUMN `Transaction Modified Date` TIMESTAMP DEFAULT NOW() ON UPDATE NOW(); ALTER TABLE `northwind`.`invoices` ADD COLUMN `Invoice Date` TIMESTAMP DEFAULT NOW() NULL ; ALTER TABLE `northwind`.`orders` ADD COLUMN `Order Date` TIMESTAMP DEFAULT NOW() NULL ; ALTER TABLE `northwind`.`purchase orders` ADD COLUMN `Creation Date` TIMESTAMP DEFAULT NOW() NULL ;

Page 12: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 12

An dieser Stelle können Sie mithilfe Ihres bevorzugten MySQL Administrationswerkzeugs verifizieren, dass Tabellen, Zeilenanzahlen und Indizes korrekt sind.

Schritt 4: Erstellen von Tabellenbeziehungen

In der MySQL Version der Datenbank Northwind müssen die folgenden Beziehungen der ursprünglichen Access-Datenbank Northwind erstellt werden:

suppliers.IDpurchase orders.Supplier ID

shippers.IDorders.Shipper ID

employees.IDpurchase orders.employees

purchase order status.Status IDpurchase orders.Status ID

purchase orders.Purchase Order IDpurchase order details.Purchase Order ID

purchase orders.Purchase Order IDinventory transactions.Purchase Order ID

employees.IDpurchase orders.Created By

inventory transactions.Transaction IDpurchase order details.Inventory ID

products.IDpurchase order details.Product ID

products.IDinventory transactions.Product ID

products.IDorder details.Product ID

privileges.Privilege IDemployee privileges.Privilege ID

orders tax status.IDorders.Tax Status

orders status.Status IDorders.Status ID

orders.Order IDinvoices.Order ID

customers.IDorders.Customer ID

orders.Order IDorder details.Order ID

employees.IDorders.Employee ID

orders.Order IDinventory transactions.Customer Order ID

order details status.Status IDorder details.status ID

inventory transaction types.IDinventory transactions.Transaction Type

employees.IDemployee privileges.employee ID

Primary Key Table.Target ColumnForeign Key Table.Source Column

suppliers.IDpurchase orders.Supplier ID

shippers.IDorders.Shipper ID

employees.IDpurchase orders.employees

purchase order status.Status IDpurchase orders.Status ID

purchase orders.Purchase Order IDpurchase order details.Purchase Order ID

purchase orders.Purchase Order IDinventory transactions.Purchase Order ID

employees.IDpurchase orders.Created By

inventory transactions.Transaction IDpurchase order details.Inventory ID

products.IDpurchase order details.Product ID

products.IDinventory transactions.Product ID

products.IDorder details.Product ID

privileges.Privilege IDemployee privileges.Privilege ID

orders tax status.IDorders.Tax Status

orders status.Status IDorders.Status ID

orders.Order IDinvoices.Order ID

customers.IDorders.Customer ID

orders.Order IDorder details.Order ID

employees.IDorders.Employee ID

orders.Order IDinventory transactions.Customer Order ID

order details status.Status IDorder details.status ID

inventory transaction types.IDinventory transactions.Transaction Type

employees.IDemployee privileges.employee ID

Primary Key Table.Target ColumnForeign Key Table.Source Column

Zum Wiederherstellen der bei der anfänglichen Migration verloren gegangenen Beziehungen können Sie Ihr bevorzugtes MySQL GUI-Werkzeug verwenden oder einfach die unten stehenden DDL-Anweisungen ausführen. ALTER TABLE `northwind`.`employee privileges` ADD CONSTRAINT `FK_employee privileges` FOREIGN KEY (`Employee ID`) REFERENCES `employees` (`ID`); ALTER TABLE `northwind`.`inventory transactions` ADD CONSTRAINT `FK_inventory

Page 13: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 13

transactions` FOREIGN KEY (`Transaction Type`) REFERENCES `inventory transaction types` (`ID`); ALTER TABLE `northwind`.`order details` ADD CONSTRAINT `FK_order details` FOREIGN KEY (`Status ID`) REFERENCES `order details status` (`Status ID`); ALTER TABLE `northwind`.`inventory transactions` ADD CONSTRAINT `FK_inventory transactions_ord` FOREIGN KEY (`Customer Order ID`) REFERENCES `orders` (`Order ID`); ALTER TABLE `northwind`.`orders` ADD CONSTRAINT `FK_orders_employees` FOREIGN KEY (`Employee ID`) REFERENCES `employees` (`ID`); ALTER TABLE `northwind`.`order details` ADD CONSTRAINT `FK_order details_orders` FOREIGN KEY (`Order ID`) REFERENCES `orders` (`Order ID`) ON DELETE CASCADE ; ALTER TABLE `northwind`.`orders` ADD CONSTRAINT `FK_orders_customers` FOREIGN KEY (`Customer ID`) REFERENCES `customers` (`ID`); ALTER TABLE `northwind`.`invoices` ADD CONSTRAINT `FK_invoices_orders` FOREIGN KEY (`Order ID`) REFERENCES `orders` (`Order ID`) ON DELETE CASCADE ; ALTER TABLE `northwind`.`orders` ADD CONSTRAINT `FK_orders_orders_status` FOREIGN KEY (`Status ID`) REFERENCES `orders status` (`Status ID`); ALTER TABLE `northwind`.`orders` ADD CONSTRAINT `FK_orders` FOREIGN KEY (`Tax Status`) REFERENCES `orders tax status` (`ID`); ALTER TABLE `northwind`.`employee privileges` ADD CONSTRAINT `FK_employee privileges_privileges` FOREIGN KEY (`Privilege ID`) REFERENCES `privileges` (`Privilege ID`); ALTER TABLE `northwind`.`order details` ADD CONSTRAINT `FK_order details_products` FOREIGN KEY (`Product ID`) REFERENCES `products` (`ID`); ALTER TABLE `northwind`.`inventory transactions` ADD CONSTRAINT `FK_inventory transactions_products` FOREIGN KEY (`Product ID`) REFERENCES `products` (`ID`); ALTER TABLE `northwind`.`purchase order details` ADD CONSTRAINT `FK_purchase order details_products` FOREIGN KEY (`Product ID`) REFERENCES `products` (`ID`); ALTER TABLE `northwind`.`purchase order details` ADD CONSTRAINT `FK_purchase order details_inventory_transactions` FOREIGN KEY (`Inventory ID`) REFERENCES `inventory transactions` (`Transaction ID`); ALTER TABLE `northwind`.`purchase orders` ADD CONSTRAINT `FK_purchase orders_employees` FOREIGN KEY (`Created By`) REFERENCES `employees` (`ID`); ALTER TABLE `northwind`.`inventory transactions` ADD CONSTRAINT `FK_inventory transactions_purchase_orders` FOREIGN KEY (`Purchase Order ID`) REFERENCES `purchase orders` (`Purchase Order ID`); ALTER TABLE `northwind`.`purchase order details` ADD CONSTRAINT `FK_purchase order details_purchase_orders` FOREIGN KEY (`Purchase Order ID`) REFERENCES `purchase orders` (`Purchase Order ID`) ON DELETE CASCADE ; ALTER TABLE `northwind`.`purchase orders` ADD CONSTRAINT `FK_purchase orders_purchase_orders_status` FOREIGN KEY (`Status ID`) REFERENCES `purchase order status` (`Status ID`); ALTER TABLE `northwind`.`purchase orders` ADD CONSTRAINT `FK_purchase orders_employees_ID` FOREIGN KEY (`Created By`) REFERENCES `employees` (`ID`); ALTER TABLE `northwind`.`orders` ADD CONSTRAINT `FK_orders_shippers` FOREIGN KEY (`Shipper ID`) REFERENCES `shippers` (`ID`); ALTER TABLE `northwind`.`purchase orders` ADD CONSTRAINT `FK_purchase orders_suppliers` FOREIGN KEY (`Supplier ID`) REFERENCES `suppliers` (`ID`);

Page 14: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 14

Schritt 5: Erstellen einer neuen Access-Datenbank

Erstellen Sie in Access eine neue Datenbank. In diesem Beispiel wurde der Name mysql_northwind gewählt.

Page 15: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 15

Entfernen Sie sämtliche Standardobjekte, um einen leere Datenbank zu erhalten.

Schritt 6: Verknüpfen der MySQL Tabellen mit Access

Wählen Sie auf der Registerkarte Externe Daten (External Data) in der Gruppe Importieren (Import) die Option Weitere (More) und dann ODBC-Datenbank (ODBC Database).

Wählen Sie die Option Erstellen Sie eine Verknüpfung zur Datenquelle in dem Sie eine verknüpfte Tabelle erstellen.

Page 16: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 16

Wählen Sie die ODBC-Verbindung für MySQL. In diesem Beispiel wird die zuvor konfigurierte Datenquelle localhost verwendet. Geben Sie die Anmeldeinformationen für die MySQL Verbindung an, wählen Sie als Datenbank northwind, und wählen Sie die geeigneten Flags aus. In diesem Beispiel wurden Return matched rows instead of affected rows und Allow big result sets ausgewählt.

Page 17: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 17

Wählen Sie sämtliche Tabellen aus, und aktivieren Sie gegebenenfalls das Kontrollkästchen Save password (wenngleich diese Option weniger Sicherheit bietet).

Sämtliche MySQL Tabellen sollten nun innerhalb von Access verknüpft sein. An dieser Stelle können Sie überprüfen, ob die Tabellen und Beziehungen korrekt sind.

Page 18: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 18

Schritt 7: Importieren von Abfragen, Formularen, Berichten, Makros und Modulen

Wählen Sie auf der Registerkarte Externe Daten (External Data) in der Gruppe Importieren (Import) die Option Access. Wechseln Sie in das entsprechende Verzeichnis, und wählen Sie die ursprüngliche Datei Northwind 2007.accdb sowie die Option Importieren Sie Tabellen, Abfragen, Formulare, Berichte, Makros und Module in die aktuelle Datenbank (Import tables, queries, forms, reports, macros, and modules into the current database) aus.

Heben Sie die Auswahl für sämtliche Tabellen auf, da diese bereits im vorherigen Schritt in MySQL verknüpft wurden.

Wählen Sie auf der Registerkarte Abfragen (Queries) sämtliche Abfragen aus, und wählen Sie die geeigneten Optionen unter Importieren (Import). Für unsere Zwecke wurden alle Importoptionen ausgewählt. Wählen Sie gleichermaßen auf den Registerkarten Formulare (Froms), Berichte (Reports), Makros (Macros) und Module (Modules) alle Elemente aus. Speichern Sie die Importoptionen bei Bedarf.

Page 19: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 19

Alle importierten Objekte sollten nun in Access angezeigt werden. Die Gruppierung der Objekte sollte mit der ursprünglichen Datenbank Northwind identisch sein – mit der Ausnahme, dass es sich bei den Tabellen nun um verknüpfte Tabellen in MySQL handelt.

Page 20: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 20

Schritt 8: Erste Anwendungstest

Testen der Funktionalität

An dieser Stelle sollten Sie überprüfen, ob all Ihre Formulare, Abfragen und Berichte die gewünschten Ergebnisse zurückgeben und gültige Eingaben akzeptieren. Beispiel: Eingeben eines neuen Mitarbeiters

Geben Sie für den ersten Test über das Formular Employee Details einen neuen Mitarbeiterdatensatz ein.

Doppelklicken Sie auf das Formular Employee List. Es sollten insgesamt zehn Einträge angezeigt werden.

Page 21: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 21

Diese Daten können auch mit einer einfachen select-Anweisung über den MySQL Client überprüft werden.

Schritt 9: Erweiterte Konfiguration

Datentypzuordnungen

Abhängig von der gewählten Migrationsmethode für Ihre Tabellen und die zugehörigen Definitionen wurden wahrscheinlich Änderungen an den ursprünglichen Access-Datentypen vorgenommen. Stellen Sie sicher, dass die vorgenommenen Datentypkonvertierungen für Ihre Anwendung geeignet sind. Im Folgenden sind einige empfohlene Zuordnungen von Access-Datentypen zu MySQL Datentypen aufgeführt.

Access Datentyp Vorgeschlagener MySQL Datentyp AUTONUMBER AUTO_INCREMENT

BINARY(SIZE) BINARY

BYTE TINYINT CURRENCY NUMERIC OR DECIMAL

DATE DATE OR DATETIME DECIMAL DECIMAL DOUBLE FLOAT

GUID IDENTITY COLUMN INTEGER SMALLINT

LONGBINARY VARBINARY LONG INTEGER INT OR BIGINT

MEMO VARCHAR(SIZE) OR TEXT SINGLE REAL TEXT VARCHAR(SIZE)

YESNO TINYINT

Page 22: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 22

Funktionszuordnungen

Neben der Überprüfung der Datentypen im Anschluss an die Migration sollten Sie auch sicherstellen, dass die migrierten Funktionen für Ihre Anwendung geeignet sind. Die folgende Tabelle zeigt häufig verwendete Access-Funktionen und ihre empfohlenen MySQL Äquivalente.

Access Funktion

Vorgeschlagene MySQL

Funktion asc ascii ccur convert(decimal) cdbl convert(float) chr char chr$ char cint convert(smallint) clng convert(int) csng convert(real) cstr convert(varchar)

cvdate convert(datetime/date)

date convert or cast day day hour hour int floor

lcase lower lcase$ lower

len length ltrim$ ltrim mid substr or substring mid$ substr or substring

month month now() now() minute minute rtrim$ rtrim right$ right sgn sign

second second space space time() time str$ strcmp

ucase upper ucase$ upper

weekday dayofweek year year

Page 23: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 23

MySQL unter Windows – Anwenderberichte

Die folgenden Beispiele zeigen, wie MySQL Kunden durch die Ausführung von MySQL auf Windows geringere Gesamtbetriebskosten erzielen. Adobe verlässt sich auf MySQL, um Creative Experten effizienteres Arbeiten zu ermöglichen

Adobe Systems gehört zu den größten Softwareunternehmen und ist führender Anbieter von Werkzeugen in den Bereichen Print, Internet, Video, Film sowie für interaktive Inhalte und mobile Geräte. Adobe integriert MySQL in verschiedenen Adobe Creative Suite 3-Komponenten wie z.B. Adobe Acrobat CS3, Adobe® Bridge CS3 und Adobe® Version Cue® CS3. Dies ermöglicht Arbeitsgruppen ein effizienteres Arbeiten bei komplexen Projekten. Weitere Informationen erhalten Sie unter: http://www.mysql.com/why-mysql/case-studies/MySQL_CaseStudy_Adobe.pdf NetQoS liefert Lösung für die verteilte Netzwerkverwaltung mit integriertem MySQL

NetQoS stellt Produkte und Dienste zur Verfügung, mit denen einige der anspruchsvollsten Unternehmen weltweit ihre Netzwerkleistung verbessern können. American Express, Barclays, Boeing, Chevron, Cisco, Citrix, DuPont, Sara Lee und Schlumberger gehören zu den Unternehmen, die die Lösungen von NetQoS zur Leistungsverwaltung verwenden, um eine konsistente Bereitstellung von geschäftskritischen Anwendungen zu gewährleisten, Servicelevels der Anwendungen zu überwachen, Probleme schnell zu beheben, Infrastrukturkosten einzudämmen und die Erwartungshaltung der Benutzer auszuwerten. Um eine geeignete integrierte Datenbanklösung zu finden, die zur innovativen Produktarchitektur von NetQoS passt, wurden alle Arten von Flatfile-Datenbanken bis zu proprietären Datenbanken ausgewertet. Dabei hat NetQoS festgestellt, dass MySQL eine ideale Kombination aus Leistung, Zuverlässigkeit und einfacher Verwaltung unter Windows bietet. Weitere Informationen erhalten Sie unter: http://www.mysql.com/why-mysql/case-studies/mysql-netqos-casestudy.pdf Eine vollständige Liste der Anwenderberichte und weitere Artikel zu Unternehmen, die MySQL unter Windows verwenden, erhalten Sie unter: http://www.mysql.de/customers/operatingsystem/?id=109

Fazit

In diesem Whitepaper wurden die ersten Schritte zur Migration einer vorhandenen Access-Anwendung für die Verwendung von MySQL als Back-End-Datenbank beschrieben. Wenngleich jede Migration mit individuellen Herausforderungen einhergeht, bietet die Migration von Access nach MySQL eine Vielzahl von Vorteilen für Administratoren und Benutzer. Viele Aspekte des Migrationsvorgangs lassen sich vereinfachen, wenn Sie die Einschränkungen und funktionalen Äquivalente der beiden Produkte kennen. Zusammenfassend lässt sich sagen, dass überzeugende Faktoren wie die erweiterte Skalierbarkeit (sowohl im Hinblick auf die Last durch gleichzeitige Benutzer als auch das Datenvolumen insgesamt), Kosteneinsparungen, Flexibilität bezüglich der Plattform sowie die verfügbaren MySQL Funktionen viele MySQL Kunden dazu veranlasst haben, einige oder alle Ihre Access-Anwendungen auf den MySQL Datenbankserver zu migrieren.

Page 24: Access Front Ends With MySQL.de

Copyright © 2010, Sun Microsystems 24

Weitere Informationsquellen

Whitepaper

http://www.mysql.de/why-mysql/white-papers/ Anwenderberichte

http://www.mysql.de/why-mysql/case-studies/ Pressemitteilungen und Neuheiten

http://www.mysql.de/news-and-events/ Webseminare

http://www.mysql.de/news-and-events/web-seminars/ Webseminar-Mitschnitte

http://www.mysql.de/news-and-events/on-demand-webinars/

Über MySQL

MySQL ist die beliebteste Open-Source-Datenbank der Welt. Viele große und schnell wachsende Unternehmen wie Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube, Siemens und neckermann.de erzielen deutliche Kosten- und Zeiteinsparungen durch den Einsatz von MySQL als Grundlage für hochfrequentierte Websites, geschäftskritische Systeme und Softwarepakete. Unter http://www.mysql.de stellt Sun kommerzielle Abonnements und Dienste für Unternehmensanwender bereit und bietet aktive Unterstützung für die große MySQL Community der Open-Source-Entwickler. Weitere Einzelheiten dazu, wie Sie die zukunftsweisenden Webfunktionen der Sun Lösungen nutzen können, finden Sie unter http://www.sun.com/web.