Neuigkeiten:

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

Mobiles Hauptmenü

Suchformular als Unterformular in Registersteuerungselement

Begonnen von STiLL, März 31, 2020, 13:00:52

⏪ vorheriges - nächstes ⏩

STiLL

Hallo Zusammen,
als blutiger Anfänger in der Access-Welt versuche ich mich gerade an einer Datenbank für unsere Versuchsauswertung.
Hierfür habe ich ein Suchformular (frmFilter) erstellt, welches durch eine Parameterabfrage mir die gewünschten Einträge anzeigt.
Dieses Suchformular binde ich in einem Datenbankformular (frmDatenbank) in einem Registersteuerungselement ein.

Wenn ich nun in dem Unterformular im Registersteuerungselement etwas suchen will, passiert nichts. Nur wenn ich direkt im Suchformular (frmfilter) bin kann ich etwas suchen. Muss ich da irgendwie was verknüpfen?

Ich habe die Datenbank mal hochgeladen.

besten Dank und netter Gruß

STiLL

Ich habe zusätzlich nochmal ein kruzes Video gemacht um mein Probelm zu veranschaulichen   ;D

https://www.youtube.com/watch?v=ioRC5mt8z2A

MzKlMu

Hallo,
man stellt keine Frage gleichzeitig in 2 Foren. Das ist verpönt und gemäß Forenregeln (Netiquette) auch unerwünscht.
https://www.ms-office-forum.net/forum/showthread.php?t=366891
Gruß Klaus

DF6GL

Hallo,

"..ist die Frage, wieso?"

weil  in der Form-Abfrage Formular-Steuerelement-Verweise verwendet werden und diese Referenzen nicht mehr stimmen, wenn das Form in einem UFO-Steuerelement angezeigt wird.

http://www.donkarl.com/?FAQ4.2


Besser ist, das Form in den einzelnen  Afterupdate-Ereignissen anstatt mit Me.Requery zu aktualisieren es zu filtern (Me.Filter = ".......")

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

STiLL

Guten Morgen,

@MzKlMu: hast du recht, Sorry! Habe im anderen Forum darum geben das Thema zu schließen / zu löschen....

@DF6GL: Danke für den Input. Ich habe mit der Programmierung bisher wenig am Hut gehabt und tue mich etwas schwer deinen Tipp zu verstehen.

Reicht es den Bezug zum Unterformular richtig herszustellen? oder muss ich das Suchformular ansich anders aufbauen, so wie du gesagt hast mit "me.filter".
Sollte nur der richtige Bezug hergestellt werden, welchen Syntax deiner Quelle brauche ich und wo füge ich den ein? Habe einiges ausprobiert und es leider nicht hinbekommen.

DF6GL

Hallo,

wenn für das UFO die Methode der Form-Verweise im Kriteriumsfeld der Abfrage beibehalten werden soll, dann lautet der SQL-String der Abfrage so:

ZitatSELECT tab_versuche.[Versuchs-ID], tab_versuche.Datum, tab_bestrahlung.Laserleistung, tab_bestrahlung.Linienbreite, tab_bestrahlung.Fokuslage, Laserart.Laserart, Wert_Lackart.Lackart, tab_probe.[Proben-ID]
FROM Wert_Lackart INNER JOIN (Laserart INNER JOIN (tab_lack INNER JOIN (tab_probe INNER JOIN (tab_versuche INNER JOIN tab_bestrahlung ON tab_versuche.[Versuchs-ID] = tab_bestrahlung.[Bestrahlungs-ID]) ON tab_probe.[Proben-ID] = tab_versuche.[Proben-ID]) ON tab_lack.[Lack-ID] = tab_probe.[Lack-ID]) ON Laserart.Laserart = tab_bestrahlung.Laserart) ON Wert_Lackart.Lackart = tab_lack.Lackart
WHERE (((tab_versuche.[Versuchs-ID]) Like "*" & [Forms]![frmDatenbank]![UfoFilter]![txtVersuchsID] & "*") AND ((tab_versuche.Datum) Like "*" & [Forms]![frmDatenbank]![UfoFilter]![txtDatum] & "*") AND ((tab_bestrahlung.Laserleistung) Like "*" & [Forms]![frmDatenbank]![UfoFilter]![txtLaserleistung] & "*") AND ((tab_bestrahlung.Linienbreite) Like "*" & [Forms]![frmDatenbank]![UfoFilter]![txtLinienbreite] & "*") AND ((tab_bestrahlung.Fokuslage) Like "*" & [Forms]![frmDatenbank]![UfoFilter]![txtFokuslage] & "*") AND ((Laserart.Laserart) Like "*" & [Forms]![frmDatenbank]![UfoFilter]![cbxLaserart] & "*") AND ((Wert_Lackart.Lackart) Like "*" & [Forms]![frmDatenbank]![UfoFilter]![cbxLackart] & "*") AND ((tab_probe.[Proben-ID]) Like "*" & [Forms]![frmDatenbank]![UfoFilter]![txtProbenID] & "*"));


wobei die Verweise auf das Unterform wie bei Donkarl beschrieben (überall) angepasst werden müssen:

Zitat[Forms]![frmDatenbank]![UfoFilter]![txtVersuchsID]

rot: Hauptformular
blau: Unterformular(-Steuerelementname)


Das bedeutet, dass die Abfrage nur für genau diese Konstellation verwendbar ist.



Würde die Filterung in (irgendeinem) Formular mit Me.Filter = xxxx  geschehen, wäre es egal, wo und wie das Form (als HFO oder UFO) verwendet würde:

Private Sub txtVersuchsID_AfterUpdate()
  Me.Filter = "[Versuchs-ID] = '" & Nz(Me!txtVersuchsID, "") & "'"
  Me.FilterOn = True
End Sub



Btw:
--Für ID-Felder keinen TEXT-Datentyp verwenden!
--Keine Sonder- und Leerzeichen verwenden!  (krasses Beispiel in tab_reflexion)
--Keine reservierten Wörter verwenden!
--Überarbeitung/Korrektur der Beziehungen dringend erforderlich!
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access