# Drop down Menü für Abfragen



## starbug (27. Oktober 2011)

Hallo,

so mal wieder eine Frage. Ich würde gerne wissen ob es möglich ist, eine Abfrage mit einem Drop Down Menü zu starten? Ich weiss halt wie man eine Parameterabfrage erstellt, aber der Text ( z.B. eine Stadt) soll halt nicht eingetippt werden, sondern aus einer Liste ausgesucht werden können. Geht sowas?


----------



## tombe (27. Oktober 2011)

Du bist ganz schön anstrengend 

Willst du eine "gespeicherte" Abfrage ausführen und den Inhalt der Liste da einfügen oder wird die Abfrage/die SQL-Anweisung in VBA erstellt?


----------



## starbug (27. Oktober 2011)

He he ich muss das leider alles für meinen Chef machen und der hat immer wieder neue Ideen, deshalb frag ich so oft was nach. 

Also die Abfrage habe ich gepeichert aber könnte Sie natürlich auch in VBA schreiben. Ich weiss halt nur nicht wie quasi ein Drop Down Menü als Parameter übergeben kann.


----------



## tombe (27. Oktober 2011)

Im folgenden Code gibt es ein Listen-Steuerelement mit dem Namen "Liste", beim Anklicken eines Eintrages soll die Tabelle dann gefilter werden:


```
Private Sub Liste_Click()

If Liste.Value <> "Alle" Then
    Me.Filter = "dein_feld = " & Liste.Value
    Me.FilterOn = True
Else
    Me.FilterOn = False
End If

End Sub
```

Wird in der Liste der Eintrag "Alle" angeklickt, wird der Filter wieder aufgehoben.


----------



## starbug (27. Oktober 2011)

Hmmm, 

danke schonmal dafür das sieht ganz gut aus. Aber muss das Steuerelement nicht irgendwo definiert werden? Und was bedeutet ME? Und muss ich denn bei "mein feld..." sowas z.B. schreibe:
"stadt = berlin" ?


----------



## tombe (27. Oktober 2011)

Klar muss das Steuerelement definiert sein, in der Form wo du filtern willst.

Nachdem du aber geschrieben hast das du einen Wert aus einer Liste auswählen willst dachte ich das es die (DropDown) Liste bereits gibt.

"ME" steht für das Fenster in dem der Code aktuell ausgeführt wird. Du könntest dafür auch den tatsächlichen Namen der Form nahmen.

Für "dein_feld" musst du natürlich den Namen des Feldes deiner Datenbank eingeben, deshalb habe ich es ja so genannt!


```
Me.Filter = "stadt = " & Liste.Value
```

Genauso wie du den Feldnamen ändern musst, musst du natürlich dann auch den Namen der Liste anpassen.


----------



## starbug (27. Oktober 2011)

Also die Liste hatte ich noch nicht als Steuerelement angelegt. Ich werds mal versuchen und schreib dann mal was daraus geworden ist


----------



## Thomas Ramel (28. Oktober 2011)

Grüezi Starbug

Wenn ich das richtig verstehe, dann hast Du eine Abfrage mit einem Parameter, der beim Aktualisieren der Abfrage eingegeben werden kann/muss?

Dann ist dein Anliegen IMO ganz ohne VBA-Programmierung lösbar.

Klicke rechts auf den Datenbereich der Abfrage und wähle im Kontextmenü 'Parameter' aus.
Hier kannst Du nun diesen Parameter mit einer Zelle verbinden und festlegen, dass die Abfrage aktualisiert wird, wenn sich der Inhalt der Zelle verändert.

In der Zelle selbst legst Du nun über DAte/Gültigkeit oder DAten/Datenüberprüfung (ab xl20007) eine Güligkeitsliste an, in der Du die Auswahl(en) definierst.

Wenn Du nun aus dem Gültigkeits-DropDown einen Wert auswählst wird deine Abfrage automatisch aktualisiert.


----------



## starbug (2. November 2011)

So bin wieder zurück aus diesem langen WE und werde beide Lösungsansätze im laufe des Tages
mal anwenden. Aber danke schonmal für die Tips.


----------



## starbug (4. November 2011)

Hallo Thomas,

habe das mal versucht was Du mir gesagt hast, aber was muss ich denn bei Parameter genau 
eingeben? Muss ich da den Feldnamen eingeben sowie ich es bei den Kriterien in
der Entwurfsansicht der Abfrage machen würde?


----------



## Thomas Ramel (4. November 2011)

Grüezi Starbug

Hmmm, wo genau befindest Du dich auf der Reise denn nun?

Wenn Du einen Parameter in der SQl-Ansicht mit []-Klammern erfasst kannst du diesen dann anschliessend mit einer Zelle verbinden nachdem die Abfrage das erste Mal ausgeführt worden ist.


----------



## starbug (4. November 2011)

Hmmm,

also mit SQL mache ich das normalerweisen gar nicht. 
In der Entwurfsansicht einer Abfrage gebe ich einfach
als Kriterium den Text ein mit dem der Parameter
eingeben werden kann, also so etwa:
[Bitte geben Sie eine Zahl ein]. Das klappt wohl auch
aber ich weiss noch nicht so genau wie ich das verbinden soll.


----------



## Thomas Ramel (4. November 2011)

Grüezi starbug

Ja, das ist schon mal richtig so.
Lass dann die Abfrage ausführen (vielleicht verwendest Du als Bezeichnung beim Parameter mal nur ein einzelnes Wort ohne Leerzeichen) und gib die Daten in ein Tabellenblatt aus.

Klicke dann rechts in diesen Datenbereich und wähle im Kontextmenü 'Parameter' aus - der nachfolgende Dialog ist eigentlich dann selbsterklärend.


----------



## starbug (4. November 2011)

Also das habe ich jetzt alles gemacht.
Aber nochmal zu Verständnis: Dieser " Button" Parameter gibt es nur in der Entwurfsansicht
der Abfrage richtig? Weil wenn ich die Abfrage starte und danach die View erscheint kann ich
da nichts mehr mit Paramter anklicken. Und klicke ich auf Parameter in der Entwurfsansicht öffnet sich ein Fenster in dem ich einen Parameter und den Felddatentyp eingeben kann. Ich benutze übrigens Access 2007


----------



## Thomas Ramel (4. November 2011)

Grüezi Starbug



			
				starbug hat gesagt.:
			
		

> Ich benutze übrigens Access 2007



Ach so, dann bin ich wohl auf dem falschen Dampfer - ich bin stets von Excel ausgegangen....


----------



## tombe (4. November 2011)

Ich will mich ja nicht aufdrängen, aber hast du es mal so wie hier beschrieben versucht?


----------



## starbug (4. November 2011)

He He, Du drängst dich nicht auf. Habs aber noch nicht versucht und VBA dauert bei mir leider immer was länger :-(


----------

