Kombinationsfeld in Access

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.
 

Anhänge

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.
 
Hallo,

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.
 
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:
Private Sub ArtikelSuchen_AfterUpdate()
    Me.Form.Filter = "ArtikelNr.=" & Val(Me.ArtikelSuchen.Value)
    Me.Form.FilterOn = True
End Sub

So will das aber nicht wirklich klappen.
 
Damit du den Code nur einmal schreiben oder anpassen musst, würde ich die Filterfunktion in eine eigene Prozedur auslagern. Der Aufruf erfolgt dann jeweils über das onClick-Ereignis der entsprechenden Liste.

Visual Basic:
Private Sub Liste_Stadt_onClick ()
'Aufruf der gemeinsamen Filterfunktion
DB_Filter

End Sub

Private Sub Liste_Nummer_onClick ()
'Aufruf der gemeinsamen Filterfunktion
DB_Filter

End Sub

Sub DB_Filter ()

Dim flt As String
flt = ""

If Liste_Stadt.Value <> "Alle" Then
    flt = "stadt = " & Liste_Stadt.Value
End If

If Liste_Nummer.Value <> "Alle" And flt = "" Then
    flt = "nummer = " & Liste_Nummer.Value
ElseIf Liste_Nummer.Value <> "Alle" And flt <> "" Then
    flt = flt & " AND nummer = " & Liste_Nummer.Value
End If

If flt <> "" Then
    Me.Filter = flt
    Me.FilterOn = True
Else
    Me.FilterOn = False
End If

End Sub
 
Zurück