Fragen und Antworten

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Autor: André Minhorst, Duisburg

!

Selbst das beste Praxishandbuch kann nicht alle Fragen zum Thema Access beantworten. Daher finden Sie hier häufige, bei Autoren bzw. in der Redaktion auftretende Fragen, und natürlich auch die dazugehörenden Antworten, die sicher auch für viele weitere Leser interessant sein dürften.

Frage: Ich möchte gerne Daten in tabellarischer Form in einem Formular darstellen. Wie kann ich dies erreichen

Antwort: Zur tabellarischen Anzeige von Daten verwenden Sie – in Formularen wie auch in Berichten – die Ansicht Endlosformular. Sie können diese Ansicht im Eigenschaftsfenster des Formulars mit der Eigenschaft Standardansicht festlegen.

Bild 1: Hinzufügen der Felder aus der Feldliste

Außerdem sollten Sie die Anzeige von Formularkopf und -fuß aktivieren, um Zeilenüberschriften anzeigen zu können.

Dies können Sie über den Menübefehl Ansicht/Formularfuß/-kopf erledigen.

Legen Sie dann die Datenherkunft fest – z. B. die Tabelle Kunden der Nordwind-Datenbank.

Ziehen Sie die gewünschten Felder in den Detailbereich – in der Regel werden das nicht alle sein, da die Formularbreite durch die Bildschirmbreite begrenzt wird (siehe Bild 1).

Im nächsten Schritt verschieben Sie die Bezeichnungsfelder der Textfelder in den Formularkopf.

Der Hintergrund ist, dass der Detailbereich für jeden vorhandenen Datensatz wiederholt angezeigt wird, der Inhalt von Formularkopf und -fuß aber lediglich nur einmal. Daher eignet sich dieser Bereich optimal für die Verwendung von Feldüberschriften.

Hier ist leider Handarbeit nötig, wie die folgende Schritt-für-Schritt-Anleitung zeigt:

Bild 2: Entwurfsansicht des Formulars

