Wer glaubt, dass Access im Bereich Datenbanken und Anwendungen keine Bedeutung hat, der irrt sich. Es hat sich vieles Verändert. Eine Integration von Access 2010 Lösungen in SharePoint 2010 Umgebungen ist mit den Access Services in wenigen Schritten möglich.

  • Tw1tt3r
  • L1nk3dIn

Microsoft hat mit diesem Release vom SharePoint Server 2010 die Messlatte noch einmal nach oben gesetzt. In der Beta2 konnte vieles schon angesehen und getestet werden. Fast alle Funktionen liefen Fehlerfrei. Die Erfahrungen von Partnern, Testern und früh eingebundenen Kunden haben dazu beigetragen, dass dieses Produkt in Sachen Bedienbarkeit und Funktionalität große Schritte gemacht hat.
Neben den Business Connectivity Services und FAST Search was wirklich mit die wichtigsten Neuerungen sind, betritt Microsoft Access 2010 mit den Access Services das Spielfeld. Eine Anwendersoftware, die von einer Mehrheit von IT Spezialisten belächelt, sogar gemieden wird.

Die einfache Bedienung von Microsoft Access sorgte in der Vergangenheit schon immer dafür, dass auch Fachabteilungen in der Lage waren, Desktop Datenbank-Anwendungen zu erschaffen, ohne dass die IT involviert war – sozusagen unter dem Radar der IT.

Grundsätzlich ist dieser Gedanke für viele sehr verlockend – Fachanwendungen ohne die IT – aber Themen wie Wartung, Skalierbarkeit und Sicherheit sind ohne IT schwer bis überhaupt nicht zu meistern.
Zum Leid mancher Anwender erfordern diese wichtigen Themen, dass ein Entwickler oder IT Spezialist mit einbezogen wird, was dazu führt, dass diese Themen bei den Fachabteilungen in den Hintergrund treten und die Access Lösung “Nackt” ausgerollt wird – auch ohne das die IT hiervon was Weiß, oder weil es einfach Billiger ist.
Mit Microsoft Access 2010 und den Access Services ändert sich jetzt eine ganze Menge. Mit neuen und verbesserten Funktionen wurden Schwachstellen und potenzielle KO Kriterien beiseite geräumt.
Die Zusammenarbeit mit dem SharePoint Server 2010 macht aus Access 2010 ein Werkzeug, das unglaublich effizient ist, wenn es um Dateneingabe und Verarbeitungsszenarien geht.
Zuvor war Microsoft Access in wenigen Fällen das korrekte Werkzeug, um Unternehmensweite Lösungen zu realisieren. Mit Microsoft Access 2010 und den Access Services sind wir in der Lage ansprechende Oberflächen für Dateneingabe und Datenverarbeitung zu schaffen, die in einer SharePoint Umgebung leben und sich wie richtige Client Anwendungen verhalten und anfühlen.

Es profitieren nicht nur die Fachabteilungen von der neuen Version und dessen Möglichkeiten, sondern auch der IT Architekt oder IT Spezialist, der sich gegebenenfalls auch mit anderen Techniken und .NET Programmiersprachen auskennt und weiß wie die Access Services bei Projekten ins Bild passen. Nicht immer ist nur die eine Technologie bei der Realisierung von Projekten entscheidend. In der Regel treffen auch schon bei kleinen Projekten mehrere Technologien aufeinander, daher ist es wichtig, die Vorteile und Verwendbarkeit jeder Schlüsseltechnologie zu kennen.

Einrichten einer Virtuellen Office 2010 und SharePoint 2010 Umgebung

  • Tw1tt3r
  • L1nk3dIn

Wer nicht viel Zeit in die Installation einer SharePoint Umgebung stecken möchte, kann unter dem Link SharePoint RTM eine Komplette Umgebung herunterladen. Die Information Worker Umgebung gab es für die Beta2 und wurde auch für die RTM Version bereitgestellt. Insgesamt besteht das Packet aus 2 virtualisierten Servern, wobei der zweite nicht dringend benötigt wird, falls auf die Mail Funktionalität verzichtet werden kann.

Zur Information Worker Umgebung gibt es ein Konzept von Microsoft, dessen Sinn und Zweck darin besteht, dass sich insbesondere Microsoft Partner auf die Produkte spezialisieren können, um anschließend beim Kunden durch gute Kenntnisse in den relevanten Technologien und eventuell auch mit einer Demonstration zu überzeugen.

