Hallo Kollegen,
ich habe eine Frage an Euch und zwar habe ich ein Kombinationsfeld anhand der Abfrage entwickelt. Die Abfrage beruht auf den Werte aus einer anderen Tabelle.
Mein Kombinationsfeld habe ich in ein Formular gepackt, in meinem Formular habe ich mein Kombinationsfeld mit dem Ereignis: Nach Aktualisierung vorgesehen.
Alles funktioniert super, ich kann die Werte aus Kombinationsfeld auswählen und direkt in die Tabelle speichern.
Problem: Mein Kombinationsfeld zeigt die Werte, die ich selektiere und speichere, dadurch hat meine Tabelle auch die doppelten Datensätze.
Wie kann ich mein Kombinationsfeld so einstellen, dass ich ein Werte selektiere und speichere, und dieser Wert nicht mehr in diesem Kombinationsfeld erscheint.
Vielen Dank
Beck
Hallo,
da gibt es keine Einstellung dazu. Du machst was falsch. Ein Kombi speichert immer nur einen Datensatz. Da braucht es auch kein Ereignis.
Kann es sein, dass Du ein gebundenes Formular hast und mit Insert zusätzlich speicherst ?
Hat das Kombi einen Steuerelementinhalt ?
Was gibt es für Code "Nach Aktualisierung" ?
Hallo Klaus:
Code für Kombinationsfeld sieht so aus:
Private Sub cmbLand_AfterUpdate()
txtLand = cmbLand.Column(0)
txtUmsatz = cmbLand.Column(1)
txtStatus = cmbLand.Column(2)
End Sub
Ich nehme mittels der Abfrage die Daten aus einer anderen Tabelle und die Abfrage benutze ich als Grundlage für Kombinationsfeld, so dass ich aus Kombinationsfeld einen Datensatz auswähle und dann in die andere Tabelle speichere.
Hast du eine Idee?
Vielen Dank
Beck
Hallo Klaus,
ich wollte die Situation ein wenig genauer beschreiben:
Ich habe 2 Tabellen: eine Tabelle enthält 2 Spalten: Land und Umsatz, und die zweite Tabelle soll auch 2 Spalten enthalten: Land und Umsatz (wo der Umsatz summiert wird: ungefähr so : USA = 120, USA =100). Ich mache dann die Abfrage anhand der ersten Tabelle, und summiere per SQL in der Abfrage den Umsatz, so dass ich dann in der Abfrage 2 Spalten habe: Land und Umsatz(summiert: USA = 220), diese Abfrage benutze ich dann für mein Kombinationsfeld, mit dessen Hilfe ich dann die Daten in die zweite Tabelle übertrage und speichere.
Oder hast du eine andere Idee, wie man dieses Problem oder Situation lösen kann.
Vielen Dank
Beck
Hallo Beck,
Weise dem Kombi zu einem passenden Zeitpunkt (z.B. nach dem Speichern) eine neue RowSource zu (Luftcode):
SELECT T.Land, T.Total, T.Status
FROM Tabelle AS T
WHERE T.Land NOT IN
(SELECT L.Land FROM Laender AS L)
(T und L können auch Abfragen sein)
hth
gruss ekkehard
ZitatWeise dem Kombi zu einem passenden Zeitpunkt (z.B. nach dem Speichern) eine neue RowSource zu
Quatsch! Die RowSource kannst Du natürlich fest im Kombi eintragen, musst zum passenden Zeitraum nur ein Requery anstossen.
Hallo Ekkehard,
Vielen Dank für deinen Feedback, kannst du bitte deine Vorgehensweise in SQL-form anzeigen.
Vielen Dank
Beck
Hallo,
das übertragen der summierten Werte in eine 2. Tabelle ist doch ersatzlos überflüssig. Du kannst doch zu jedem beliebigen Zeitpunkt ein Abfrage mit den Summen je Land erstellen.
Wozu die Werte in einem Listenfeld zur Auswahl darstellen und auch noch in er weiteren Tabelle zu speichern.
Ich fürchte, Du machst da Sachen, die man in einer DB nicht braucht.
Danke Klaus,
wenn es keinen Sinn macht, so was im Access zu machen, dann werde ich umdenken.
Vielen Dank
Beck
Hallo,
Zitatwenn es keinen Sinn macht, so was im Access zu machen,
das habe ich aber mit keinem Wort geschrieben, oder wo liest Du das . Natürlich ?kannst Du da Access verwenden.
Nur das Speichern in einer 2. Tabelle halte ich für überflüssig.
Hallo Klaus,
"das übertragen der summierten Werte in eine 2. Tabelle ist doch ersatzlos überflüssig" diesen Punkt werde ich umdenken.
Wie würdest du dieses Problem lösen?
Vielen Dank
Beck
Hallo,
habe ich doch auch geschrieben.
ZitatDu kannst doch zu jedem beliebigen Zeitpunkt ein Abfrage mit den Summen je Land erstellen.
da braucht es kein Listenfeld und keine 2. Tabelle.
Und das wäre die Abfrage die Du für das Listenfeld hast, warum sollen diese summierten Werte noch in eine extra Tabelle ?
Hallo Klaus,
Du hast Recht, ich brauche keine 2 Tabelle, wo ich summierte Werte speichere.
All das kann ich mit der Abfrage erledigen.
Meine Frage ist nur: Kann ich die Werte aus Abfrage in einer anderen Tabelle speichern. ist es möglich? Ich weiß nicht, ob so was geht, deswegen frage ich.
Vielen Dank
beck
p.s: Deutsch ist nicht meine Muttersprache
Hallo,
wozu eine weitere Tabelle, Du hast doch die Abfrage, die ist zu einer Tabelle gleichwertig. Eine Abfrage ist von der Verwendung her mit einer Tabelle gleich zu setzen.
ZitatDeutsch ist nicht meine Muttersprache
hatte ich mir schon gedacht. Ist auch kein Problem, Dein Deutsch ist ja durchaus brauchbar. ;D ;D
-
:) :) Danke Klaus,
ich werde dann dieses Problem mit der Abfrage erledigen.
Vielen Dank
beck
Hallo Beck,
ZitatVielen Dank für deinen Feedback, kannst du bitte deine Vorgehensweise in SQL-form anzeigen.
Auch wenn es jetzt vielleicht nicht mehr nötig ist, kann es ja für
andere Kombis durchaus mal nötig sein.
Was ich geschrieben habe ist SQL. Füge dies mit angepassten
Tabellen-/Abfrage-/Feldnamen in die Eigenschaft "Datenherkunft"
des Kombis ein. Für das .Requery musst Du, wie gesagt, einen
passenden Zeitpunkt(Ereignis) im Programmablauf finden.
gruss ekkehard
Hallo Ekkehard,
Danke für deinen Feedback, Ehrlich gesagt, ich habe deinen SQL-Code probiert, es ist mir aber nicht gelungen. .
SELECT T.Land, T.Total, T.Status
FROM Tabelle AS T
WHERE T.Land NOT IN
(SELECT L.Land FROM Laender AS L)
(T und L können auch Abfragen sein)
Mit diesem Code habe ich keinen Erfolg erzielt. Kannst du mir vielleicht ein anderes Beispiel geben. Was bedeutet T und L?
Vielen Dank
Beck
Hallo Beck,
ZitatMit diesem Code habe ich keinen Erfolg erzielt.
Schon klar, deshalb habe ich ja geschrieben:
Zitatdies mit angepassten Tabellen-/Abfrage-/Feldnamen
Tabelle (Alias T) ist die Tabelle/Abfrage in der die Werte stehen,
Laender (Alias L) ist die Tabelle/Abfrage in der die Laender stehen, die
nicht nochmal auftauchen sollen im Kombi. (Der Name "Laender" ist
von mir wahrscheinlich schlecht gewählt.)
Schwer zu erklären, wenn man die beteiligten Tabellen/Abfragen
nicht kennt. Zur Not poste dazu Strukturen (Tabellen) bzw. SQL-Strings
(Abfragen).
gruss ekkehard
Hallo Ekkerhard,
Danke für deine Antwort, ich versuche dann mein Beispiel zu erklären: ich habe eine Tabelle: tbl_Test1 (hat 2 Spalte: Land, Umsatz) und die Werte aus der Tabelle: tbl_Test1 müssen mit Hilfe der Abfrage in die Tabelle: tbl_Test2 (auch mit 2 Spalten: Land, Umsatz) übertragen werden.
Kann ich dann das Ganze mit Hilfe der Anfügeabfrage hinkriegen? Wie würden dann der SQL-Code aussehen?
Vielen Dank
beck
Hallo,
ich dachte das Thema mit der 2.Tabelle wäre durch ?
Hast Du doch selbst geschrieben.
Du brauchst diese 2. Tabelle nicht.
Die jetzige Abfrage für das Listenfeld ist bereits die gewünschte Darstellung.
Warum willst Du absolut eine 2. Tabelle ?
Hallo Beck,
ZitatHilfe der Abfrage
Welcher Abfrage?
Zitatin die Tabelle: tbl_Test2 (auch mit 2 Spalten: Land, Umsatz) übertragen werden.
War doch geklärt, dass Du das nicht brauchst (siehe auch Klaus' abschliessenden Post).
Ich wollte dir nur zeigen, wir Du die Datenherkunft des Kombis anpassen kannst,
damit darin
nur noch Einträge angezeigt werden, die Du
noch nicht hast.
ZitatKann ich dann das Ganze mit Hilfe der Anfügeabfrage hinkriegen?
Das hattest Du doch schon:
ZitatAlles funktioniert super, ich kann die Werte aus Kombinationsfeld auswählen und direkt in die Tabelle speichern.
Daran würde sich ja nichts ändern. Ausser dass Du durch die eingeschränkte
Auswahl im Kombi keine doppelten mehr speichern kannst.
gruss ekkehard