nochmal ne Frage zu Access. Ich habe ein Formular mit Unterformular.
In einem Kombinationsfeld stehen verschiedene Städte. Wähle ich
z.B. Berlin aus, so sollen im Unterformular alle Produkte angezeigt
werden die man in Berlin kaufen kann. Wie muss ich das Kombinationsfeld
formatieren damit es genauso funktioniert bzw. ist sowas mit einem
Kombinationsfeld überhaupt möglich?
Bei den Eigenschaften des Unterformulars gibt es die Angaben "Verknüpfen von" und "Verknüpfen nach".
Hier musst du angeben welche Felder für das Filtern des Unterformulars zuständig sind, bei dir das Kombinationsfeld aus dem Hauptformular und das entsprechende Feld im Unterformular.
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
Hmm hab ich gefunden geht aber nicht. Also ich hab 2 Tabellen, in der einen steht nur die ID und eine
Stadt und in der anderen meine Artikel wobei ich in einer Spalte die IDs der Städte als Fremdschlüssel zuweise. Also muss ich doch bei "Verknüpfen von" meine Städtetabelle angeben und bei
"Verknüpfen nach" meine Artikel Tabelle oder nicht?
Ich vermute mal das das Kombinationsfeld als Wert den Namen der Stadt liefert und nicht die ID die du für das Unterformular brauchst.
Man kann aber Kombinations- und Listenfelder so einstellen das sie (wie hier) den Namen anzeigen aber als Wert die ID liefern.
Dafür in die Liste sowohl das Feld "ID" und das Feld "Name" in das Listenfeld aufnehmen, dann in den Eigenschaften die Spaltenbreite für die erste Spalte auf 0 setzen.
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
Also ich hab jetzt in der zeilen für die übergeordnete Tabelle ID und Stadt stehen und für
die untergeordnete Stadt und Artikel. Geht aber nicht auch nicht wenn ich die Spaltenbreite
des Kombinationsfelds auf 0 setze.
Wo hast du die Spalten angegeben, in der Verknüpfung vom Haupt- zum Unterformular? Dann hast du was falsch verstanden.
Du musst die beiden Spalten im Listenfeld angeben.
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
So da bin ich wieder. Also ich habe ja die Tabelle Stadt die mit meinen Artikeln verknüpft ist. Ich habe also mal auf Formular geklickt und bekomme dann ein Formular der Tabelle werk mit dem Unterformular der Tabelle Artikel. Dann gehe ich auf Steuerelemente und wähle das Kombinationsfeld aus. Dann sage ich dem assitenten das er die Wertw des Kombinationsfeldes aus der Tabelle Stadt nehmen soll und zwar nur die stdt und nicht die ID. Dann stelle ich im Eigenschaftenfenster die des Kombinationfeldes auf 0. Dann erstelle ich die "Verknüpfung von " und " Verknüpfung nach" im Eigenschaftenfeld des Unterformulars. Ja und da taucht dann wohl das Problem auf.
Du musst sowohl das Feld "ID" als auch das Feld "Stadt" in die Liste aufnehmen (als erstes Feld die ID).
Dann stellst du die Spaltenbreite z.B. auf "0cm;5cm" ein. Somit sieht man nur den Städtenamen aber die ID ist trotzdem in der Liste enthalten.
Jetzt kannst du den Wert der Liste mit dem Unterformular verknüpfen.
Schau zur Sicherheit bei den Eigenschaften der Liste im Register "Daten". Dort gibt es die Eigenschaft "Gebundene Spalte", hier muss eine 1 drin stehen weil du ja als Wert die ID brauchst.
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
Ich weiss nicht aber es will nicht klappen, ich weiss einfach nicht was ich falsch mache. Ich hab mal eine ganz simple Beispile Tabelle angefügt, vielleicht kannst du mir darasn zeigen was da falsch ist.
Ich bekomme beim Öffnen die Meldung "Datenbank hat ungültiges Format...". Sieht so aus als ob du mit einer aktuelleren Access Version als ich arbeitest (ich habe 2000).
Deshalb hänge ich jetzt mal hier ein Beispiel von mir dran. Es gibt die Tabellen "stadt" und "artikel" die über die Felder "stadt.id" und "artikel.stadt" verknüpft sind.
Dann gibt es das Formular "artikel" in dem die Artikel dargestellt werden und das als Unterformular dient.
So und dann noch das Formular "Formular1". Dieses enthält ein Listenfeld mit allen Städten. Klickt man einen Wert an, werden die Artikel entsprechend gefiltert.
Entweder du versuchst es damit oder du speicherst deine Datenbank im 2000-er Format, dann schau ich mir die mal an.
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
Danke für die Antwort. Aber du hast das ja jetzt mit VBA gemacht richtig? Das hatte ich nicht berücksichtigt ich dachte es geht auch ohne aber jetzt weiss ich ja bescheid. Danke.
also habe jetzt mithilfe des Codes von Tombe mein Kombinationsfeld wunderbar einsetzen können.
Frage: Kann ich jetzt noch ein weiteres Kombinationsfeld einfügen, was meine Tabelle nach
einem anderen Kriterium filtert obwohl der Inhalt des Kobinationsfeldes aus einer anderen
Tabelle kommt?
Generell gehen tut das schon, du musst dann halt die Filterbedingungen kombinieren.
Ob der Inhalt der Liste aus einer anderen Tabelle kommt ist nicht wichtig. Entscheidend ist nur das ein Wert geliefert wird der in der Tabelle (die du filtern willst) verarbeitet werden kann.
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
Ja und zwar habe ich ja mit deinem Code die Stadt gefiltert. Also wenn in meinem Kombinationsfeld Berlin steht, werden mir Unterformular ja alle Artikel aus Berlin angezeigt.
Und jetzt mal angenommen ich mache mir noch ein Kombinationsfeld und lese dort alle Artikelnummern
ein. Dann soll bei Auswahl der ArtkelNr. nur dieser eine Artikel (in diesem Fall in Berlin)
angezeigt werden.
Code :
1
2
3
4
Private Sub ArtikelSuchen_AfterUpdate()
Me.Form.Filter = "ArtikelNr.=" & Val(Me.ArtikelSuchen.Value)
Me.Form.FilterOn = True
End Sub
Sobald es etwas Interessantes - wie z.B. unsere beliebten Buch-Verschenkaktionen - gibt, erhältst du unseren regelmäßig erscheinenden Newsletter. Natürlich kostenlos und jederzeit abbestellbar!