Access 2003: Aus Kombifeld Datensatz bearbeiten

Hallo Wissende!

Ich hoffe Ihr könnt mir bei meinem Access-Problem weiterhelfen (hab leider im Forum und sonst im Netz nichts Passendes gefunden).

Ausgangslage:
Ich habe zwei Tabellen. Eine mit Kundenstammdaten (STAMMDATEN) und eine (INFO), die verschiedene Informationen zu einem Kunden enthält. Das bedeutet 1 Datensatz aus STAMMDATEN kann n Datensätze in INFO enthalten.

Was ich möchte:
Nun möchte ich diese Datenbanken über ein Formular steuern.
Um eine Info zu einem Kunden anzulegen möchte ich zunächst ein Formular mit einem leeren Datensatz starten lassen (bereits erledigt). In diesem Formular, dass als RecordSource die Tabelle INFO hat, ist ein Kombinationsfeld, dass auf die Tabelle STAMMDATEN verweist.
Wählt man nun in dem Kombifeld eine Firma aus (also beim Ereignis „On change“ bzw „Bei Änderung“), so soll zunächst von Access der Datensatz dieser Firma aus STAMMDATEN gelesen werden und dann bestimmte Datenfelder im neuen Datensatz zu INFO eingefügt werden.
Der Datensatz enthält noch weitere Datenfelder, die dann manuell gefüllt werden und dann zusammen abgespeichert werden.

Mit anderen Worten: ein Datensatz in INFO setzt sich zum Teil aus übernommenen Daten aus STAMMDATEN und manuell eingegebene Daten zusammen.

Hört sich nett an - ABER WIE SETZT MAN SO ETWAS IN ACCESS UM? Ich schätze hier wird ein kleiner Code in VBA für das Ereignis „Bei Änderung“ in dem Kombifeld benötigt, oder?

Wäre echt klasse, wenn Ihr mir hierbei helfen könntet…

DANKE!!!

Hallo,

ich denke mal, Du zäumst das Pferd vom Schwanz her auf…

Erstell ein normales Form mit Datenherkuft zur Tabelle „Kundenstammdaten“ und darin ein UFO-Steuerelement, das als Herkunftsobjekt das im Folgenden beschriebene Endlosform erhält.
Die Eigenschaften „Verknüpfen von/nach“ des UFO-Steuerelementes stellst Du auf die entspr. Schlüsselfelder ein.

Das Endlosform erhält als Datenherkunft die Tabelle „Info“ und alle Felder, die für dieses Form nötig sind. Die Schlüsselfelder
(Primärschlüssel falls Autowert und Fremdschlüssel–> Primärschlüssel aus KundenStammdaten) müssen nicht unbedingt als Textfelder vorhanden sein.

Mit dieser Konstruktion zeigt das UFO jeweils alle zum akt. angezeigten Kunden gehörenden Datensätze aus Tabelle „Info“ an, und können auch beliebig bearbeitet werden.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Mike,

Wählt man nun in dem Kombifeld eine Firma aus (also beim
Ereignis „On change“ bzw „Bei Änderung“),

besser bei Fokusverlust!

so soll zunächst von
Access der Datensatz dieser Firma aus STAMMDATEN gelesen
werden und dann bestimmte Datenfelder im neuen Datensatz zu
INFO eingefügt werden.

ok, die Tabelle Stammdaten ist die Datenbasis für das Kombifeld?

Hört sich nett an - ABER WIE SETZT MAN SO ETWAS IN ACCESS UM?
Ich schätze hier wird ein kleiner Code in VBA für das Ereignis
„Bei Änderung“ in dem Kombifeld benötigt, oder?

siehe hier die FAQ:2710

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo Wolfgang,

und danke für die schnelle Antwort!

ok, die Tabelle Stammdaten ist die Datenbasis für das
Kombifeld?

Korrekt. Angezeigt wird die Spalte „Firma“ neben der Spalte „Ort“, so kann man direkt die korrekte Firma auswählen.
Nun hätte ich es gerne, dass nachdem die Firma ausgewählt wurde, nicht nur die beiden Spalten des Kombifeldes eingelesen werden, sondern vielmehr der Datensatz dieser ausgewählten Firma aus der Tabelle „Stammdaten“ gelesen wird, und dann in dem neuen Datensatz der anderen Tabelle entsprechend die benötigten Felder gefüllt werden. Weitere Felder in diesem neuen Datensatz werden dann manuell gefüllt… Und hier komme ich nicht weiter…

Gruß

Mike

Hallo,

es ist db-technischer Unsinn, Daten außer dem Primärschlüssel aus einer Tabelle mehrmals in anderen Tabellen speichern zu wollen und führt nur zu weiteren Problemen, die da heißen: Datenredundanz, Mehrdeutigkeit, unnormalisierte Tabellen, etc.

Wenn das ignoriert werden soll, dann:

In der Abfrage (Datensatzherkunft) des Kombifeldes alle benötigten Tabellenfelder hinzufügen und die Spaltenanzahl anpassen.

Die Ereignisprozedur „Nach Aktualisierung“ des Kombis verwenden (ähnlich so):

Sub Kombi1_Afterupdate()
Me!Firmaname=Me!Kombi1.Column(1)
Me!FirmenOrt=Me!Kombi1.Column(2)
.
.
End Sub

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

1 Like

Hallo Franz!

Vielen Dank für Deine Antwort.

Ich habe es mal genauso versucht, wie Du es vorgeschlagen hast (also Formular welches auf STAMMDATEN zugreift mit UFO welches auf INFO zugreift).
In dem Formular selbst habe ich jetzt meine Kombibox mit den einzelnen Firmen und wenn ich dort eine auswähle so erscheinen die entsprechenden Daten auch in dem UFO.

Ich probier jetzt noch ein wenig - aber es scheint so zu passen! DANKE!!!

Mike

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]