Da die Ansprüche an die Technik und deren Konzepte stetig steigen, bewegen wir uns vom traditionellen Arbeitsplatz hin zum virtuellen Büro. Integrierte Kommunikation, Zusammenarbeit in Teams und Mobilität sind die Mittel um den Unternehmenserfolg zu steigern, denn heute kommt es darauf an, wie gut und schnell einzelne Mitarbeiter miteinander arbeiten um zu einem Ergebnis zu kommen. Um diesen Weg mitzugehen, werden die Werkzeuge immer Komplexer, aber auch komplizierter. Es wird immer wichtiger die Rolle eines Architekten zu würdigen, der das Zusammenspiel verschiedener Technologien beherrscht und für eine Lösung die richtige Kombination bzw. Auswahl an Technologien treffen kann. Als SharePoint Experte oder SharePoint interessierte ist dies ist eine große Chance den SharePoint Server 2010 im Einsatz mit den aktuell erschienen Microsoft Produkten komplett konfiguriert zu erleben.

Für unsere Zwecke ist es wichtig, dass die Umgebung mit dem Reporting Services AddIn ausgestattet ist. Wer mehr machen möchte, kann sich auf eine Contoso Umgebung, samt 200 fertigen Domain Usern freuen. Contoso ist der Name einer Fiktiven Firma in der sich jeder interessierte mit sehr realistischen Daten und Konfiguration austoben kann.

Aber damit nicht genug, folgende Produkte sind installiert und konfiguriert.

  • Microsoft SQL Server 2008 R2 Enterprise Edition with Analysis, Notification, and Reporting Services
  • Microsoft Office Communication Server 2007 R2
  • Microsoft Visual Studio 2010
  • Microsoft SharePoint Server 2010 Enterprise Edition
  • Microsoft Office Web Applications
  • Microsoft FAST Search for SharePoint 2010
  • Microsoft Project Server 2010
  • Microsoft Office Professional Plus 2010
  • Microsoft Visio 2010
  • Microsoft Project 2010
  • Microsoft Office Communicator 2007 R2

Die Laufzeit nach der Aktivierung beträgt 180 Tage. Praktisch beinhaltet die Information Worker Umgebung alles rund um die Themen:

  • Data Visualization
  • Enterprise Content Management (ECM) and Forms
  • Enterprise Project Management
  • Office Solutions Development
  • Office Systems Deployment
  • Portals and Collaboration
  • Search

Die Voraussetzungen für diese Umgebung sind ansehnlich.

  • Betriebssystem Windows Server 2008R2
  • Arbeitsspeicher 8GB
  • Festplattenplatz 50GB

Die gute Nachricht ist, dass SharePoint 2010 auch auf Windows7 oder Vista64 installierbar ist. Da wir die Reporting Services nutzen, sollten diese mit installiert werden. Wichtig ist, dass der SharePoint Server 2010 erst nach dem Reporting Services installiert wird, da der Aufwand einer nachträglichen Installation um einiges höher ist.

  • Tw1tt3r
  • L1nk3dIn

Die Access Services

  • Tw1tt3r
  • L1nk3dIn

Mit den Access Services wurde der Traum, eine Access Anwendung vom Client ins Web zu bringen, wobei alle Vorteile erhalten blieben, die Microsoft Access als RAD (Rapid Application Development) Tool auszeichnen, Wirklichkeit.
Mit Access 2007 wurden bereits die ersten Schritte unternommen, um mit SharePoint 2007 eine Plattform für Access Datenbanken anzubieten. Leider kamen Themen wie Datenintegrität, Geschwindigkeit, Web Formulare, Reports und die Wartbarkeit zu kurz.
Mit den Access Services und Access 2010 wurden viele Neuerungen und Verbesserungen umgesetzt.
Die Ladezeit von Access Datenbanken wurde durch asynchrone Datenübertragung verbessert. Die Daten werden im Hintergrund geladen und sobald die ersten Datensätze verfügbar sind, werden diese angezeigt.

Wird die Access Datenbank offline genommen, so synchronisiert diese bei erneuter Verbindung nicht die komplette Datenbank, wie das vorher der Fall war. Es werden nun nur noch die veränderten Datensätze identifiziert und abgeglichen.

Aber nicht nur das lange Laden oder der aufwendige Synchronisierungsprozess waren vielen ein Dorn im Auge, sondern auch das die Kommunikation nicht gerade ressourcenschonend war, was dazu führte, dass bei geringen Bandbreiten in bestimmten Szenarien mit Access 2007 und SharePoint 2007 nicht flüssig gearbeitet werden konnte.

Microsoft hat gelernt und dafür gesorgt, dass beispielweise die Kommunikation mit SharePoint verbessert wurde. Viele kleine Operationen werden zu großen zusammengefasst und dann dem Webservice mitgeteilt.

Aus Microsoft Kreisen hört man das Microsoft in Access 2010 und den Access Services sehr viel Investiert. Mehr als in InfoPath 2010 und den InfoPath Services und das will schon was heißen.

Für diejenigen, die die ganz schnell in das Thema einsteigen möchten, gibt es die vorgefertigten Beispiele, mit einer Hand voll Klicks ist aus einer Access Datenbank eine Browser-Fähige Anwendung geworden. In der Bildfolge wurden die einzelnen Schritte vom Sample bis zur Webanwendung dokumentiert.

