Supportnet / Forum / Datenbanken
Speichern mehrer Felder aus Kombinationsfeld
Frage
Hallo,
ich arbeite noch nicht lange mit Access und brauche Hilfe.
Ich möchte in einem Formular zur Tabelleneingabe aus einem Kombinationsfeld, in dem mehrere Spalten aus einer Tabelle angezeigt werden zwei Tabellenwerte in der zu pflegenden Tabelle Auftragspositionen speichern.
Beispiel:
Das Formular dient der Erfassung von Sätzen in der Tabelle "Auftragspositionen". Das Kombinationsfeld 01 zeigt mir drei Spalten aus der Tabelle "Produkte"
Feld01: "Produkt-Nr"
Feld02: "Produktname"
Feld03: "Stückpreis"
Feld01 soll das Feld "Produkt" in der Tabelle Auftragspositionen füllen, Feld03 das Feld "Stückpreis " ebenfalls in der Tabelle Auftragspositionen.
Ich bekomme über den Assistenten aber immer nur ein Feld angezeigt, in dem ich Werte aus dem Kombinationsfeld speichern kann.
Wie bekomme ich ein weiteres Feld gefüllt?
Vielen Dank
fontainebleau
Antwort 1 von trekking
das Kombifeld speichert normalerweise nur die Schlüsselspalte (bei dir wohl die Produkt-Nr) in einem vordefinierten feld einer anderen Tabelle. Das reicht auch aus, da du durch diese Schlüsselspalte jederzeit auf den Wert zugreifen kannst ohne alles doppelt besetzten zu müssen.
Beispiel: du hat eine Mastertabelle Aufträge und eine Untertabelle Auftragspositionen. In der Mastertabelle Auftrag werden nur die Schlüsselwerte (z.B. Produkt-Nr) gespeichert. Du Verknüpst beide Tabellen mit einer 1 zu n Beziehung.
Willst du später die Werte wieder Auslesen, dann mußt du eine Abfrage mit beiden Tabellen bilden und diese dann als Grundlage für dein Formular oder deinen Bericht nehmen.
hoffe dir damit etwas geholfen zu haben.
Gruß trekking
Beispiel: du hat eine Mastertabelle Aufträge und eine Untertabelle Auftragspositionen. In der Mastertabelle Auftrag werden nur die Schlüsselwerte (z.B. Produkt-Nr) gespeichert. Du Verknüpst beide Tabellen mit einer 1 zu n Beziehung.
Willst du später die Werte wieder Auslesen, dann mußt du eine Abfrage mit beiden Tabellen bilden und diese dann als Grundlage für dein Formular oder deinen Bericht nehmen.
hoffe dir damit etwas geholfen zu haben.
Gruß trekking
Antwort 2 von fontainebleau
Hallo trekking,
danke für die schnelle Antwort, leider löst das mein Problem noch nicht.
Das Produkt soll nicht in der Auftragstabelle gespeichert werden, sondern in der Auftragspositionstabelle. Dort soll dann auch der zugehörige Stückpreis gespeichert werden, über den ich mit der Menge dann den Verkaufspreis der Position ermitteln möchte.
1:n Beziehung Auftrag zu Auftragsposition ist eingerichtet.
P.S.: Es ist übrigens nicht zwingend notwendig, dass das Schlüsselfeld gespeichert wird, der Assistenten fragt, welches Feld/ Spalte aus der Liste des Kombinationsfeldes wohin weggespeichert werden soll. Das hängt glaube ich mit der "gebundenen Spalte" zusammen.
Gruss
fontainebleau
danke für die schnelle Antwort, leider löst das mein Problem noch nicht.
Das Produkt soll nicht in der Auftragstabelle gespeichert werden, sondern in der Auftragspositionstabelle. Dort soll dann auch der zugehörige Stückpreis gespeichert werden, über den ich mit der Menge dann den Verkaufspreis der Position ermitteln möchte.
1:n Beziehung Auftrag zu Auftragsposition ist eingerichtet.
P.S.: Es ist übrigens nicht zwingend notwendig, dass das Schlüsselfeld gespeichert wird, der Assistenten fragt, welches Feld/ Spalte aus der Liste des Kombinationsfeldes wohin weggespeichert werden soll. Das hängt glaube ich mit der "gebundenen Spalte" zusammen.
Gruss
fontainebleau
Antwort 3 von trekking
Meinte natürlich die gebunden Spalte. Sorry. Arbeite schon lange nicht mehr mit dem Assistenten.
Für die Lösung deines Problems kannst du mit VBA arbeiten. Wie weit kennst du dich damit aus, da dies etwas komplizierter ist?!
Gruß trekking
Für die Lösung deines Problems kannst du mit VBA arbeiten. Wie weit kennst du dich damit aus, da dies etwas komplizierter ist?!
Gruß trekking
Antwort 4 von fontainebleau
Hallo trekking,
Null Ahnung beschreibt wohl am besten, wie sehr ich mich mit VBA auskenne. Habe zwar hier und da schon mal in einen Code reingesehen und bereits geschriebene Codes für meine Zwecke umgeschrieben, aber ich habe noch nichts wirklich selber geschrieben.
Könntest du mir ein Beispiel (z.B. Errechnen eines Wertes aus zwei Formularfeldern in einem neuen Feld und dann Wegspeichern dieses Wertes in das entsprechende Tabellenfeld / Formular dient der Datenerfassung) geben?
Ich denke, es ist schwer, aber vielleicht hast du ein gutes Beispiel (bitte nicht aus der Access-Hilfe, da komme ich gerade her, die haben nur Beispiele, die ich nicht annähernd abändern könnte).
Das Beispiel könnte ich ja dann versuchen umzuschreiben, damit es meiner Datenbank entspricht.
Danke & Gruss
fontainebleau
Null Ahnung beschreibt wohl am besten, wie sehr ich mich mit VBA auskenne. Habe zwar hier und da schon mal in einen Code reingesehen und bereits geschriebene Codes für meine Zwecke umgeschrieben, aber ich habe noch nichts wirklich selber geschrieben.
Könntest du mir ein Beispiel (z.B. Errechnen eines Wertes aus zwei Formularfeldern in einem neuen Feld und dann Wegspeichern dieses Wertes in das entsprechende Tabellenfeld / Formular dient der Datenerfassung) geben?
Ich denke, es ist schwer, aber vielleicht hast du ein gutes Beispiel (bitte nicht aus der Access-Hilfe, da komme ich gerade her, die haben nur Beispiele, die ich nicht annähernd abändern könnte).
Das Beispiel könnte ich ja dann versuchen umzuschreiben, damit es meiner Datenbank entspricht.
Danke & Gruss
fontainebleau
Antwort 5 von oliverV
Hallo fontainebleau,
so wild ist es gar nicht.
Ausgehend von deinem Beispiel hast du ein Formular Auftragsdetails mit dem beschriebenen Kombifeld.
Füge nun zusätzlich ein gebundene Textfeld "Produktname" und ein gebundenes Textfeld "Stückpreis" in dein Formular ein (sofern nicht vorhanden).
Gehe nun in den Eigenschaften des Kombifeldes zum Ereignis "NachAktualisierung", öffne hieraus den Code-Generator (drei Punkte am Zeilenende).
Verwende nun sinngemäß folgenden Code:
fertig !
Mit der Column-Eigenschft kannst du eine bestimmte Spalte aus einem Kombifeld auslesen; die 1. Spalte ist Column(0), die 2. Column(1), usw.
@trekking
ich hoffe du hast nichts dagegen wenn ich "weiterführe"“
Gruß + schönes WE
Oliver
so wild ist es gar nicht.
Ausgehend von deinem Beispiel hast du ein Formular Auftragsdetails mit dem beschriebenen Kombifeld.
Füge nun zusätzlich ein gebundene Textfeld "Produktname" und ein gebundenes Textfeld "Stückpreis" in dein Formular ein (sofern nicht vorhanden).
Gehe nun in den Eigenschaften des Kombifeldes zum Ereignis "NachAktualisierung", öffne hieraus den Code-Generator (drei Punkte am Zeilenende).
Verwende nun sinngemäß folgenden Code:
Me.Produktname = Me!Kombifeld1.Column(1)
Me.Stückpreis = Me!Kombifeld1.Column(2)
fertig !
Mit der Column-Eigenschft kannst du eine bestimmte Spalte aus einem Kombifeld auslesen; die 1. Spalte ist Column(0), die 2. Column(1), usw.
@trekking
ich hoffe du hast nichts dagegen wenn ich "weiterführe"“
Gruß + schönes WE
Oliver
Antwort 6 von fontainebleau
Hallo Oliver,
vielen Dank für den Hinweis, jetzt funktioniert es. Ich nehme an, die Code-Zeilen bedeuten, dass der Inhalt der Felder in das Kombifeld geladen wird.
Super!! Vielen Dank für eure Hilfe
fontainebleau
vielen Dank für den Hinweis, jetzt funktioniert es. Ich nehme an, die Code-Zeilen bedeuten, dass der Inhalt der Felder in das Kombifeld geladen wird.
Super!! Vielen Dank für eure Hilfe
fontainebleau
Antwort 7 von trekking
@Oliver
kein Problem, hätte eh erst heute zeit dafür gehabt. Merci
kein Problem, hätte eh erst heute zeit dafür gehabt. Merci

