Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Sonnensalat am Mai 23, 2016, 14:23:00

Titel: Abfrage starten und im entsprechenden Formular anzeigen
Beitrag von: Sonnensalat am Mai 23, 2016, 14:23:00
Hallo zusammen,

ich war vor ein paar Wochen hier und habe ein Problem geschildert, dass ohne Normalisierung nicht lösbar gewesen wäre. Jetzt ist die Datenbank neu aufgestellt und alles funktioniert wie gewünscht und schneller (Danke DF6GL und den anderen Cracks hier). Alles - bis auf ein paar Features.  ;)

Beim Öffnen der Apparate-DB gelangt man auf ein "Navigationsformular", auf dem man verschiedene Formulare auswählen kann (Behälter, Pumpen, Maschinen und Hebezeuge) Auf diesen Formularen gibt es eine für unsere Zwecke funktionierende Suche.

Ich würde gerne eine Schnellsuchfunktion auf dem Navigationsformular einfügen. Es soll über zwei Felder gesucht werden können (AppBez und AppNr) und das Suchergebnis im entsprechenden Formular geöffnet werden. Die Info welches der vier Formulare geöffnet werden soll steht in einer verknüpften Tabelle unter "Formulartyp".

Seht ihr da eine Möglichkeit das Problem zu lösen?

Gruß
Titel: Re: Abfrage starten und im entsprechenden Formular anzeigen
Beitrag von: MaggieMay am Mai 23, 2016, 14:52:51
Hallo,

du kannst ungebundene Kombifelder für die Auswahl der Filterkriterien einsetzen und diese beim Öffnen des Formulars übergeben. Schau dir dazu die Syntax der OpenForm-Methode an (-> WhereCondition).
Titel: Re: Abfrage starten und im entsprechenden Formular anzeigen
Beitrag von: Sonnensalat am Mai 24, 2016, 15:38:44
Hallo MaggieMay,

Es ist also sicher möglich? Nicht, dass ich jetzt unnötig Zeit investiere ;)

Von der Idee und der Verarbeitungsabfolge her meinst du, dass ins Kombifeld 
1. der Suchbegriff eingeben wird
2. der Datensatz gesucht wird, bei einem Treffer
3. im Feld "Formulartyp" des Treffers nachgeschlagen wird
4. und eines der vier Formulare mit OpenForm  geöffnet wird?

In welchem Teil müsste die whereCondition stehen? Kennst du zufällig ein ähnliches Beispiel?

Btw... Ich bin leider absoluter VBA-Anfänger, da ich bislang gut mit Makros ausgekommen bin und versuche mich da gerade einzulesen. ;)

Danke & Gruß
Titel: Re: Abfrage starten und im entsprechenden Formular anzeigen
Beitrag von: MaggieMay am Mai 24, 2016, 16:03:35
Die Erläuterungen zur OpenForm-Methode findest du in der Access-Hilfe, wenn du diese aus dem VBA-Editor heraus aufrufst.

So könnte der VBA-Code zum Suchfeld aussehen:
Private Sub cbo_AppNr_AfterUpdate()
    Dim stForm As String
    stForm = DLookUp("frmName","tblFormTypen","frmTyp=" & Me.cbo_AppNr.Column(2))
    ' unter der Annahme, dass der Formulartyp in der 3. Spalte des Kombifeldes steht
    ' Formular öffnen
    DoCmd.OpenForm stForm, acNormal, , "AppNr=" & Me.cbo_AppNr
End Sub


Wenn es sich aber um ein Unterformular des Navigationsformulars handelt, das "geöffnet" werden soll, so geschieht dies mit der BrowseTo-Methode.
Das sähe dann bspw. so aus:
DoCmd.BrowseTo acBrowseToForm, stForm, "Navigationsformular.Navigationsunterformular", "AppNr=" & Me.cbo_AppNr
Titel: Re: Abfrage starten und im entsprechenden Formular anzeigen
Beitrag von: Sonnensalat am Mai 31, 2016, 14:51:57
Hallo,

ich habe das jetzt einfach mit einer Abfrage in Tabellenform gelöst. Die  Variante  mit den Kombifeldern wäre genauso schnell wie in der jetzigen Variante mit der Suchfunktion in dem entsprechendem Formular.

Aber ich habe bereits eine weitere Frage, dafür eröffne ich lieber einen neuen Thread :)
Dieser kann somit geschlossen werden.

Danke!
Titel: Re: Abfrage starten und im entsprechenden Formular anzeigen
Beitrag von: MaggieMay am Mai 31, 2016, 15:12:55
Hi,
ZitatDieser kann somit geschlossen werden.
dazu kannst du den Haken am Anfang des Threads anklicken.