Im Access Client lassen sich Vorlagen entwerfen, die auch dem reinen SharePoint Benutzer ohne Access Client, wiederum als Webseiten-Vorlage verfügbar gemacht werden können. Dafür muss eine unveröffentlichte Access Datenbank als Vorlage abgespeichert werden. Die abgespeicherte Vorlage wird dann im SharePoint Server unter Site Actions-Site Settings im Bereich Galleries als Solution abgelegt.

Nach der Aktivierung der Solution steht jedem SharePoint Benutzer, mit dem entsprechenden Rechten eine SharePoint Seite zu erstellen, dieses Webseiten-Template in der Kategorie Website Databases zur Verfügung.

Konfiguration der Access Services

Die Access Services sind in der Zentraladministration unter Application Management im Bereich Manage Service Applications konfigurierbar. Grundsätzlich ist nach der Installation des SharePoint Servers eine Änderung an den Schaltern nicht notwendig. Die einzelnen Schalter können sehr mächtig sein, es lassen sich wichtige Einstellungen im Bereich Listen und Abfragen, Anwendungs-Objekte, Sitzungsverwaltung, Speichernutzung und Templates durchführen.

Anwendungsparts

  • Tw1tt3r
  • L1nk3dIn
Um nicht jedes Mal das Rad neu zu erfinden, war es in Access 2007 möglich mit den Microsoft Access 2007 Developer Extension Access Datenbanken als Template abzuspeichern, um sogenannte ACCDT Dateien zu erstellen, welche keinen VBA Quellcode enthielten, ebenso konnten keine Formulare oder Berichte angepasst werden.

Mit Access 2010 gibt es die Anwendungsparts, eine Sammlung von Vorlagen, die fertige Datenbanken oder Feldlisten enthalten.

Um die Funktionalität von vorhandenen Access Datenbanken zu erweitern, können diese Anwendungsparts hinzugefügt werden. Es stehen von der einfachen Tabelle, Datenbankobjekte, Formulare, Berichte bis hin zu Beziehungen zur Erweiterung der Vorhandenen Access Datenbank zur Verfügung.

Neben einfachen Formularen, die das Erstellen einheitlicher Oberflächen erleichtern, gibt es auch den Anwendungspart “Aufgaben”. In diesem Anwendungspart sind mehrere Tabellen, Formulare, Makros, Abfragen, Module und Reports enthalten.

Alles schön und gut – wir sind also in der Lage auch komplexe “Bausteine” in unsere Access Datenbank zu integrieren. Wer gibt sich schon mit den vorhandenen “universellen” Vorlagen zufrieden? Was wirklich interessant sein dürfte ist die Tatsache, dass sich ganz leicht eigene Anwendungsparts zur Sammlung hinzufügen lassen. Dies ist ein großer Pluspunkt, um die wieder Verwendbarkeit von Lösungen zu ermöglichen.

Um einen eigenen Anwendungspart zu erstellen, sollte ein neues Projekt eigens für diesen Zweck angelegt werden, andernfalls kann auch ein vorhandenes herhalten. Dies sollte dann bis auf die Relevanten Elemente reduziert werden. Dieses Projekt wird dann, sobald es alle Zutaten enthält, im Menü “Speichern und Veröffentlichen” als Template abgespeichert.

Um den Vorgang abzuschließen, müssen folgende Angaben in den nachfolgenden Dialog gemacht werden:

  • Name – Name des Anwendungsparts z.B. “About Splash Screen”
  • Beschreibung – Beschreibung des Anwendungsparts
  • Kategorie – Hier kann jeder seine Anwendungsparts nach Belieben Kategorisieren
  • Symbol – Bild in der Galerie
  • Vorschau – Vorschaubild für die Vorlage
  • Primäre Tabelle – Ein Vorschlag einer Tabelle zu denen ein Benutzer eine Beziehung herstellen könnte
  • Instanziierungsformular – Das Formular, welches sich öffnet, sobald die Datenbank instanziiert wird.
  • Anwendungspart – Wenn das Kontrollkästchen aktiviert ist, so erscheint die Vorlage auch im Menü
  • Daten in Vorlage einbeziehen – Alle Tabellendaten werden in die Vorlage aufgenommen

Sobald wir fertig sind, steht dieser “Baustein oder Bausatz” als Anwendungspart zur Verfügung und kann in anderen Access Datenbanken hinzugefügt werden. Mit dem Instanziierungsformmular kann ein kleiner Mini-Installer in Form eines Formulars realisiert werden, welches dann beim erstmaligen hinzufügen des Anwendungsparts gestartet wird. Nachdem schließen des Instanziierungsformulars, wird dieses automatisch entfernt.

Datentypen Bausteine

