Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

abhängige Kombinationsfelder als Filter

Begonnen von Sklerosius, Juli 21, 2014, 22:50:43

⏪ vorheriges - nächstes ⏩

Sklerosius

Hallo zusammen,

ich habe mir eine DB erstellt, die als Wissensdatenbank für Prozessfehler fungieren soll (im Anhang). Das Formular frmAuswahlabfrage zeigt die Daten von frmAlleTblKombiniert an. Jetzt habe ich mehrere Kombinationsfelder angelegt. Das erste soll das verfahren auswählen. Dann sollen nur noch die Datensätze mit diesem Verfahren angezeigt werden. Das funktioniert auch soweit. Die zweite Auswahl soll nun im Kombinationsfeld aber auch nur noch die Fehlerbilder anzeigen, die durch die Erstauswahl noch in der Tabelle angezeigt werden. Dann soll hier eine weitere Auswahl getroffen werden können, die die Anzeige noch weiter einschränkt.
Noch besser wäre es, wenn im Kombinationsfeld eine Mehrfachauswahl möglich wäre.

Ach ja und wenn möglich würde ich gerne bevor eine Auswahl getroffen wurde alle Einträge anzeigen.

Wär super, wenn mir hier jemand helfen kann.

Gruss Alex

DF6GL

Hallo,


siehe hier:   http://www.donkarl.com/?FAQ4.36


In einem Kombifeld können keine Bilder angezeigt werden.

Mit einem Kombifeld ist keine Mehrfachauswahl möglich. (Ein Listenfeld wäre geeignet).

Alles anzeigen:  http://www.donkarl.com/?FAQ3.14


Auf Anlagenfelder sollte verzichtet werden. (Besser den Dateipfad als Text speichern und dynamisch mit einem
Bildsteuerelement anzeigen. Problem dabei: funktioniert nicht (ohne weiteren Aufwand) in einem Endlosformular)

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

Sklerosius

Vielen Dank für die Antwort.

Hab das jetzt alles ausprobiert, ich bekomms aber einfach nicht hin. Entweder es lässt sich nur das erste Kombifeld filtern, oder es erscheinen gar keine Daten im Formular.

Hat irgendjemand vielleicht eien Vorschlag, wie der Code nur für das Filtern mit den Kombinationsfeldern möglich wäre? Das wäre am wichtigsten. Für den Rest hätte ich dann noch viel Zeit zum Optimieren.

Danke.

MaggieMay

Hallo,

beschreibe doch bitte, wie du es versucht hast und zeige den Code dazu.
Freundliche Grüße
MaggieMay

Sklerosius

Hi

das ist der Code von meinem ersten Kombinationsfeld:
SELECT 0 AS verID, "<Alle anzeigen>" AS verName FROM qryAlleTblKombiniert UNION SELECT verID, verName FROM qryAlleTblKombiniert
ORDER BY verName;

Das funktioniert einwandfrei. Wenn ich jetzt den gleichen Code in das zweite Kombinationsfeld schreibe, wird in meinem Formular von qryAlleTblKombiniert nichts mehr angezeigt.
Code zweites Kombifeld:
SELECT 0 AS fehID, "<Alle anzeigen>" AS fehName FROM qryAlleTblKombiniert UNION SELECT fehID, fehName FROM qryAlleTblKombiniert
ORDER BY fehName;

Im Formular ist Folgendes eingegeben:

Herkunftsobjekt: frmAlleTblKombiniert
Verknüpfen nach: cmbVerfahren;cmbFehlerbilder
Verknüpfen von: verID;fehID

Im zweiten Kombinationsfeld hab ich dann noch Folgendes ausprobiert. Hier sagt Access mir dass der Code falsch wäre:
Me!cmbFehlerbilder.RowSource = "SELECT fehName FROM tblFehlerbilder WHERE verID= " & Me!cmbVerfahren
Gleicher Fehler ergibt:
Forms!frmAuswahlabfrage!cmbVerfahren

Gruss Alex

Sklerosius

So ein Teil hab ich jetzt hinbekommen. Mit folgendem Code kann ich die Auswahlen über alle Kombifelder filtern:
Option Compare Database

Private Sub cmbFehlerbilder_AfterUpdate()
With Me!frmAlleTblKombiniert.Form
.Filter = "fehID = " & Me!cmbFehlerbilder
.FilterOn = True
End With
End Sub

Private Sub cmbGrundursachen_AfterUpdate()
With Me!frmAlleTblKombiniert.Form
.Filter = "gruID = " & Me!cmbGrundursachen
.FilterOn = True
End With
End Sub

Private Sub cmbUrsachen_AfterUpdate()
With Me!frmAlleTblKombiniert.Form
.Filter = "ursID = " & Me!cmbUrsachen
.FilterOn = True
End With
End Sub

Private Sub cmbVerfahren_AfterUpdate()
With Me!frmAlleTblKombiniert.Form
If Not Nz(Me!cmbVerfahren, 0) = 0 Then
.Filter = "verID = " & Me!cmbVerfahren
.FilterOn = True
Else
.Filter = ""
End If
End With
Me!cmbFehlerbilder.RowSource = "SELECT fehBeschreibung FROM tblFehlerbilder WHERE fehverIDRef= " & Me!cmbVerfahren
End Sub


Jetzt fehlt nur noch, dass das zweite Kombifeld nur die Werte zur Auswahl zulässt, die im Formular nach dem ersten Filter auch noch angezeigt werden oder alternativ die Werte, die über die ReferenzID mit der Auswahl des ersten Kombinationsfeldes übereinstimmen.

Gruss Alex

MaggieMay

So wie ich das verstanden habe, könnnte dies der neue Abfrage-Code für die RowSource des 2. Kombifeldes sein:Dim strSQL As String
strSQL = "SELECT 0 AS fehID, '<Alle anzeigen>' AS fehName FROM qryAlleTblKombiniert " & _
              "UNION " & _
              "SELECT fehID, fehName FROM qryAlleTblKombiniert " & _
              "WHERE verID= " & Me!cmbVerfahren & " " & _
              "ORDER BY fehName;"
Freundliche Grüße
MaggieMay