Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Arbeiten mit Kombifeld

Begonnen von edgar.basler, September 10, 2010, 15:43:21

⏪ vorheriges - nächstes ⏩

edgar.basler

Ich arbeite gerne bei Auswahlen mit Kombinationsfeldern.
Nun habe ich folgendes Problem / Wunsch:
In einem Formular gebe ich einen Datensatz ein. Hierzu ist es noch notwendig, daß aus einer anderen (Unter)Tabelle einen Datensatz angewählt werden muß. Bei dem Auswählen soll aber nicht nur das eine Feld, sondern mehrere Felder aus der (Unter)tabelle angezeigt werden. Dies funktioniert bis hierhin auch alles.

Wenn ich nun sehe, daß im angewählten Datensatz eine Änderung in einem der Felder notwendig ist, würde ich gerne im angezeigten Feld den Wert ändern und zurückspeichern. Und hier bleibe ich hängen - wie macht man sowas?

DF6GL

Es ist unklar, was genau gemacht wird.


Werden die anderen Felder aus der Untertabelle nur angezeigt oder sollen die auch in der (Haupt)Tabelle mit gespeichert werden?


Der erste Fall bedeutet, dass die Stammdaten nicht stimmig sind und zunächst  über ein an die Untertabelle gebundenes Formular, das über ein geeignetes Ereignis geladen wird,  bearbeitet und gespeichert werden sollten. Danach kann der Datensatz erneut ausgewählt werden.


Im zweiten Fall dreht es sich um redundante Datenhaltung, die im Normalfall ganz vermieden werden sollte (relationale Datenbank!) .  Soll es  trotzdem so gemacht werden, dann müssen die Werte aus der Untertabelle (Kombifeldliste) per VBA an entspr. Textfelder übergeben werden, die an die passenden Haupttabellenfelder gebunden sind.
z.B.:

Sub Kombi1_Afterupdate()
Me!FeldX = Me!Kombi1.Column(1)
Me!FeldY = Me!Kombi1.Column(2)
End Sub


edgar.basler

So wie unten beschrieben ....

Sub Kombi1_Afterupdate()
Me!FeldX = Me!Kombi1.Column(1)
Me!FeldY = Me!Kombi1.Column(2)
End Sub

habe ich es gemacht. Ich habe keine redundante Daten. Ich möchte nun das Feld "Feldy" ändern und in der eigentlichen Tabelle speichern - ohne ein neues Formular zu öffnen. Geht das? Wenn ja, wie ????

DF6GL

Hallo,

es aber klar, dass sich das auf alle darauf bezogenen Datensätze auswirkt...?

Z. B. könnte man es so machen:

Sub FeldX_Afterupdate()
Currentdb.Execute "Update Untertabelle set TabFeldX='" & Me!FeldX & "' where ID=" & Me!Kombi1.Column(0)  ' wenn der ID-Wert (Feld aus der Untertabelle) auch wirklich in der ersten Spalte des Kombis  steht und der Datentyp von TabFeldX TEXT ist.

End Sub



Ich will aber gesagt haben, dass Du Dich damit auf (sehr) dünnes Eis begibst.