Bausteine für Datentypen geben uns die Möglichkeit bestehende Tabellen mit weiteren Spalten auszustatten. Ein Baustein wie z.B. “Telefon” fügt einer bestehenden Tabelle die Spalten Telefon Büro, Telefon privat, Mobiltelefon und Faxnummer hinzu und kann ebenso Validierungsregeln, Lookup Spalten und Daten enthalten.
Die Bausteine erreichen und verwalten wir im Tab Felder unter dem Menü “Weitere Felder”, sobald die Tabellen Ansicht geöffnet ist. Im Bild sind die bereits vorhandenen Bausteine zu sehen.

  • Tw1tt3r
  • L1nk3dIn

Auf diesem Weg kann sich jeder Anwender durch das Markieren der entsprechenden Spalten und einem Klick auf “Auswahl als neuen Datentyp speichern” sich eigene Datentypen Bausteine anlegen und diese dann wiederverwenden, was einem Zeit im nächsten Projekt ersparen kann oder Kollegen hilft ein einheitliches Design beizubehalten.

Was noch fehlt ist, eine Unterscheidung dahingehend, dass der User für Web Datenbanken nur die entsprechend kompatiblen Bausteine bekommt und andersrum. Dies kann aber auch durch eine Kategorisierung oder bestimmtes Benennen der Bausteine erreicht werden, was für die meisten völlig ausreichend sein wird.

Die Datentypen Bausteine und die Anwendungsparts werden im Dateisystem abgelegt und können somit auf andere Anwender und Computer/Kollegen übertragen werden. Der Speicherort befindet sich hier C:\Users\[Benutzername]\AppData\Roaming\Microsoft\Templates\Access. Der Ordner ist versteckt und ist erreichbar sobald versteckte Dateien und Verzeichnisse eingeblendet werden. Werden die Vorlagen im Pfad C:\Program Files (x86)\Microsoft Office\Templates\[1031]\Access abgelegt, so sind diese Benutzer unabhängig verfügbar, wobei das Verzeichnis 1031 die deutsche Version meint.

Access Services vs InfoPath

InfoPath hat mit Access 2010 und den Access Services ernsthafte Konkurrenz bekommen. Auch wenn InfoPath 2010 die Formular-Technologie ist und bleibt, schneidet sich Access 2010 mit dem Access Services ein gutes Stück vom Kuchen ab und bietet andere Möglichkeiten Daten zu erfassen und zu verarbeiten. Das Kuchenstück ist so groß, dass alles was auf eine “Fachanwendung” hindeutet, mit den Access Services realisiert werden sollte.

Natürlich hat InfoPath auch seine Alleinstellungs-Merkmale, wie das Signieren von Formularen, das Aufwerten von SharePoint Listenformularen, das XML Dateiformat das Versenden von Eingabeformularen per Mail oder die Möglichkeit mit Schemen zu arbeiten.

Aber gerade in der Kernkompetenz von InfoPath – der Dateneingabe, kann Access durch eine sehr einfache Bedienung und hohe Flexibilität in Sachen Daten Validierung und Abbilden von Anwendungslogik Punkten. InfoPath Formulare wiegen nicht so schwer wie eine Veröffentlichte Access Datenbank, was ein Vorteil ist. Es lassen sich auch jetzt InfoPath Formulare innerhalb einer vorhandenen Seite via Webpart integrieren.

Gemessen am Access 2010 Client, sind die Neuerungen im Bereich InfoPath 2010 und den InfoPath Services allerdings überschaubar. Ein vermeintlicher Vorteil gegenüber Access ist, dass mit .NET Code gearbeitet werden kann, was in den meisten Fällen bei Entscheidungen aber eher irrelevant sein sollte, denn .NET Entwicklung ist teuer und dauert länger.

Reporting

Microsoft entschied sich für Veröffentlichte Access Datenbanken die Reporting Services zu verwenden. Die Berichte werden in RDL Dateien beschrieben, welche dann in der veröffentlichten Access Webanwendung in der SharePoint-Liste mit dem Namen “Report Definitions” zu finden sind.
RDL steht für Report Definition Language und ist eine Berichtsdefinitionssprache. Eine RDL-Datei enthält Daten im XML Format, die einen Report im SharePoint oder lokalen Report Viewer rendern und auch mit dem Texteditor bearbeitet werden könnten.
Da uns die Reporte als RDL Datei vorliegen, können diese mit dem Report Builder weiter bearbeitet, bzw. angepasst werden.

Hinweis: Bei der Installation einer SharePoint Farm ist es wichtig, dass die Reporting Services vor dem SharePoint Server installiert werden. Eine Nachträgliche Installation ist mit weitaus größerem Aufwand verbunden.

