- Startseite
- Neuigkeiten
- Über mich
- Referenzen
- Beispiele
- Artikel
- Vorträge
- Tools
- Access-Tipps
- Excel-Tipps
- Spielereien
- Kontakt
- Impressum
- Datenschutz
Meine Projekte:


Bilddateien gehören nicht in eine Datenbank
Wie man diese Dateien einliest und anzeigt demonstriert diese Beispieldatenbank.
Da Bilddateien viel Platz wegnehmen, gehören diese nicht in eine Access-Datenbank, die (je nach Version) nur 1 - 2 GB groß werden kann. Mit der Dir-Funktion kann man die Bilddateien eines Ordners einlesen, die Pfade zu einer Datei speichern und diese dann einfach in einem Formular anzeigen.
Mit einem Verzeichnis-/Dateiauswahl-Dialog kann man das Beispiel weiter aufbohren und in seine eigene Anwendung einbauen.
Die Dateien können nur angezeigt werden, wenn die entsprechenden Graphikfilter installiert sind. Dies ist bei den meisten (aber leider nicht allen) Office-Installationen der Fall.
Da die Dateinamen in die RowSource-Eigenschaft des Listenfeldes geschrieben werden, ist dieses Beispiel auf eine Anzahl Dateien beschränkt, deren Namen zusammen nicht mehr als 2048 Zeichen (einschl. Trennzeichen) beträgt. Um mehr Dateien anzuzeigen, könnte man die Dateinamen in eine Tabelle importieren, und deren Inhalt dann im Listenfeld anzeigen. Und wie das geht, zeigt dieses Beispiel.
Code-Schnipsel
Private Sub fBildAuswahl() Dim strPfad As String Dim strDatei As String Dim strBilder As String ' Namen in Pfad anzeigen, die keine Verzeichnisse darstellen. strPfad = Me!txtPfad ' Pfad setzen. strDatei = Dir(strPfad, vbDirectory) ' Ersten Eintrag abrufen. Do While strDatei <> "" ' Schleife beginnen. ' Aktuelles und übergeordnetes Verzeichnis ignorieren. If strDatei <> "." And strDatei <> ".." Then If (GetAttr(strPfad & strDatei) <> vbDirectory) Then If Right$(strDatei, 3) = "jpg" Or _ Right$(strDatei, 3) = "gif" Or _ Right$(strDatei, 3) = "bmp" Or _ Right$(strDatei, 3) = "png" Then If Len(strBilder) + Len(strDatei) + 1 > 2048 Then MsgBox "Es können nicht alle Bilder angezeigt werden." Exit Do Else strBilder = strBilder & strDatei & ";" End If End If End If End If strDatei = Dir ' Nächsten Eintrag abrufen. Loop If Len(strBilder) > 0 Then ' wenn Bilder vorhanden sind Me!lstBilder.RowSource = strBilder ' Bilderauswahl füllen Me!lstBilder = Me!lstBilder.ItemData(0) ' erstes Bild wählen Call fBildAnzeigen ' Bild anzeigen Else ' sonst Me!lstBilder.RowSource = "" ' Bildauswahl löschen Me!picBild.Picture = "" ' Bild löschen End If End Sub
Download
Bilder anzeigen für Access 2007 (und neuer)
(Datei: Bilder.zip, ca. 110 KB)