Dateinamen kürzen und anzeigen

Die Darstellung von Dateinamen inklusive Pfad ist in Access (und auch in anderen Anwendungen) problematisch, wenn dazu lediglich ein Textfeld, ein Kombinationsfeld oder ein Listenfeld zur Verfügung steht. In der Regel reicht der Platz nicht, um den kompletten Dateinamen darzustellen. Dieser Beitrag zeigt, wie Sie Dateinamen entsprechend gekürzt darstellen und dennoch bei Bedarf die Bearbeitung in Text- oder Kombinationsfeldern erlauben.

Beginnen wir mit einem einfachen Textfeld namens txtDateiname, das einen mit einem Datei öffnen-Dialog ausgewählten Dateinamen aufnehmen soll. Dies erledigen Sie in der Regel mit einer Konstellation wie in Abb. 1. Die Schaltfläche rechts löst beim Anklicken das Ereignis Beim Klicken aus, das wiederum die folgende Ereignisprozedur startet:

pic001.png

Abb. 1: Einfaches Textfeld zum Aufnehmen eines Dateinamens plus Schaltfläche

Private Sub cmdDateiAuswaehlen_Click()
    Me!txtDateiname = OpenFileName(CurrentProject.Path, , "Access-Datenbank (*.mdb,*.accdb)|Alle Dateien (*.*)")
    End Sub

Die Prozedur verwendet die Funktion OpenFilename, um einen Datei öffnen-Dialog anzuzeigen. Die Datei, die der Benutzer mit diesem Dialog auswählt, wird dann als Wert des Textfeldes txtDateiname eingetragen.

Dies funktioniert auch reibungslos, allerdings zeigt das Textfeld zu lange Dateinamen wie in Abb. 2 an.

pic002.png

Abb. 2: Anzeige eines zu langen Dateinamens

Dateiname kürzen

Was also tun Ganz einfach: Sie nutzen eine kleine Funktion, die den Dateinamen für unsere Zwecke aufbereitet. Das Ergebnis soll so wie in Abb. 3 aussehen. Zwischen dem ersten und dem letzten Backslash sollen so viele Verzeichnisse durch drei Punkte (…) ersetzt werden, bis der Ausdruck eine bestimmte Zeichenlänge erreicht – die dann vom Textfeld dargestellt werden kann.

pic003.png

Abb. 3: Textfeld mit gekürztem Dateinamen

In diesem Fall hat die Funktion tatsächlich alle Elemente bis auf den Laufwerksbuchstaben und den Dateinamen entfernt.

Bevor wir einen Blick auf die Funktion werfen, welche die Kürzung vornimmt, schauen wir uns noch an, welche Möglichkeiten es zur weiteren Verarbeitung des Dateinamens gibt. So möchte der Benutzer gegebenenfalls doch noch den kompletten Dateinamen sehen oder diesen sogar weiterverwenden. Das Betrachten des Dateinamens lässt sich ganz einfach realisieren, indem Sie den Dateinamen nach dem Einlesen als Wert der Eigenschaft ControlTipText einstellen. Der Dateiname erscheint dann nach dem Überfahren des Textfeldes mit der Maus (s. Abb. 4).

pic004.png

Abb. 4: Anzeige des vollständigen Dateinamens

Wenn Sie den Wert des Textfeldes weiterverarbeiten möchten, könnten Sie erstens auf den Inhalt der Eigenschaft ControlTipText zugreifen. Wenn Sie diese gar nicht nutzen möchten, legen Sie entweder ein weiteres Steuerelement an, das den Dateinamen zwischenspeichert, oder Sie verwenden die Tag-Eigenschaft des Steuerelements.

Die Prozedur cmdDateiAuswaehlen2_Click, die beim Mausklick auf die Schaltfläche neben dem zweiten Textfeld ausgelöst wird, liest zunächst den Dateinamen in die Variable strDateiname ein (s. Listing 1).

Listing 1: Füllen des Textfeldes mit gekürztem Dateinamen

Private Sub cmdDateiAuswaehlen2_Click()
    Dim strDateiname As String
    strDateiname = OpenFileName(CurrentProject.Path, , "Access-Datenbank (*.mdb,*.accdb)|Alle Dateien (*.*)")
    If Len(strDateiname) > 0 Then
        Me!txtDateiKurz = DateinameKuerzen(strDateiname, 50, True)
        Me!txtDateiKurz.ControlTipText = strDateiname
        Me!txtDateiKurz.Tag = strDateiname
    End If
End Sub

Nach einer Prüfung, ob ein Dateiname eingelesen wurde, führt die Prozedur drei Schritte durch: Sie wendet die weiter unten beschriebene Funktion DateinameKuerzen auf den Wert von strDateiname an und trägt das Ergebnis in das Textfeld txtDateiKurz ein und fügt den vollen Dateinamen als Wert der Eigenschaften ControlTipText und Tag ein.

Manuelle änderung des Dateinamens

Was geschieht, wenn der Benutzer den Dateinamen manuell ändern möchte Dazu wird der Benutzer in das Textfeld klicken und die gewünschten änderungen vornehmen. Nun müsste man allerdings zu diesem Zeitpunkt den gekürzten Eintrag entfernen und den vollen Dateinamen anzeigen, damit eine Bearbeitung möglich wird.

Dazu verwenden wir die beiden Ereignisse, die beim Eintreten in das Textfeld und beim Verlassen ausgelöst werden: Bei Fokuserhalt und Bei Fokusverlust.

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar