Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 6/2006.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Bauen Sie sich ein Formular für die Suche im Inhalt eines Textfeldes.

Techniken

Formulare, VBA

Voraussetzungen

Access 2000 oder höher

Beispieldatei

SucheInTextfeldern.mdb

Shortlink

416

VBA-Funktionssammlung

In dieser Rubrik liefern wir Ihnen in jeder Ausgabe von Access im Unternehmen einige interessante VBA-Funktionen, mit denen Sie den Funktionsumfang von VBA erweitern können.

Datei-öffnen-Dialog per WizHook

Mittlerweile gibt es eine ganze Reihe von Möglichkeiten, einen Dialog zum Öffnen einer Datei anzuzeigen. Die allereinfachste Variante dürfte die per WizHook sein: Wichtig ist dabei nur, den richtigen WizHook-Key festzulegen; den Rest erledigt die Funktion OpenFileName (s. Listing 1). Ein Beispielaufruf lautet etwa:

OpenFileName CurrentProject.Path, „Dokument auswählen“, „Bilddateien (*.tif,*.gif,*.jpg,*.png,*.bmp)“

Der resultierende Dialog sieht wie in Abb. 1 aus. Für eine Mehrfachauswahl verwenden Sie statt des Werts &h40 den Wert &h48. Weitere Informationen zum Dateiauswahl-Dialog der WizHook-Klasse finden Sie im Beitrag WizHook – versteckte Features in Access (s. Shortlink 358) - dort erfahren Sie etwa, wie Sie verschiedene Ansichten einstellen (Detailansicht, Vorschau, Symbole) oder wie Sie die Funktion für die Anzeige eines Verzeichnisauswahl-Dialogs zweckentfremden.

pic001.tif

Abb. 1: Ein per WizHook geöffneter Dateiauswahl-Dialog

Listing 1: Datei-öffnen-Dialog per WizHook

Function OpenFileName(Optional StartDir As String, _

     Optional sTitle As String = „Datei auswählen:“, _

     Optional sFilter As String = _
„Access-DB (*.mdb)|Alle Dateien (*.*)“) As String

     Static sDir As String

     WizHook.Key = 51488399

     If Len(StartDir) = 0 Then

         If Len(sDir) = 0 Then

             StartDir = CurrentProject.Path

         Else

             StartDir = sDir

         End If

     End If

     Call WizHook.GetFileName(Application.hWndAccessApp, _

     „Microsoft Access“, sTitle, _

     „Öffnen“, OpenFileName, _

     StartDir, sFilter, _

     0&, 0&, &H40, False)

     If Len(OpenFileName) > 0 Then

         sDir = Left(OpenFileName, InStrRev(OpenFileName, „\“, _
, vbTextCompare))

     End If

End Function

Datei mit der richtigen Anwendung öffnen

Wenn Sie etwa per Dateidialog, per direkter Eingabe durch den Benutzer oder aus einer anderen Quelle wie einem Tabellenfeld den Namen einer Datei ermittelt haben, die es nun zu öffnen gilt, brauchen Sie dazu eine passende Funktion. In diesem Fall hilft API weiter: Die API-Funktion ShellExecute ist die Grundlage für die Funktion OpenDocument (s. Listing 2). Der einzige Parameter dieser Wrapper-Funktion ist der Name der zu öffnenden Datei. Voraussetzung für die Funktion ist die Deklaration der API-Funktion ShellExecute in einem Standardmodul.

Listing 2: Datei mit der passenden Anwendung öffnen

Declare Function ShellExecute Lib „shell32.dll“ Alias „ShellExecuteA“ _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Public Function OpenDocument(DocumentFile As String) As Long

     Dim ret As Long

     If Len(DocumentFile) > 0 Then

         ret = ShellExecute(Application.hWndAccessApp, _
„open“, DocumentFile, vbNullChar, „“, 1)

         If Err Then

             OpenDocument = 0

         ElseIf ret > 32 Then

             OpenDocument = -1

         Else

             OpenDocument = ret

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.