Access 97, Kombinationsfeld

Hallo Gemeinde und ein frohes neues Jahr,

ich habe ein Kombinationsfeld in einem Formular eingefügt.
Dieses Kombinationsfeld vergibt Namen.

Beispiel eines Dateneintrags:
1999, Äpfel, 30 gekauft, 15 gegessen
1999, Birnen, 33 gekauft, 25 gegessen
1999, Bananen, 10 gekauft, 10 gegessen
2000, Äpfel, 37 gekauft, 27 gegessen
2000, Birnen, 34 gekauft, 29 gegessen
2000, Bananen, 13 gekauft, 9 gegessen

Was muß ich machen, damit im Kombinationsfeld bei jedem neuen Eintrag, automatisch der nächste Name (Äpfel, Birnen und Bananen) markiert ist und übernommen wird?

Ganz toll wäre auch, wenn jemand eine Möglichkeit kennt, wie man überprüfen kann, dass das Feld „gegessen“ darauf geprüft werden kann, ob es kleiner/gleich dem Feld „gekauft“ ist.

Dank und Gruß
Seppel

Hallo Seppel,

ich hoffe ich habe dich richtig verstanden:
Ein Formular mit vier Steuerelementen im Detailbereich:
Textfeld, KombiFeld, Textfeld, Textfeld.

Stimmt das soweit?

Wenn du nun einen Datensatz fertig eingeben hast und zu einem neuen Datensatz springst, soll im Feld Name (KombiFeld) ein bestimmter Wert vorgeschlagen werden. Richtig?

Außerdem soll geprüft werden, ob nicht mehr Obst gegessen als gekauft wurde. Richtig?

So wenn ich also alles richtig verstanden habe, solltest du mal folgendes probieren (Habe noch nicht alles ausprobiert, sollte aber funktionieren):

  1. Setze im Ereigis ‚AfterUpdate‘, des Kombifeldes, die Eigenschaft ‚DefaultValue‘ auf den nächsten gewünschten Wert, z.B. „Birnen“. Dieser wird dann beim nächsten neuen Datensatz vorgeschlagen.

2a. Am besten Prüfung direkt vor dem Abspeichern des Datensatzes durch. Im Ereignis ‚BeforeUpdate‘ der Form, setzt du den Parameter ‚Cancel‘ auf True, falls deine Bedingung nicht erfüllt ist. Dadurch wird das Speichern des Datensatzes unmöglich. Ist deine Bedingung erfüllt läßt du den Parameter ‚Cancel‘ auf seinem Default-Wert (False) stehen -> der Datensatz kann abgespeichert werden. Diese Möglichkeit geht immer, so hast du volle Kontrolle.

2b. Alternativ kannst du bei kleinen Prüfungen auch die Eigenschaft ‚GültigkeitsRegel‘ (‚ValidationRule‘) und ‚Gültigkeitsmeldung‘ (‚ValidationText‘) wie folgt setzen:
GültigkeitsRegel = "[gegessen][Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ich hoffe ich habe dich richtig verstanden:
Ein Formular mit vier Steuerelementen im Detailbereich:
Textfeld, KombiFeld, Textfeld, Textfeld.

Stimmt das soweit?

ja, nur das es statt einem Kombifeld ein Listenfeld ist. Da hatte ich mich falsch ausgedrückt, aber das sollte kein problem sein.

Wenn du nun einen Datensatz fertig eingeben hast und zu einem
neuen Datensatz springst, soll im Feld Name (KombiFeld) ein
bestimmter Wert vorgeschlagen werden. Richtig?

Das ist richtig, es soll jeweils der nächste Name vorgeschlagen und übernommen werden.

So wenn ich also alles richtig verstanden habe, solltest du
mal folgendes probieren (Habe noch nicht alles ausprobiert,
sollte aber funktionieren):

  1. Setze im Ereigis ‚AfterUpdate‘, des Kombifeldes, die
    Eigenschaft ‚DefaultValue‘ auf den nächsten gewünschten Wert,
    z.B. „Birnen“. Dieser wird dann beim nächsten neuen Datensatz
    vorgeschlagen.

Das funktioniert, nur wird dann leider immer ‚Birnen‘ vorgeschlagen. Als nächstes sollte dann ja ‚Bananen‘
und dann der darauffolgende Name vergeben werden.

ich hoffe ich habe dir etwas geholfen.

der Rest hat prima geklappt.

Hallo Gemeinde und ein frohes neues Jahr,

ich habe ein Kombinationsfeld in einem Formular eingefügt.
Dieses Kombinationsfeld vergibt Namen.

Beispiel eines Dateneintrags:
1999, Äpfel, 30 gekauft, 15 gegessen
1999, Birnen, 33 gekauft, 25 gegessen
1999, Bananen, 10 gekauft, 10 gegessen
2000, Äpfel, 37 gekauft, 27 gegessen
2000, Birnen, 34 gekauft, 29 gegessen
2000, Bananen, 13 gekauft, 9 gegessen

Was muß ich machen, damit im Kombinationsfeld bei jedem neuen
Eintrag, automatisch der nächste Name (Äpfel, Birnen und
Bananen) markiert ist und übernommen wird?

Ganz toll wäre auch, wenn jemand eine Möglichkeit kennt, wie
man überprüfen kann, dass das Feld „gegessen“ darauf geprüft
werden kann, ob es kleiner/gleich dem Feld „gekauft“ ist.

Dank und Gruß
Seppel

Access 97, Listenfeld Standardwert ändern
Hallo Seppel

ich hoffe ich habe dich richtig verstanden:
Ein Formular mit vier Steuerelementen im Detailbereich:
Textfeld, KombiFeld, Textfeld, Textfeld.

Stimmt das soweit?

ja, nur das es statt einem Kombifeld ein Listenfeld ist. Da
hatte ich mich falsch ausgedrückt, aber das sollte kein
problem sein.

Ok, dann halt Listenfeld

Wenn du nun einen Datensatz fertig eingeben hast und zu einem
neuen Datensatz springst, soll im Feld Name (KombiFeld) ein
bestimmter Wert vorgeschlagen werden. Richtig?

Das ist richtig, es soll jeweils der nächste
Name vorgeschlagen und übernommen werden.

So wenn ich also alles richtig verstanden habe, solltest du
mal folgendes probieren (Habe noch nicht alles ausprobiert,
sollte aber funktionieren):

  1. Setze im Ereigis ‚AfterUpdate‘, des Kombifeldes, die
    Eigenschaft ‚DefaultValue‘ auf den nächsten gewünschten Wert,
    z.B. „Birnen“. Dieser wird dann beim nächsten neuen Datensatz
    vorgeschlagen.

Das funktioniert, nur wird dann leider immer
‚Birnen‘ vorgeschlagen. Als nächstes sollte dann ja ‚Bananen‘
und dann der darauffolgende Name vergeben werden.

Ich habe ja auch nicht gemeint, daß du DefaultValue immer auf „Birnen“ setzen sollst, sondern abfragen, was der aktuelle Wert ist und dann ensprechend den DefaultValue setzen.

IF MeinList.value="Birnen" THEN
 MeinList.DefaultValue="Bananen"
END IF

Da habe ich mich wohl nicht klar genug ausgedrückt.

Da fällt mir nochwas ein. Probier vielleicht mal folgendes:

IF MeinList.ListIndex 

Vielleicht funkts, ich habe nicht die Zeit es auszuprobieren.

Bis denn
Markus