Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Wer aus der Excel-Welt kommt, fühlt sich beim Umgang mit Access-Tabellen unter Umständen etwas eingeschränkt: Man kann nicht mal eben eine Formel einbauen, Berechnungen ad hoc durchführen oder Felder nach Wunsch formatieren. Das Integrieren von Excel per OLE ist auch nicht das Gelbe vom Ei, aber es gibt noch eine Variante – wenn auch eine aussterbende: Das Spreadsheet-Steuerelement der Office Web Components, die letztmalig mit Office 2003 ausgeliefert wurden, bietet eine gute Gelegenheit, Excel-Funktionalität in Access-Formulare zu integrieren.
Wenn Sie die Office-Spreadsheet-Komponente nutzen möchten, müssen Sie diese unter Umständen erst herunterladen. Den Download für die 2003er-Komponente, die auch mit Access 2007 zusammenarbeitet, finden Sie unter dem Link http://www.microsoft.com/downloads/details.aspxFamilyId=7287252C-402E-4F72-97A5-E0FD290D4B76&displaylang=en. Die EULA dieses Pakets, die Sie beim Installieren bestätigen müssen, besagt sinngemäß, dass die Komponenten nur zusammen mit der jeweils passenden Office-Version verwendet werden dürfen. Die Beschreibung der in Office 2007 weggefallenen Komponenten unter http://technet.microsoft.com/en-us/library/cc178954.aspx (siehe unter OWC11) ist jedoch weniger restriktiv. Vielleicht liegt die Einschränkung in der EULA einfach daran, dass man zur Zeit der Fertigstellung des Setups noch nicht daran dachte, ob und wie die Office Web Components in Office 2007 integriert würden. Wir beobachteten jedoch, dass auch die Installation von Office 2007 und sogar der Runtime-Version das Steuerelement mit auf den Rechner brachte.
Bei der Beispieldatenbank zu diesem Beitrag könnte es übrigens zu kleineren Problemen mit den Verweisen kommen. Diese lassen sich gegebenenfalls durch Entfernen von als NICHT VORHANDEN gekennzeichneten Verweisen und Löschen und erneutes Einfügen und Umbenennen des Steuerelements in clsSpreadsheet beheben. Wie auch immer: Wenn wir davon ausgehen, dass Sie eine Version der OWC auf dem Rechner haben, können Sie das Spreadsheet-Steuerelement über den Dialog ActiveX-Steuerelement einfügen zu einem Formular hinzufügen (siehe Bild 1). In der Formularansicht verbreitet das Steuerelement dann auch gleich einen Hauch von Excel-Feeling (siehe Bild 2). Natürlich ist dies kein vollwertiges Excel, aber es lassen sich zumindest die Zellen mit Werten füllen – und auch mit Formeln. So funktioniert beispielsweise nicht nur das Eintragen von Formeln mit relativen und absoluten Bezügen zu den übrigen Zellen, sondern relative Formeln werden beim Kopieren und Einfügen auch entsprechend angepasst.
Bild 1: Einfügen der Spreadsheet-Komponente in ein Access-Formular
Bild 2: Das Spreadsheet-Steuerelement im Access-Formular
Es gibt keine Anzeige der in der aktuell markierten Zelle enthaltenen Formel in der Kopfzeile des Steuerelements, dafür können Sie aber einen kleinen Dialog einblenden, der alle gewünschten Informationen anzeigt (siehe Bild 3). Damit können Sie auch etwa die Formatierungen der aktuellen Zelle direkt nach ihrer Markierung einsehen und anpassen. Unter uns gesagt: Damit ist man näher am Geschehen als unter Excel selbst, denn dort kann man nicht die Zelle wechseln, während etwa der Dialog zum Einstellen des Zellenformats geöffnet ist.
Bild 3: Anzeige der Formel eines Feldes
Der nächste Clou ist, dass Sie problemlos komplette Bereiche aus einer in Excel geöffneten Excel-Datei in das Spreadsheet-Steuerelement kopieren können und umgekehrt. Das bedeutet auch, dass alle Formeln und Formatierungen mit kopiert werden (siehe Bild 4).
Bild 4: Das Hin- und Herkopieren von Bereichen zwischen Excel und des in einem Formular eingebettetem Spreadsheet-Steuerelement ist kein Problem.
Wenn Sie im Dialog Befehle und Optionen die Optionen Horizontale Bildlaufleiste, Vertikale Bildlaufleiste, Blattregisterkarten und Symbolleiste deaktivieren, sieht das Steuerelement fast wie ein Unterformular in der Datenblattansicht aus – mit dem kleinen Unterschied, dass die Spalten- und Zeilenköpfe doch an Excel erinnern (siehe Bild 5). Wenn Sie die Symbolleiste ausgeblendet haben, können Sie den Dialog Befehle und Optionen übrigens über das Kontextmenü des Spreadsheet-Steuerelements wieder einblenden.
Bild 5: Das nackte Spreadsheet-Steuerelement
Die Zeilen- und Spaltenüberschriften sowie die Gitternetzlinien können Sie übrigens auch ein- und ausblenden, und zwar mit den entsprechenden Optionen auf der Registerseite Blatt. Auf der gleichen Registerseite des Dialogs können Sie einzelne Tabellenblätter ausblenden oder hinzufügen und auch ihre Reihenfolge ändern (hier findet sich übrigens auch die einzige Möglichkeit, zwischen den Tabellenblättern zu wechseln – mit Ausnahme der wenig bekannten Tastenkombination Strg + Bild auf/Bild ab).
Mehr Optionen in der Entwurfsansicht
Eines unterscheidet das Spreadsheet-Steuerelement von fast allen übrigen Steuerelementen, mit denen Sie bislang gearbeitet haben: Sie können auch in der Entwurfsansicht damit arbeiten. Und noch besser: Dort stehen noch mehr Optionen als in der Formularansicht bereit.
Zellen schützen
Mit der Option Aktuelles Blatt schützen können Sie das komplette Blatt vor änderungen schützen (siehe Bild 6). Typischerweise soll der Benutzer aber mit den Daten arbeiten, zumindest aber Zugriff auf einen Teil der Zellen haben. Dies können Sie festlegen, indem Sie Aktives Blatt schützen deaktivieren und dann die Zellen beziehungsweise Bereiche, die nicht geschützt werden sollen, markieren und für diese auf der Registerkarte Format die Option Zellen sperren/Zellsperrung aufheben aktivieren beziehungsweise deaktivieren (siehe Bild 7). Die Sperrung der nicht so behandelten Zellen aktivieren Sie dann wieder auf der Registerkarte Schutz durch Aktivieren der Option Aktives Blatt schützen.
Bild 6: Einstellen des Blattschutzes
Bild 7: Mit dieser Option schließen Sie einzelne Zellbereiche vom Blattschutz aus.
Einstellungen per Code festlegen
Wenn Sie einige Einstellungen wie etwa den Zellenschutz vornehmen oder Daten eingeben und Zellen formatieren und anschließend das Formular schließen und wieder öffnen, werden Sie feststellen, dass die Einstellungen und Inhalte nur teilweise übernommen werden. Der Zellschutz beispielsweise bleibt bestehen, die Inhalte und Formatierungen einzelner Zellen, Spalten oder Zeilen hingegen werden zurückgesetzt. Gleiches gilt für das Ein- und Ausblenden der Symbolleiste, der Spalten- und Zeilenköpfe und so weiter. Sie werden also nicht umhin kommen, die Eigenschaften des Spreadsheets per Code beim Laden des Formulars nach Ihren Wünschen einzustellen. Es folgen einige Beispiele.
Titelleiste ein-/ausblenden:
objSpreadsheet.TitleBar.Visible = True/False
oder
objSpreadsheet.DisplayTitleBar = True/False
Titel einstellen:
objSpreadsheet.TitleBar.Caption = "Beispieltitel"
Eigenschaften des Titels wie Schriftgröße einstellen (weitere Eigenschaften siehe Objektkatalog oder IntelliSense):
objSpreadsheet.TitleBar.Font.Size = 24
Office-Logo ausblenden:
objSpreadsheet.DisplayOfficeLogo = False
Symbolleiste ausblenden:
objSpreadsheet.DisplayToolbar = False
Zellschutz einstellen – hier durch Deaktivieren des Schutzes für die komplette Tabelle, Entsperren der ersten zehn Zellen der ersten Spalte und anschließendes Aktivieren des Schutzes:
With objSpreadsheet .ActiveSheet.Protection.Enabled = False .ActiveSheet.Range("A1:A10").Locked = False .ActiveSheet.Protection.Enabled = True End With
Fenster fixieren – durch Festlegen der Zelle, die im zu scrollenden Bereich links oben liegt, hier etwa für die komplette zweite Zeile:
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo