Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrage starten und im entsprechenden Formular anzeigen

Begonnen von Sonnensalat, Mai 23, 2016, 14:23:00

⏪ vorheriges - nächstes ⏩

Sonnensalat

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ß

MaggieMay

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).
Freundliche Grüße
MaggieMay

Sonnensalat

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ß

MaggieMay

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
Freundliche Grüße
MaggieMay

Sonnensalat

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!

MaggieMay

Hi,
ZitatDieser kann somit geschlossen werden.
dazu kannst du den Haken am Anfang des Threads anklicken.
Freundliche Grüße
MaggieMay