ich möchte in einer Tabelle ein Auswahlfeld haben, und zwar sollen im Idealfall immer alle Namen, die ich bereits eingegeben habe, dort auszuwählen sein.
Es geht um eine Spieledatei, dort speziell um das Feld der Herstellerfirma. Diese Firmen wiederholen sich immer wieder, ab und zu kommt aber auch eine hinzu, die noch nicht dabei war.
Ich hätte nun gern, dass im Dropdownfeld immer die angezeigt werden, die schon drin sind (aber jedes natürlich nur einmal), und dass ich außerdem die Möglichkeit habe, eine neue Firma hinzuzufügen. Geht das irgendwie mit den Einstellungen?
Mit VBA oder wie das heißt kenne ich mich nicht aus, kenne nur z. B. die meisten Abfragearten.
Ich benutze Access 2003.
ich möchte in einer Tabelle ein Auswahlfeld haben, und zwar
sollen im Idealfall immer alle Namen, die ich bereits
eingegeben habe, dort auszuwählen sein.
Es geht um eine Spieledatei, dort speziell um das Feld der
Herstellerfirma. Diese Firmen wiederholen sich immer wieder,
ab und zu kommt aber auch eine hinzu, die noch nicht dabei
war.
Ich hätte nun gern, dass im Dropdownfeld immer die angezeigt
werden, die schon drin sind (aber jedes natürlich nur einmal),
und dass ich außerdem die Möglichkeit habe, eine neue Firma
hinzuzufügen. Geht das irgendwie mit den Einstellungen?
Erstell einfach ein Kombifeld („Herstellerfirma“), das an das Tabellenfeld „Herstellerfirma“ gebunden ist und folgende Eigenschaften hat:
Datensatzherkunft: Select Distinct Herstellerfirma from Spieledatei oder by Herstellerfirma
(„Spieledatei“ —> Tabellenname)
Spaltenanzahl: 1
Spaltenbreiten: 5cm
Nur Listeneinträge: Nein
Zusätzlich ist diese Ereignisprozedur ratsam:
Sub Herstellerfirma_Enter()
Me!Herstellerfirma.Requery
End Sub
Erstelle ein Abfrage, die nur die entsprechende Spalte deiner Tabelle enthaellt, i.d.F Firmenname,dann rechte Maustaste-Menu „Funktionen“,bei der Spalte Funktion:„Gruppierung“ einstellen , ewt. Sortierung einstellen. Speichere die Abfrage, z.B. qryFirma
In den Eigenschaften des DropDown-Feldes folgendes einstellen:
Herkunftstyp: Tabelle/Abfrage
Datensatzherkunft: qryFirma
Nur Listeneintraege: Nein
Danke … Feedback und noch eine Frage
Erst mal vielen Dank!!
Peter - super, ich versteh Deine Antwort, habe sogar was Neues gelernt (bisher hatte ich Nachschlagen immer mit dem Assistenten eingesetzt, dort hatte ich auch eine „Zirkelbezug“-Meldung bekommen), nur … wenn ich was Neues dazuschreibe, erscheint das leider nicht in der Liste, auch nicht nach erneutem Öffnen. Damit kann ich aber auch leben.
Franz - Könntest Du das mit der Ereignisprozedur bitte näher erläutern? Ich habe leider keinen Schimmer, wo ich das hinschreiben muss usw. … Wäre toll!
Franz - Könntest Du das mit der Ereignisprozedur bitte
näher erläutern? Ich habe leider keinen Schimmer, wo ich das
hinschreiben muss usw. … Wäre toll!
Im Formularentwurf markiere das Kombifeld und klick im Eigenschaftenfenster/Ereignisse auf die 3 Pünktchen am rechten Rand der Eigenschaftenzeile „Beim Hingehen“. Wähle im folgenden Fenster „Code“ aus (falls das erscheint), um den VBA-Editor zu öffnen. Dort schreibst Du die Requery-Code-Zeile in den schon erstellten Prozedurrumpf.
Hallo Peter,
ich weiß nicht … *schäm* Ich verstehe offenbar doch NOCH weniger davon, als ich dachte. Hallo Franz,
danke, damit klappt es jetzt!
Könntest Du mir Unwissenden bitte noch erklären, was „Select Distinct“ von „Select“ unterscheidet? Und was ME! bedeutet?
(Dabei hatte ich beim ersten Eingeben übrigens ein Problem, da hat er gemeckert; beim zweiten Versuch war aber alles ok.
Viele Grüße und nochmals herzlichen Dank für Eure Mühe!
Verena
Hallo Peter,
ich weiß nicht … *schäm* Ich verstehe offenbar doch NOCH
weniger davon, als ich dachte. Hallo Franz,
danke, damit klappt es jetzt!
Könntest Du mir Unwissenden bitte noch erklären, was „Select
Distinct“ von „Select“ unterscheidet?
Distinct unterdrückt die Anzeige von mehrfachen Datensätzen (bezogen auf die Felder in der Select-Liste
Und was ME! bedeutet?
(Dabei hatte ich beim ersten Eingeben übrigens ein Problem, da
hat er gemeckert; beim zweiten Versuch war aber alles ok.
ME im VBA-Code referenziert das akt. Formular oder den Bericht, in dessen Modul der Code abläuft.
Me!MeinTextfeld1
entspricht
Forms!frmBeispielFormular!
oder ganz ausführlich:
Forms(„frmBeispielFormular“).Controls.Item(„MeinTextfeld1“)
wenn dieser Code im Formular „frmBeispielFormular“ geschrieben wurde, bzw. dort ausgeführt wird.