Bild 3: Formularansicht des Endlosformulars

  • Markieren Sie das gewünschte Bezeichnungsfeld.
  • Schneiden Sie es aus – beispielsweise mit der Tastenkombination Strg + X.
  • Klicken Sie in den Formularkopf.
  • Fügen Sie das Bezeichnungsfeld ein – beispielsweise mit der Tastenkombination Strg + C.
  • Bewegen Sie das Bezeichnungsfeld an die gewünschte Position.
  • Wiederholen Sie die obigen Schritte für die weiteren Bezeichnungsfelder.
  • Ordnen Sie nun die Bezeichnungs- und Textfelder tabellarisch an und verringern Sie die Höhe des Detailbereichs (siehe Bild 2).

    Wenn Sie nun in die Formularansicht wechseln, erhalten Sie ein Formular mit den Kundendaten in der Endlosansicht (siehe Bild 3).

    Frage: Ich zeige meine Daten in tabellarischer Form in einem Endlosformular an. Wie kann ich schnell die Details eines ausgewählten Datensatzes anzeigen

    Antwort: Das Problem lässt sich in zwei Schritten lösen. Zunächst benötigen Sie ein Formular zur detaillierten Anzeige der Daten. Anschließend passen Sie das Endlosformular so an, dass Sie schnell per Mausklick an die gewünschten Detaildaten kommen. Dazu erweitern Sie dieses Formular um eine Schaltfläche im Detailbereich, die für jeden Datensatz angezeigt wird.

    Erstellen eines Formulars zur Anzeige derDetails

    Das Formular zur Anzeige der Details ist schnell hergestellt. Sie können dies sogar auf die Schnelle mit dem Formularassistenten erledigen.

    Bild 4: Formular zur Anzeige von Kundendetails

    Als Beispiel dient wie in der vorherigen Frage die Tabelle Kunden der Nordwind-Datenbank. Wenn Sie den Assistenten gestartet haben, wählen Sie zunächst die Tabelle Kunden aus und verschieben die gewünschten Felder nach rechts in die Liste der ausgewählten Felder.

    Wählen Sie im nächsten Schritt die Option Einspaltig aus. Die Einstellungen der nächsten beiden Schritte können Sie beibehalten. Das fertige Formular sieht wie in Bild 4 aus.

    Sie sollten nun noch im Datenbankfenster den Namen des Formulars auf frmKundenDetail abändern.

    Anpassen des Endlosformulars

    Damit Sie vom Endlosformular aus Detaildaten anzeigen können, fügen Sie für jede Zeile eine Schaltfläche hinzu:

  • öffnen Sie das Endlosformular in der Entwurfsansicht.
  • Bild 5: Das Endlosformular mit Schaltfläche in der Entwurfsansicht

  • Fügen Sie irgendwo in den Detailbereich – am besten ganz links oder ganz rechts – eine neue Schaltfläche ein.
  • Geben Sie der Schaltfläche den Namen cmdDetails und beschriften Sie diese mit Details anzeigen (siehe Bild 5).
  • Nun müssen Sie nur noch eine entsprechende Ereigniseigenschaft anlegen, die das Detailformular aufruft und damit direkt den gewünschten Datensatz anzeigt.

    Legen Sie für die Ereigniseigenschaft Beim Klicken der Schaltfläche die Ereignisprozedur aus Quellcode 1 an.

    Hinweis

    Weitere Informationen zum Anlegen einer Ereignisprozedur finden Sie im Beitrag Anlegen von Ereignisprozeduren im PDF-Format auf der Heft-CD (zu Heft 1/2002).

    Bild 6: Das fertige Endlosformular mit Schaltflächen für die Detailansicht

    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

    Schreibe einen Kommentar

    Fragen und Antworten

    Manchmal möchte man wissen, welche anderen Programme neben der Access-Anwendung laufen. Das kann z. B. interessant sein, wenn Sie von Access aus ein Word-Dokument anlegen möchten und nicht wissen, ob Sie Word zunächst starten müssen oder ob es bereits läuft.

    Das lässt sich mit einer VBA-Funktion leicht realisieren. Die Prozedur überprüft nacheinander alle geöffneten Fenster auf ihren Titel. Dazu müssen Sie natürlich wissen, welchen Titel die gewünschte Anwendung in der Titelleiste bzw. in der Taskleiste verwendet.

    Verwendung von API-Funktionen

    Die VBA-Funktion greift auf drei API-Funktionen zu, die Sie zunächst in einem neuen Modul deklarieren müssen. Zusätzlich zu den drei Funktionen deklarieren Sie drei Konstanten, die später in der Funktion Verwendung finden:

    Public Const GW_HWNDFIRST = 0
    Public Const GW_OWNER = 4
    Public Const GW_HWNDNEXT = 2

    Anschließend folgt die Deklaration der API-Funktionen (Quelltext 1):

    Quelltext 1

    Schließlich erstellen Sie die Funktion, mit der Sie überprüfen wollen, ob ein Anwendungsfenster mit einem bestimmten Namen vorhanden ist.

    Die Funktion ermittelt zunächst das Handle des aktuellen Access-Fensters. Ausgehend hiervon durchläuft sie anschließend alle weiteren vorhandenen Fenster. Dabei dient die API-Funktion zur Ermittlung des Fenstertitels. Dann überprüft die Funktion, ob es sich um ein Hauptfenster handelt und ob es sichtbar ist. Ist das der Fall, vergleicht die Funktion den gefundenen mit dem gesuchten Fenstertitel.

    Wenn die Funktion den gesuchten Fenstertitel findet, gibt Sie einen Wert zurück, der unglcich 0 ist.

    Bild 1: Entwurfsansicht des Formulars zum Suchen einer Anwendung

    Formular zur Fenstersuche

    Erstellen Sie nun ein kleines Formular, in das Sie den Namen des gewünschten Fensters einfügen können. Speichern Sie das Formular unter dem Namen frmFensterSuchen und öffnen Sie es in der Entwurfsansicht.

    Fügen Sie dem Formular ein Testfeld zur Eingabe des gesuchten Fenstertitels hinzu und nennen Sie es txtFenstertitel. Außerdem benötigen Sie eine Schaltfläche, mit der Sie den Suchvorgang auslösen können (siehe Bild 1).

    
    

    Quelltext 2

    Bezeichnen Sie die Schaltfläche mit dem Namen btnFensterSuchen und hinterlegen Sie für seine Ereigniseigenschaft Beim Klicken die Prozedur aus Quelltext 3. Anschließend können Sie das

    Formular in der Formularansicht anzeigen und ausprobieren (siehe Bild 2).

    Mit Jokern zum Ziel

    Beachten Sie bitte, dass Sie die auch in Abfragen möglichen Platzhalter, z. B. Sternchen (*) oder

    Bild 2: Das Suchen einer Anwendung

    Fragezeichen () verwenden können und – wahrscheinlich – auch müssen. Denn wenn Sie z. B. eine aktive Word-Anwendung auf die hier vorge-

    Quelltext 3

    stellte Art erkennen wollen, wissen Sie beispielsweise nicht, ob es sich um Word 97 oder Word 2000 handelt. Und während Word 97 im Titelleistentext beispielsweise den Anwendungsnamen einem eventuell geöffneten Dokument voranstellt, ist das bei Office 2000 genau andersherum. Hier sollten Sie also z. B. mit dem Ausdruck *Microsoft Word* arbeiten, um beide Versionen zu erkennen.

    Der Zugriff auf die Daten einer Tabelle ist meist ausreichend schnell. Manchmal erfordert die bessere Handhabe oder der Wunsch nach einer noch höheren Geschwindigkeit allerdings eine Alternative.

    Gerade wenn Sie gar nicht alle Daten, sondern nur einige wenige Felder einer Tabelle oder einer Abfrage benötigen, empfiehlt sich die Verwendung eines Feldes. Ein Feld hat den Datentyp Variant und kann mit der GetRows-Methode gefüllt werden.

    Die GetRows-Methode

    Die GetRows-Methode dient zum Füllen eines Feldes vom Typ Variant mit den Feldern einer Tabelle. Dabei ist die Wahl der Einzahl beim Variantfeld durchaus beabsichtigt, da es sich hier tatsächlich um ein zweidimensionales Feld handelt, während man bei der Tabelle, aus der die Daten stammen, aus mehreren Feldern mit eigenem Feldbezeichner auswählt.

    Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

    den kompletten Artikel im PDF-Format mit Beispieldatenbank

    diesen und alle anderen Artikel mit dem Jahresabo

    Schreibe einen Kommentar