Access: Auswahl aus bereits Eingegebenem und Neuem

Hallo Wissende,

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.

Würde mich freuen, wenn Ihr mir helfen könntet!

Gruß
Verena

Hallo Verena,

hast du schon ausprobiert die Firmennamen in eine extra Tabelle zu schreiben und die Datenherkunft des Kombinationsfeldes auf diese Tabelle zu legen?

Dann müsstest du nur noch in die Tabelle die neuen Firmen ergänzen oder dann per VBA eine neue Firma in die Tabelle speichern lassen.

MfG
Philipp K.

Hallo Unwissende,

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

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Kleine Korrektur:

Datensatzherkunft: Select Distinct Herstellerfirma from Spieledatei order by Herstellerfirma

Hallo Verena,

dein Problem ist relativ einfach zu loesen:

  1. 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

  2. In den Eigenschaften des DropDown-Feldes folgendes einstellen:
    Herkunftstyp: Tabelle/Abfrage
    Datensatzherkunft: qryFirma
    Nur Listeneintraege: Nein

Hope this helps
Peter

Hallo Verena,

hast du schon ausprobiert die Firmennamen in eine extra
Tabelle zu schreiben und die Datenherkunft des
Kombinationsfeldes auf diese Tabelle zu legen?

Wenn ich das richtig verstanden habe, ja. Dann habe ich allerdings eine Fehlermeldung bekommen, die in etwa der „Zirkelbezug!“ bei Excel entspricht …

Dann müsstest du nur noch in die Tabelle die neuen Firmen
ergänzen oder dann per VBA eine neue Firma in die Tabelle
speichern lassen.

MfG
Philipp K.

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!

Gruß
Verena

Hallo,

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.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

1 Like

Hallo,

hast du die ComboBox auch an das entsprechende Datenbankfeld gebunden?

Tschau
Peter

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,

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.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Vielen Dank!
Danke an Frank für die ausführliche Erläuterung
und an alle für die Antworten!

Mann, wenn das hier so weitergeht, werd ich noch richtig schlau *grins*

Schönes Wochenende!
Verena