Mit der neuen Version der Reporting Services ist es nicht mehr zwingend erforderlich, diese in die SharePoint Farm zu integrieren und einen Reporting Server bereitzustellen. Zum Remote oder Connected Mode ist jetzt der Local Mode hinzugekommen. Im Local Mode werden die Reporte nicht mehr innerhalb der SharePoint Umgebung gerendert, sondern benötigen den lokalen Report Viewer um zu rendern. Reports für den Local Mode dürfen keine Benutzernamen und Passwörter enthalten, ebenso gibt es Einschränkungen, sobald mit Parametern gearbeitet wird. Es ist auch nicht mehr möglich Benachrichtigungen zu nutzen, da hierfür kein Server mehr zur Verfügung steht, der diese Funktionalität verwaltet bzw. bereitstellt.

Es ist zu empfehlen, die Reporting Services im Connected- oder Remote Mode in die SharePoint-Farm zu integrieren, um nicht auf wichtige Funktionalität verzichten zu müssen.

Verwenden der Contoso.Com Umgebung

Die Virtuelle Contoso Umgebung setzt einen Hyper-V Server, 8GB Arbeitsspeicher und 50GB Festplattenplatz voraus.

  • Tw1tt3r
  • L1nk3dIn

Idealerweise werden für die Server zwei Virtuelle Netzwerkkarten konfiguriert. Im Hyper-V Manager öffnen wir dafür den Manager für Virtuelle Netzwerke und fügen ein internes und ein externes Lan hinzu. Das Interne Lan wird mit dem Verbindungstyp “Intern” festgelegt. Anders funktioniert dies mit dem Externen oder Internet Lan, hier wird der Verbindungstyp “Extern” ausgewählt und die gemeinsame Verwendung des mit dem Internet verbundenen Netzwerkadapters angehakt.

Die beiden Server sind als Download hier zu finden. Nachdem der Download abgeschlossen ist, müssen die Server erst einmal entpackt und angepasst werden. In der Konfigurationsdatei config.xml sollte vor dem Import in den Hyper-V Manager noch das Attribut “Source” geändert werden.

<?xml version=”1.0″ encoding=”UTF-16″ standalone=”yes”?>
<configuration>
<SnapShotDataRoot type=”string”></SnapShotDataRoot>
<ExternalDataRoot type=”string”></ExternalDataRoot>
<vhd>
<source type=”string”>D:\Exports\2010-7b\Virtual Hard Disks\2010-7b.vhd</source>
<target type=”string”></target>
</vhd>
<VmStateCopied type=”bool”>true</VmStateCopied>
</configuration>

Beispiel für den einen Server :<source type=”string”>C:\VMs\2010-7a\Virtual Hard Disks\2010-7a.vhd</source>

Der Falsche Pfad kann beim Import zu einem Fehler führen. Wenn dieser Fehler auch nach dem anpassen des Pfades auftritt, dann sollten die Server erneut entpackt werden. Um ein erneutes herunterladen und Wartezeit zu vermeiden, ist es wichtig dass die gepackten Archive beibehalten werden.

Lizensierung

Die Access Services sind definitiv ein Enterprise Feature, daher muss für jeden User der die Access Services benutzt, eine zusätzliche SharePoint Server 2010 Enterprise CAL erworben werden. Auch der lesende Zugriff auf eine Access Webdatenbank erfordert eine Enterprise CAL.

Migration von Access Datenbanken

Für die erfolgreiche Migration von vorhandenen Access Datenbanken aus vor Versionen gibt es einiges zu beachten. Für Szenarien mit den Access Services sind nur Daten erlaubt, die in eine SharePoint Liste passen, daher sollten die zu migrierenden Daten in die Lokalen Access Tabellen importiert werden. Daten und Struktur(z.B. Datentypen, Indexe, Primärschlüssel) der Tabellen, müssen entsprechend kompatibel sein. Bei einer erfolgreichen Veröffentlichung werden alle Lokalen Tabellen in SharePoint Listen konvertiert. Verlinkte Tabellen (Externe Daten) sind nur im Access Client sichtbar, es kann nur im Windows Client auf diese zugegriffen werden, innerhalb der Access Webanwendung sind diese nicht einmal sichtbar.

Im Access 2010 Client werden externe Daten als verlinkte Tabellen dargestellt. Wer diese Daten in der Webanwendung benötigt, kann beispielsweise eine verlinkte Tabelle in eine Lokale Tabelle konvertieren. Im Menü der Verlinkten Tabelle gibt es die Option “Convert to Local Table”. Nach diesem Schritt haben wir keine Bindung zur Datenquelle mehr.

In Migrations-Szenarien ist dieses Vorgehen durchaus denkbar. Falls die Daten aus der ehemals verlinkten Quelle noch “leben”, so muss die regelmäßige Synchronisation selbst realisiert werden. SSIS (SQL Server Integration Services) ist hier die erste Wahl, aber auch recht anspruchsvoll.

SSIS ist ein Produkt, mit dem Lösungen für Datenintegration und Datentransformation realisiert werden und ist sehr mächtig. Für Datawarehouse-Lösungen spielt SSIS eine große Rolle und wird oft eingesetzt.

