Neuigkeiten:

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

Mobiles Hauptmenü

DomWert im Bericht?

Begonnen von dobby110, Oktober 10, 2019, 09:49:24

⏪ vorheriges - nächstes ⏩

dobby110

Hallo zusammen,

ich habe ein kleines Problem.
Es geht um folgenden Sachverhalt.

Ich generiere über einen Bericht einen Buchungsbeleg, der als Buchungsvorlage dient. In diesem steht die Fonds-Nummer, um die es in diesem Fall geht und eine entsprechende Kauf oder Verkaufsposition, die in dem Fonds gebucht werden soll.

Diese können aber unterschiedliche Währungen haben und demnach laufen diese über unterschiedliche Konten.
Jetzt hätte ich gerne die Information des richtigen Währungskontos auf dem Bericht stehen.
In der Tabelle "Fonds" in der ich alle Fonds pflege, habe ich drei Felder ergänzt, in denen die Währungskonten aufgeführt werden. Kann man sich so vorstellen:

Fondsname  / FondsNr. 1234 / X-Nr. 9999 / SAP Konto EUR 111 / SAP Konto USD 233 / SAP Konto GBP 489


Auf dem Buchungsbeleg habe ich den Fondsname und die FondsNr. stehen, die direkt mit der Tabelle verknüft sind.
Zudem gibt es auch ein Währungsfeld (WHG), welches bei jedem Umsatz von Hand befüllt wird. Bspw. würde man bei Erfassung des Umsatzes dort "USD" eintragen.

Jetzt will ich lediglich die Information eingeblendet bekommen, welches SAP Konto für USD das richtige ist?

Also die Information 233 soll in dem Feld erscheinen.

Bekomme ich das über DomWert irgendwie geregelt oder gibt es da eine andere Funktion wie eine Art SVerweis in Excel oder eine If , Then Programmierung über VBA ?
Problem an der Sache ist vermutlich, dass er sich bei der Währung nur auf die drei letzten Stellen im Namen des Tabellenfeldes beziehen darf.

also so in der Art (zum Verständnis)
If WHG = USD Then SAP Konto USD
If WHG = GBP Then SAP Knto GBP
If WHG = EUR Then SAP Konto EUR

Für eure Hilfe wäre ich sehr dankbar.

Die Tabellenfelder haben die Namen wie oben angegeben.

[FondsNr.]
[SAP Konto EUR]
[SAP Konto USD]
[SAP Konto GBP]

und die Währung ist in Feld [WHG] eingetragen.

DF6GL

#1
Hallo,

wenn man von der Unbrauchbarkeit dieser Tabellenkonstruktion und der fehlenden/falschen Normalisierung absieht, könnte Folgendes möglich sein:


aus der Luft gegriffen:

(im Steuerelementinhalt eines Textfeldes)

=Dlookup ( "'[SAP Konto '" & [WHG] & "']'";"tblTabelle1"; "[FondsNr.]  = " & [ FondsNr.] )

dobby110

Habe es mit diesem Code probiert:


=Dlookup ( "[SAP Konto " & [Währung] & "]'";"Fonds"; "[Fondsnummer SCD]  = " & [Fondsnummer SCD] )


Hat leider nicht funktioniert.
Ergebnis ist #Fehler

Funktioniert der Code dann generell nicht oder ist noch ein Fehler drin?

Habe es auch versucht, die Währung direkt einzutragen.
Also bspw. gezielt das Feld "SAP Konto USD" anzusteuern. Geht aber auch nicht

Beaker s.a.

@dobby110
Bevor du dich weiter mit diesem Krampf und garantiert weiteren im Laufe der
Entwicklung herumschlägst, beschäftige dich lieber hiermit
Zitatder Unbrauchbarkeit dieser Tabellenkonstruktion und der fehlenden/falschen Normalisierung
Dabei helfen dir die Links in Franz Posts. Ich würde mit Nr. 4 anfangen und zur
Vertiefung dann in der num. Reihenfolge weitermachen.
Sich damit ein paar Tage zu beschäftigen spart bei der Entwicklung diese paar
Tage laufend wieder ein.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

emmoticon

Zitat von: dobby110 am Oktober 10, 2019, 15:02:13

=Dlookup ( "[SAP Konto " & [Währung] & "]'";"Fonds"; "[Fondsnummer SCD]  = " & [Fondsnummer SCD] )



so spontan würde ich mal sagen:
Dlookup ( "[SAP Konto]  & ' ' & [Währung]";"Fonds"; "[Fondsnummer SCD]  = " & [Fondsnummer SCD] )

Ansonsten schließe ich mich der Meinung der anderen an.
Gruß, Smiley mit Rechtschreibfehler

DF6GL

Hallo,
Zitat
Hat leider nicht funktioniert.


Kein Wunder, wenn Hochkommata unterschlagen werden..


Zitatso spontan würde ich mal sagen:

spontan würde ich sagen: das ist auch falsch.  ;)


Für mich stellt sich die Frage:  Welchen Datentyp hat "[Fondsnummer SCD]" ?   Wenn der Datentyp TEXT vorliegt, müssen einschließende Hochkommata hinzugefügt werden.

Ansonsten sollte diese Konstruktion in die Tonne wandern und wie vorher schon gesagt, ein vernünftiges (normalisiertes) Tabellenkonzept erstellt werden.

dobby110

Danke für die Hilfe, habe es hinbekommen.

Prinzipiell gebe ich euch Recht. Dieser Wert ist für die Datenbank aber absolut unrelevant. Es ist nur ein Nice to Have auf dem Buchungsbeleg.
Wenn ich es richtig machen würde, würde ich eine eigene Tabelle mit den Kontonummern anlegen. Da ich es aber nur auf dem Bericht benötige und nur als ein Nice to have, ist es meiner Meinung nach der Aufwand nicht Wert, dafür eine eigene Tabelle anzulegen.

MzKlMu

Hallo,
extra Tabellen sind immer sinnvoll bei derartigen Konstellationen.
Es vereinfacht vieles bei nachfolgenden Aktionen.
Wie Du ja gerade selbst erfährst.
Und irgendwann kommt eine neue Anforderung und dann musst Du wider Klimmzüge machen.
Gruß Klaus

Beaker s.a.

Hallo,
Aus "Nice to have" wird schnell ein "brauchen wir unbedingt", und dann schaust
du in die Röhre. Vor allem, wenn du hier dann wieder nachfragst, bekommst du
als erstes wieder das Gleiche zu hören wie jetzt. Und auch in anderen Foren
wird es nicht anders sein (falls du das versuchst).
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)