2.3k Aufrufe
Gefragt in Datenbanken von
Hallo allerseits,
ich habe folgendes Problem und hoffe, in diesem Forum Hilfe zu bekommen.

Ich habe in ACCESS 2000 ein Formular erstellt mit 2 Kombinationsfeldern (VON, BIS), die Daten aus einer Tabelle zur Auswahl bereitstellen.

Es gibt nun 2 Möglichkeiten:

a) Feld VON wird ausgefüllt und Feld BIS ist leer.
Nun sollen mir alle Werte ausgegeben werden, die dem ausgewählten Wert entsprechen.

oder

b) Feld VON und Feld BIS werden ausgewählt.
Nun sollen alle Werte ausgegeben werden, die zwischen von und bis liegen.

Wie kann ich das in einer Abfrage realisieren? Ich möchte also nur eine Abfrage erstellen, die mir die gewünschten Werte ausgibt.

Kann mir da jemand helfen?

3 Antworten

0 Punkte
Beantwortet von
Hallo, handelt es sich dabei um das Datum?
Dann frage doch ab ob bis < 1 und wenn ja dann rechnest du Datum(jetzt) - Von

wenn nicht erkläre mal bissel genauer welche Inhalte da drin stehen

Gruß
0 Punkte
Beantwortet von
Es handelt sich dabei nicht um ein Datum sondern um eine Liste von Orten.

z.B.

Berlin,
Hamburg,
Rom,
München,
Köln

Diese Angaben befinden sich in einer Tabelle von der beide Kombinationsfelder gefüllt werden.

Wähle ich jetzt z.B. im Kombi-Feld von Berlin aus und lasse das Kombi-Feld bis leer, sollen mir alle Datensätze ausgegeben werden, in denen im Ort Berlin steht.

Würde ich jetzt aber im Kombi-Feld von Berlin auswählen und im Kombi-Feld bis München, sollen mir alle Datensätze ausgegeben werden, in denen Berlin, Hamburg, Köln und München stehen.
0 Punkte
Beantwortet von rahi Experte (1.4k Punkte)
Hallo MadMike,

deine Von-Bis-Abfrage für Orte ist machbar, aber willst du wirklich ein alphabetische von-bis von Städten? Nur Berlin und München damit auszuwählen, ist nicht machbar.

Ein Vorschlag: Mit einem Listenfeld könntest du mit Mehrfachauswahl bequem die Städte auswählen und für eine Filterung benutzen. Damit kannst du von-bis-Auswahlen, Einzelauswahlen und beliebige Kombinationen daraus selektieren.

Für dein von-bis-Problem kann ich dir folgende Lösung anbieten.
Voraussetzung, damit der Code läuft[list]1. Im Formular existieren zwei Eingabefelder "von " und "bis"
2. In deinem Formular befindet sich ein Unterformular "uf" mit den einzuschränkenden Datensätzen z.B. als Datenblattansicht
3. Das Ortsfeld im Unterformular heisst "ort"
4. du hast einen Button "auswahl"
[/list]dann kommst du mit diesem Code weiter:
Private Sub auswahl_Click()

Dim krit As String
krit = IIf(IsNull(Me!von), IIf(IsNull(Me!bis), "", "ort<= '" & Me!bis "'"), IIf(IsNull(Me!bis), "ort>= '" & Me!von & "'","ort between '" & Me!von & "' and '" & Me!bis & "'"))
Me!uf.Form.Filter = krit
Me!uf.Form.FilterOn = krit <> ""
End Sub


Du kannst den Wert in der Variablen krit natürlich auch zum Aufbau eines SQL-Selects verwenden.

Gruß
Ralf
...