Mit dem Business Intelligence Studio lassen sich sogenannte ETL-Pakete bauen – ETL steht für(Extract, Transform and Load – Extrahieren, Transformieren und Laden. Für einfache Szenarien hilft auch der SQL Server Import/Export Wizard (64Bit verwenden!) weiter. Jeder der mehr braucht geht den Weg mit dem Business Intelligence Studio – ohne Unterstützung oder Schulung ist dies eine echte Herausforderung.

Hinweis: Der Teufel steckt im Detail – meist ist es nicht damit getan, Daten von A nach B zu befördern. Es kommt oft vor, dass nur geänderten Daten berücksichtigt werden sollen – nachdem der Umgang Business Intelligence Studio keine Hürde mehr darstellt, sollte sich jeder mit der zusätzlich Installierbaren Komponente “Checksum Tranformation” vertraut zu machen. Es lassen sich dann prüfsummen über mehrere Spalten hinweg erstellen und auf Veränderung prüfen. Die Komponente ist hier zu finden. (http://www.konesans.com/products.aspx)

Die fertigen ETL-Pakete sollten entweder in der msdb-Datenbank auf dem SQL Server oder im Packet Speicher (Verwaltetes Dateisystem) abgelegt werden. Die Pakete werden vom SQL Agent ausgeführt. Die Planung der SSIS-Pakete kann mit dem SQL Management Studio erstellt werden (SQL Server Agent->Jobs->New Job).

Um nicht den Rahmen des Artikels zu sprengen, habe ich vieles zum Thema SSIS weggelassen. Wer diesen Weg geht, erhält in regelmäßigen Abständen seine Daten in das dafür vorgesehene Daten-Ziel (Unsere Access-Datenbank). Natürlich ist dies der eleganteste und sauberste Weg, der für Interimslösungen geeignet ist, denn nichts hält länger als das Provisorium, und im Folge dessen sollte in Unternehmensweiten und/oder kritischen Projekten immer die geeignetsten Werkzeuge verwendet werden, um möglichst skalierbare Lösungen zu schaffen.

Es gibt aber noch andere Lösungswege, ein anderer Weg wäre, dass die Verlinkte Tabelle beibehalten wird und eine neue oder vorhandene Tabelle die Daten per “Knopfdruck” erhält. Dies kann auch ein Makro sein, welches dann nicht per Knopfdruck, sondern auch von der Kommandozeile aufgerufen werden kann. Hierfür eignet sich die Windows Aufgabenplanung. Aktion->Neue Aufgabe erstellen und dann unter Aktion den Pfad zur Access Datenbank angeben (msaccess.exe “C:\Jobs\Daily\EmployeeDataPipeline.accdb” /x TransferJobMacro). Das Makro “TransferJobMacro” muss für diesen Zweck selbst entworfen werden.Wie oben erläutert können die Themen rund um Datenintegration bzw. Datenübertragung schnell sehr komplex werden. Um die Kompatibilität für einzelne Tabellen oder die Datenbank zu überprüfen, kann der Web Compatibility Checker verwendet werden, welcher entweder im Bereich Veröffentlichen, oder mit einem Rechtsklick auf eine Tabelle ausgeführt werden kann.

In der Regel handelt es sich bei der Migration von vor Versionen um Themen wie z.B. Primärschlüssel, Indexe oder Datentypen. Primärschlüssel müssen immer vom Datentyp Long integer stammen, auch Primärschlüssel die sich aus mehreren Spalten zusammensetzen dürfen nicht verwendet werden, genauso können Indexe nicht aus mehreren Spalten bestehen.

Beziehungen zu anderen Tabellen, um somit eine Art Referenzielle Integrität zu ermöglichen, verhindern eine erfolgreiche Veröffentlichung. Um referenzielle Integrität zu ermöglichen, muss die Beziehung zur anderen Tabelle gelöst werden, um dann eine neue Spalte vom Typ Lookup hinzuzufügen, über die sich dann per Wizard eine Referenzielle Integrität herstellen lässt. Diese Referenzielle Integrität wird neuerdings von SharePoint unterstützt. 

  • Tw1tt3r
  • L1nk3dIn

Um das Thema Fremdschlüssel gut zu lösen, ist es erforderlich in den Sauren Apfel zu beißen und Primärschlüssel vom Datentyp Long Integer zu definieren. Um das Eintragen von doppelten Datensätzen, die aus mehreren Attributen bestehen zu verhindern, gibt es verschiedene Wege. Hier kann sich beispielsweise mit dem VorVeränderung/BeforeChange – Ereignis beholfen werden, näheres erfahrt ihr hier.

Grundsätzlich müssen Formulare und Reports auf Kompatibilität geprüft werden. Es ist auch notwendig den VBA Code in dafür geeignete Makros zu verlegen. Grundsätzlich kann sich wie oben erwähnt mit der Kompatibilitätsprüfung beholfen werden. Die Ergebnisse der Prüfung sind dann in der Tabelle “Web Compatibility Issues” zu finden. Jeder Eintrag enthält detaillierte Informationen zum Verursachenden Element und einen Link zu weiterführenden Informationen.

Hinweis: Das Caching/Zwischenspeichern ist bei neu erstellten Access Datenbanken standartmäßig aktiviert, für bereits bestehende aber nicht! Dies kann aber nachgeholt werden. Unter Datei-Optionen-Access Optionen-Aktuelle Datenbank sind die entsprechenden Einstellungen im Abschnitt “Webdienst- und SharePoint-Tabellen werden zwischengespeichert” zu finden. Der Bereich Caching wurde von Microsoft um einiges optimiert, daher lohnt sich eine Aktivierung dieser Funktion.

Daten Makos
Daten Makros ermöglichen uns die Geschäftslogik innerhalb der Datenbank abzubilden. Ähnlich wie SQL-Trigger können die Daten Makros an Tabellen- oder Spalten-Ereignisse gebunden werden. Ein großer Vorteil ist, dass die Geschäftslogik Frontend unabhängig ist. In verschiedenen Formularen können Daten erfasst und bearbeitet werden. Die Datenqualität wird sozusagen auf der Daten-Ebene durchgesetzt. Dieses Vorgehen ist auch sehr Praktisch was die Wartung und Anpassbarkeit betrifft. Komplexe Vorgänge und Prüfungen sind nicht mehr im Client, somit muss nicht mit jeder Veränderung die Geschäftslogik im Client angepasst werden. Dies ist auch wichtig, falls beispielsweise eine interne Revision bei sensiblen Daten sicherstellen muss, dass das verändern, hinzufügen und löschen von Datensätzen in einer Tabelle protokolliert und verhindert wird.

Der Makro Editor in Access 2010 wurde komplett erneuert, um den Anwender so gut es geht zu unterstützen, wird einem jetzt auch IntelliSense geboten. Im Blickfeld des Anwenders befindet sich der Aktionskatalog. Per Drag & Drop können Elemente aus dem Aktionskatalog in den Editor gelegt werden. Für Kritische oder Komplexe Logik sollte ein sogenanntes Benanntes Makro erstellt werden. Dieses Vorgehen ist für eine entsprechende Wiederverwendbarkeit sehr zu empfehlen. Sobald ein Benanntes Makro, wie es in der deutschen Version so schön heißt, angelegt wurde, taucht es auch im Aktionskatalog auf.

Mit den Daten Makros lassen sich keine UI Elemente(Formulare, Dialoge, u.ä.) ansprechen oder erzeugen. Formulare und Dialoge können nicht angezeigt oder verwendet werden, vielmehr werden die Makros später von der Oberfläche oder per Ereignis-Code gestartet. Optional können Parameter übergeben werden. Eine wichtige Neuerung, in Sachen Daten Makros wurde nach der Beta2 eingebaut und zwar ist es nun möglich, dass Daten Makros Rückgabewerte liefern.

  • Tw1tt3r
  • L1nk3dIn

Im Bild ist der Makro Designer im Einsatz zu sehen. Die IntelliSense hilft dem Anwender bei der Eingabe und bietet basierend auf dem aktuellen Kontext eine Auswahl an. Des Weiteren unterstützt der Makro Designer Copy & Paste. Einzelne sogenannte Blöcke können ausgewählt und in die Zwischenablage kopiert werden, andersrum geht das natürlich auch.

Mit den Daten Markos wurden folgende Ziele von Microsoft erreicht:

  • Verbesserung der Makro Erstellung, insbesondere für das Arbeiten mit Daten
  • Minimierung der Programmierfehler
  • Portabel, sicher und skalierbar für Server/Service Umgebungen

Hinweis: Daten Makros können kein VBA-Code aufrufen, andersrum ist dies möglich. Für Verlinkten Tabellen gib es keine Unterstützung in Sachen Daten Markos. Bis jetzt gibt es auch keine Unterstützung für Transaktionen.

Beim Arbeiten mit Daten Makros und Ereignissen ist es wichtig, dass zwischen zwei Anwendungsgebieten bei Ereignissen unterschieden wird, denn die Vor*- oder Before*-Ereignisse sind für kleine Aktionen gedacht. Beispielsweise kann gesteuert werden, ob ein Eintrag tatsächlich verändert werden soll.

Für die Nacher*-oder After*-Ereignisse gibt es keine weiteren Einschränkungen. Für Vor*/Before*-Ereignisse stehen im Gegensatz zu den Before-Ereignissen die Aktionen ForEachRecord und LookupRecord zur Verfügung.

Alles im Kontext?

  • Tw1tt3r
  • L1nk3dIn

Bei Daten Makros ist es immer wichtig zu wissen, auf welchem Daten-Kontext diese Operation oder Abfrage sich bezieht, wenn keine Voll-Qualifizierten Angaben (Kundentabelle.Kundenname) verwendet werden.

Bei der Arbeit mit den Events, VorLöschung, VorBearbeitung, NachEinfügung, NachAktualisierung oder NachLöschung wird der Kontext des aktuellen Eintrags geladen, im Gegensatz zur Beta2 ist dieser Schreibgeschützt (Beispielsweise der eingefügte Eintrag).

Der Datenkontext ändert sich, sobald ein neuer Block geöffnet wird (siehe Bild). Ein neuer Block fängt beispielsweise mit dem Schlüsselwort LookupRecord, EditRecord, CreateRecord oder ForEachRecord an. Bei unterschiedlichen Tabellen und gleichnamigen Spalten kommt es dazu dass in jedem unterschiedlichen Kontext eine andere Tabelle angesprochen wird und der Access Anwender dies in bestimmten Situationen gar nicht mitbekommt, denn sobald z.B. die Spalte “Name” in jeder Tabelle vorkommt, kann die Syntax dies nicht als Fehler identifizieren und die Fehlersuche kann losgehen.

Sind mehrere Blöcke ineinander verschachtelt, so kann auf die vorherigen Daten-Kontexte zugegriffen werden. Der Kontext wird jedes Mal größer.

  • Blau hat als Kontext den Ereignis-Auslöser – den Eintrag der in der Tabelle das BeforeUpdate-Ereignis gefeuert hat
  • Grün enthält BLAU und GRÜN
  • ROT enthält BLAU,GRÜN und ROT

Wird ein Block verlassen, schließt sich der Kontext und ist nicht mehr verfügbar. Um dennoch auf die Werte außerhalb eines Blocks zuzugreifen, kann ein Alias definiert werden. Das Arbeiten mit Aliasen empfiehlt sich, wenn beispielsweise Fehler-Reporting Routinen erstellt werden oder aber Tabellen Ihren Namen wechseln. Der Änderungsaufwand ist dann auf das nötigste reduziert.

Hinweis: Wird ein Daten Makro von einem GUI-Macro aus aufgerufen, so gibt es keinen Daten-Kontext. Hier kann sich jeder leicht behelfen, denn mit Parametern kann dem “Benannten Makro” der Schlüssel eines Elementes übergeben werden, wie das beispielsweise beim Arbeiten mit Detail-Formularen vorkommt. Ein einzelner Datensatz wird angehen und dem Makro wird dann dessen ID beim Aufruf übergeben. Im Benannten Daten Makro wird dann mit LookupRecord das entsprechende Element geholt, um es beispielsweise zu bearbeiten.

Alles in allem ist der Makro Designer gut gelungen und lässt sich leicht bedienen. Besonders gut gefällt mir persönlich die IntelliSense, das Arbeiten mit Blöcken und die Copy&Paste Unterstützung, um Code besser mit gleichgesinnten auszutauschen.

Mit Access 2010 und den Access Services schneller ans Ziel.

Microsoft Access war schon immer das beliebteste Werkzeug in Sachen Desktop Datenbanken. Aufgrund der guten Bedienbarkeit sind nicht nur IT Experten, sondern auch normale Fachanwender in der Lage, Lösungen zu realisieren. Mit Access 2010 gibt es bei den Themen Sicherheit, Skalierbarkeit und Wartbarkeit vielerlei Unterstützung. Da eine feste Integration einer Access Datenbank als SharePoint Web-Lösung beinahe nur mit einem Knopfdruck möglich ist, können Lösungen schnell zugänglich gemacht werden. Mit klassischer .NET Entwicklung wird dies nicht möglich sein, auch wenn bereits fertige Klassen verwendet werden und beispielsweise das Visual Studio mit allen unterstützenden AddIns den Entwickler zur Hand ginge. Für .NET Entwicklung ist ein Entwickler immer erforderlich – für das Design, die Architektur und den Code. Bei Access 2010 kann quasi jeder Fachanwender komplett ohne einen Entwickler oder Datenbankspezialisten einzuschalten, Lösungen realisieren. Aber dies ist nicht durch die Bank weg zu empfehlen, vielmehr sollte die Architektur gemeinsam in Workshops mit einem Entwickler oder Datenbankspezialisten erarbeitet werden. Die Access Lösung kann von einem Fachanwender realisiert werden, die Architektur wird allerdings mit der IT geplant, die IT Ressourcen werden bei dieser Herangehensweise im angemessenen Rahmen gehalten.

Fazit

Microsoft Access 2010, SharePoint 2010 und die Access Services sind gemeinsam eine hoch interessante Kombination, mit der in kurzer Zeit ansehnliche Lösungen geschaffen werden. Die Neuerungen tragen dazu bei, dass Erfolgreiche Access-Lösungen in Unternehmen keine Seltenheit werden sollten. Interessant ist auch die Neuerung, dass in Access 2010 auch Webservices als Externe Daten unterstützt werden.

Share This