Neuigkeiten:

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

Mobiles Hauptmenü

Wert aus Kombinationsfeld nur einmal auswählen können

Begonnen von MarkusR, August 23, 2013, 08:25:59

⏪ vorheriges - nächstes ⏩

MarkusR

Guten Morgen zusammen,

ich steh mal wieder auf'm Schlauch...vielleicht könnt Ihr mir ja mal wieder weiter helfen:

Ich habe eine Tabelle, in der Angebote von Dienstleistern gespeichert werden. Bei diversen Dienstleistern kommt es vor, dass die alle 1 oder 2 Jahre Ihre Preise erhöhen. Das bedeutet dann, dass auf alle Angebote, die wir von denen haben z.B. 2% oder so drauf kommen. Daher habe ich noch eine Tabelle für die Preiserhöhungen erstellt: gespeichert wird dadrin dann der Preiserhöhungssatz, das Datum der Preiserhöhung und die ID des Dienstleisters. Um die Preiserhöhungen jetzt den Angeboten zuzuordnen habe ich eine Zuordnungstabelle erstellt, in der dann die ID des Angebots und die ID der Preiserhöhung gespeichert werden.
Jetzt möchte ich, dass im Kombinationsfeld, das mir die Preiserhöhung des jeweiligen Dienstleisters zeigt, eine Preiserhöhung zu einem Angebot immer nur einmal ausgewählt werden kann. Mein Ansatz dabei ist eine Outer Join Abfrage...aber die will mir irgendwie nicht gelingen.
Die Bedingung müsste ja irgendwie sein: Zeige die Datensätze aus tblPreiserhoehungen zu denen es in der Zuordnungstabelle keinen Datensatz mit der aktuellen ID des Angebots gibt. Nur genau das bekomme ich irgendwie nicht hin.

Für Eure Hilfe wäre ich Euch sehr dankbar!

Beste Grüße
Markus

Maxel

Benutze einfach den Assistenten zur Erstellung einer Inkonsistenz-Abfrage.
Viele Grüße
Maxel

MarkusR

Aber wie soll das funktionieren? Wenn ich mir von der Inkonsistenz-Abfrage anzeigen lasse, welche Preiserhöhungen nicht in der Zuordnungstabelle vorkommen, zeigt er mit garkeine an. Denn die Preiserhöhungen stehen ja bei mehreren Angeboten...

DF6GL

Hallo,


ZitatZeige die Datensätze aus tblPreiserhoehungen zu denen es in der Zuordnungstabelle keinen Datensatz mit der aktuellen ID des Angebots gibt

--->   http://www.donkarl.com/?FAQ3.16

MarkusR

Guten Morgen,

also entweder hab ich mein Problem falsch erklärt oder ich steh einfach auf'm Schlauch! Egal wie ich versuche das zu lösen, ich komm da irgendwie nicht hinter...

Ich erklär's nochmal kurz:

Tabelle 1: tblPreiserhoehungen (Felder:  ID, Dienstleister FS, Erhöhungssatz, Datum der Erhöhung)
Tabelle 2: tblAngebote (Felder: ID, Angebotsnr., Preis, etc.)
Tabelle 3: tblPreiserhoehungen2Angebote (Felder: ID, Preiserhöhungen FS, Angebote FS)

Auf einem Formular (Datensatzquelle tblAngebote) habe ich nun in einem Unterformular (Endlosformular) ein Kombifeld, mit dem ich die Preiserhöhungen für das jeweilige Angebot auswählen möchte. Ist eine Preiserhöhung ausgewählt, soll diese auch nicht mehr im Kombifeld angezeigt werden.

Mit der Inkonsistenz Abfrage bzw. der Lösung von DonKarl (ist ja beides eigentlich das gleiche) krieg ich das nicht hin. Wenn ich eine Abfrage mache, wo er mir die Datensätze von tblAngebote anzeigt, zu denen es keine ID von tblPreiserhoehungen in der tblPreiserhoehungen2Angebote gibt, bekomme ich ja ein falsches Ergebnis. Denn sobald ich für ein Angebot eine Preiserhöhung auswähle, fällt die aus der Abfrage raus und ich kann keine weiter Preiserhöhung auswählen.

Überseh ich da was? Oder ist es überhaupt nicht möglich das zu machen?

Noch mal vielen Dank für Eure Hilfe! Gruß
Markus

DF6GL

Hallo,

mir erschliesst sich der Sinn dahinter nicht...bzw.  ich durchblicke es nicht genau.

Sollen für ein (bestimmtes) Angebot die im Laufe der Zeit erfolgten Erhöhungen aus einem "Kontingent" des Dienstleisters archiviert werden (nachvollzogen werden können)?

Warum soll das Kombi (der Textfeld-Teil oder der Listenfeld-Teil) einen schon ausgewählten Datensatz (Erhöhung) nicht trotzdem anzeigen?  Wenn die Datensatzherkuft des Kombis dahingehend verändert wird, dass es einen schon gespeicherten ID-Wert (Datensatz) anzeigen soll , der nicht mehr in der Datensatzherkunft auftaucht , dann geht das nicht.  Für solche Situationen könnte ein zweites , ungebundenes Kombi herhalten, das die angepasste Datensatzherkunft beinhaltet und mit dem eine Auswahl einer Erhöhung erfolgt einschliesslich der Zuweisung des ID-Wertes an das gebundene Kombi.  Das gebundene Kombi erhält als Datensatzherkunft lediglich die Tabelle ("tblPreiserhoehungen") zugewiesen .

MarkusR

Hallo,

die Angebote der Dienstleister sind immer zu bestimmten Artikeln, die wir für unsere Kunden herstellen. Wenn also unser Kunde so einen Artikel bestellt, bestellen wir bei dem jeweiligen Dienstleister z.B. die Veredelung. Die Bestellung generiere ich mit Access. Dabei zieht er sich dann die Preise aus der Angebotstabelle. Da die Preise aber ca. jährlich um soundsoviel Prozent erhöht werden, muss ich das ja zu jedem Angebot nachhalten.

In dem oben beschriebenen Unterformular habe ich ein Textfeld, in dem die Preiserhöhung angezeigt wird und ein Kombifeld, mit dem man das Textfeld sozusagen befüllen kann. Sagen wir, ich habe 3 Preiserhöhungen von einem Dienstleister und ein Angebot, das so alt ist, das jede der Preiserhöhungen darauf zutrifft, muss ich ja in dem Unterformular drei Datensätze anlegen. Ich wollte es dem Benutzer halt einfacher machen, indem man bereits ausgewählte Preiserhöhungen in dem Kombifeld nicht mehr sieht.

Gruß
Markus

DF6GL

Hallo,

mhmmm...


Zitatein Angebot, das so alt ist, das jede der Preiserhöhungen darauf zutrifft

Wie wird dann die gültige Preiserhöhung  erkannt. ?   Es kann doch eigentlich nur immer eine Preiserhöhung (zum Zeitpunkt der Rechnungsstellung )  gültig sein...  M. E sollte in der Preiserhöhungstabelle ein "GültigAb" -Feld vorhanden sein, anhand dessen der akt. gültige Preis berechnet werden  kann.
 

Stapi

#8
Hallo Markus

Du erhälst eine Preiserhöhung deines Dienstleisters um 5% diese erhöhung soll nun auf alle noch offnen Angebote des besagten Dienstleister die das Datum z.b < 02.2013 zutreffen erhöht werden.

Eine solche Berechnung wird nicht im Formular gemacht sondern mit eine Aktualisierungsabfrage.
Welchen Mitarbeiter will man zumuten jeden zutreffenden Datensatz händich mit der erhöhung zu bearbeiten, was eine Abfrage in Sekunden ausführt
Grüße aus dem schönen NRW
Stefan

MarkusR

Guten Morgen,

danke für Eure Antworten...

@DF6GL:
Auf einen Artikel kommen mehrere Preiserhöhungen. Bsp: Ein Artikel der 2011 für 100 € angeboten wurde wird in 2012 um 5% erhöht -> 105 €, 2013 kommt die nächste Preiserhöhung um 5% -> 110,25 €. Daher gelten mehrere Preiserhöhungen für den gleichen Artikel.

@Stapi:
Im Grunde hast Du Recht. Das Problem bei der Sache ist: bestellt unser Kunde einen Artikel, der kürzlich unter eine Preiserhöhung gefallen ist, müssen wir bei dem Kunden auch eine Preiserhöhung beantragen. Das wird aber immer erst dann gemacht, wenn der Kunde den Artikel auch bestellt. Der Mitarbeiter bearbeitet also die Bestellung und sieht, dass das Angebot vom Dienstleister so alt ist, dass da noch der Preis erhöht werden muss und beantrag dies bei unserem Kunden. Daher habe ich das ins Formular eingebaut.

DF6GL

Hallo,

"Daher gelten mehrere Preiserhöhungen für den gleichen Artikel."


Ok, wenn diese Preiserhöhungen kumulativ gelten, dann erfass diese Preiserhöhungen wie geplant und berechne den Preis bei aktueller Rechnungsstellung , indem die für diesen Artikel und dazu zeitlich gültigen Preiserhöhungen (Erhöhungssatz) nacheinander ausgelesen und für die Preisberechung herangezogen werden. 

MarkusR

Zitat von: DF6GL am August 27, 2013, 10:22:36
indem die für diesen Artikel und dazu zeitlich gültigen Preiserhöhungen (Erhöhungssatz) nacheinander ausgelesen und für die Preisberechung herangezogen werden. 

Meinst Du damit, ich soll das so machen, wie geplant? Oder meinst Du, die Preiserhöhungen sollen garnicht im Formular auftauchen und bei einer Bestellung an den Dienstleister zieht der sich automatisch die richtigen Preise mit Preiserhöhungen? In dem Fall müsste ich aber noch den Nutze informieren, falls er bei unserem Kunden eine Preiserhöhung beantragen muss...

DF6GL

Hallo,


im Pflege-Formular schon, irgendwo müssen die Preiserhöhungssätze ja erfasst werden.  Dort, wo die Sätze verwendet werden (beider Rechnungsstellung)  , braucht es keine Darstellung der ganze Sätze.


Was Du weiterhin mit den gespeicherten Infos anstellst , ist  eine andere Sache...

MarkusR

Gut, dann ist es ja richtig, was ich vor hatte  ;D

Und gibt es denn die Möglichkeit, dass so zu machen, dass eine ausgewählte Preiserhöhung nicht mehr im Kombifeld auftaucht? Habe auch mal über eine alternative Lösung nachgedacht: die Zuordnungstabelle weg lassen, dafür in der tblAngebote ein Feld mit Referenz auf tblPreiserhoehungen und dann Mehrfachauswahl erlauben. Allerdings bekomm ich das Feld dann nicht gefiltert...bzw. bin zu blöd dazu  ;)