Summen bilden

Hallo,

ich habe eine Tabelle(Preis), sie beinhalted die Felder

PreisID Preis GrundpreisID ZuschlagID

Die Felder GrundpreisID und ZuschlagID sind in je einer einzelnen Tabelle mit Ihren Werten verknüpft und werden in der Tabelle Preis nur durch Ihre IP’s „vertreten“.

Nun möchte ich gerne dass in dem Feld „Preis“ die Summe aus dem Grundpreis und dem Zuschlag gebildet, und in einem Formular angezeigt wird.
Der Grundpreis und Zuschlag werden davor durch ein Dropdownfeld in diesem Formular bestimmt.

Geht das überhaupt so wie ich mir das gerade vorstelle und wenn ja wie??Ich komme einfach nicht auf die Summe…:frowning:

Vielen Dank im Vorraus!!

Mfg
Benni

Hallo Benni,

ich habe eine Tabelle(Preis), sie beinhalted die Felder

PreisID Preis GrundpreisID ZuschlagID

Die Felder GrundpreisID und ZuschlagID sind in je einer
einzelnen Tabelle mit Ihren Werten verknüpft und werden in der
Tabelle Preis nur durch Ihre IP’s „vertreten“.

ok, so sollte es sein

Nun möchte ich gerne dass in dem Feld „Preis“ die Summe aus
dem Grundpreis und dem Zuschlag gebildet, und in einem
Formular angezeigt wird.
Der Grundpreis und Zuschlag werden davor durch ein
Dropdownfeld in diesem Formular bestimmt.

also ist der Grundreis dort sichtbar und auch der Zuschlag.

Geht das überhaupt so wie ich mir das gerade vorstelle und
wenn ja wie??Ich komme einfach nicht auf die Summe…:frowning:

Summe ist da wohl der falsche Ansatz!
Ich gehe jetzt mal davon aus, dass der Zuschlag in Euro drinsteht!

Me.Preis = Me.Dropdown1.column(1) + me.Dropdown2.column(1)

WICHTIG: Column fängt bei 0 an. D.h. pro Spalte wird gezählt:
0 = 1. Spalte
1 = 2. Spalte
usw.

Hast du nun ein Dropdownfeld, ist i.d.R. in der Spalte 1 = Column(0) die entsprechende ID. In Spalte 2 = Column(1) ist dann der Wert.

Grüße aus Schwerin
Wolfgang
(Netwolf)

Hallo Wolfgang,

vielen Dank erstmal genau so wollte ich es haben, Danke!!

nun aber eine weitere Fragen:

und zwar ist der Grundpreis von 3 Werten abhängig:

  1. Von dem Typ

  2. Von der Tolleranz

  3. Von der Menge

Jetzt habe ich das so versucht:

Private Sub Typ_AfterUpdate()
’ Bestimmen des Grundpreises über den Typ
If Not IsNull(Me!Typ) Then
Me!Grundpreis.RowSource = _
„SELECT DISTINCTROW GrundpreisID, Grundpreis FROMtbl_Grundpreis“& _
IIf(Me!Typ = 0, „“, " WHERE TypID = 0 OR TypID = " & Me!Typ)
Else
Me!Typ.RowSource = „“
Me!Gruppe.RowSource = „“
End If
Me!Gruppe.Requery
Me!Typ.Requery
Me!Bezeichnung = Null
End Sub

So nun ist aber NUR der Typ als Auswahlkriterium gegeben, wie kann ich in diese Funktion auch noch die Tolleranz und die Menge als Auswahlkriterium mit einbringen?
Die Tabellen sind alle miteinander über die jeweiligen ID’s „verknüpft“.

Vielen Dank im Vorraus!!

Mfg
Benni

Hallo Benni,

und zwar ist der Grundpreis von 3 Werten abhängig:

  1. Von dem Typ
  2. Von der Tolleranz
  3. Von der Menge

die Werte sind aber auch in der REihenfolge NACHEINANDER in Abhängigkeit miteinander verbunden.

Private Sub Typ_AfterUpdate()

ich würde es nach FOKUSVERLUßT machen …

’ Bestimmen des Grundpreises über den Typ
If Not IsNull(Me!Typ) Then
Me!Grundpreis.RowSource = _
„SELECT DISTINCTROW GrundpreisID, Grundpreis
FROMtbl_Grundpreis“& _
IIf(Me!Typ = 0, „“, " WHERE TypID = 0 OR TypID = " &
Me!Typ)

oder

Me!Grundpreis = Dlookup(„Grundpreis“,„tbl_Grundpreis“,IIf(Me!Typ = 0, „“, " WHERE TypID = 0 OR TypID = " & Me!Typ)

Else
Me!Typ.RowSource = „“
Me!Gruppe.RowSource = „“
End If
Me!Gruppe.Requery
Me!Typ.Requery
Me!Bezeichnung = Null
End Sub

So nun ist aber NUR der Typ als Auswahlkriterium gegeben, wie
kann ich in diese Funktion auch noch die Tolleranz und die
Menge als Auswahlkriterium mit einbringen?
Die Tabellen sind alle miteinander über die jeweiligen ID’s
„verknüpft“.

ok, dann erstelle EINE Abfrage, in der du die Tabellen zusammen führst.

Diese nutzt du dann als Basis für deine Preisfindung.

Die Funktion DLOOKUP wird dir die Programmierung vereinfachen.

Grüße aus Schwerin
Wolfgang
(Netwolf)

Hallo Wolfgang,

vielen Dank erstmal!!!
Langsam finde ich meine Fehler!

Ich versuch es gleich einmal.

aber ich kann in der Tabelle wo ich alle zusammenführe diese Werte durch die jeweiligen ID’s vertreten lassen oder muss ich die realen Werte angeben?

Funktioniert dann die Summenbildung immer noch, auch wenn er keine Werte sondern nur ID’s hat?

Viele Grüße
Benni

Hallo Benni,

aber ich kann in der Tabelle wo ich alle zusammenführe diese
Werte durch die jeweiligen ID’s vertreten lassen oder muss ich
die realen Werte angeben?

mit der ID ist das schon richtig

Funktioniert dann die Summenbildung immer noch, auch wenn er
keine Werte sondern nur ID’s hat?

in den Dropdownfeldern gibt es dann 2 Spalten:

  1. Spalte = ID
  2. Spalte = Wert

Spaltenanzahl = 2
Spaltenbreite = 0 cm ;2 cm
(dadurch wird die erste Spalte mit der ID ausgeblendet und nur die zweite mit dem Wert angezeigt)

Mit dem Wert kannst du dann auch wieder rechnen.

Grüße aus Schwerin
Wolfgang
(Netwolf)

Hallo Wolfgang,

erstmal viel vielen Dank für die Hilfe!!

Alles klappt (fast) so wie ich es mir vorgestellt habe.

Auser bei der Summenbildung gibt es noch ein Problem:

Me.Preis = Me.Dropdown1.column(1) + me.Dropdown2.column(1)

Hier addiert er mir die Zahlen nicht sondern reit sie nur aneinander.

Ich glaube es fehlt der Befehl das er die Summe bilden soll was ja aber eigentlich durch das + gelöst sein sollte.
Ich komme aber nicht so richtig dahinter wie der Befehl lauten soll.

Vielen Dank im Vorraus!

Grüße
Benni

Hallo Wolfgang,

ok, dann erstelle EINE Abfrage, in der du die Tabellen
zusammen führst.

Diese nutzt du dann als Basis für deine Preisfindung.

Die Funktion DLOOKUP wird dir die Programmierung vereinfachen.

das habe ich gemacht.

In der Tabelle tbl_Grundpreis mit den Feldern:

GrundpreisID Grundpreis TypID TolleranzID MengeID

jetzt habe ich aber ein Problem beim Programmiern des Codes und zwar spricht er nicht alle Kriterien an.
Wie kann ich die denn gleichzeitig ansprechen?

Vielen Dank nochmal im Voraus.

Mfg

Benni

Hallo Benni,

Me.Preis = Me.Dropdown1.column(1) + me.Dropdown2.column(1)
Hier addiert er mir die Zahlen nicht sondern reit sie nur
aneinander.

ok, wenn das passiert, „rechnest“ du mit Buchstaben!
für die Mathematik werden allerdings Zahlen benötigt!!

Entweder du änderst deine Feldtypen, oder du verwendest die Funktion VAL()

Beispiel:
Me.Preis = val(Me.Dropdown1.column(1)) + val(me.Dropdown2.column(1))

Grüße aus Schwerin
Wolfgang
(Netwolf)

Hallo Wolfgang,

Entweder du änderst deine Feldtypen, oder du verwendest die
Funktion VAL()

Beispiel:
Me.Preis = val(Me.Dropdown1.column(1)) +
val(me.Dropdown2.column(1))

Also vielen Dank erstmal für den Typ!

Jetzt habe ich das genau so ausprobiert, leider funktioniert es immer noch nicht richtig!

Er rechnet jetzt z.B. €2,05 + €0,21 = €2,00

Ich vermute mal das er hier rundet. Dabei dachte ich immer das Access keine eigene Rundungsfunktion hat?

Wie kann ich das unterbinden sodass er mir die genaue Kommazahl von €2,26 z.B. nennt?

Grüße
Benni

Hallo.

Er rechnet jetzt z.B. €2,05 + €0,21 = €2,00

Rechnet er das, oder stellt er das nur dar? (Kannst Du überprüfen, indem Du direkt ins Feld klickst). Wenn der Cursor drin ist und sich plötzloch eine Dezimalzahl zeigt, liegt es an der Feldeigenschaft „Nachkommastellen“. Ist das nicht der Fall, dann sieh nach, welches Format Dein Summenfeld hat. Ist es Integer oder Long, kann er natürlich mit Dezimalstellen nicht umgehen.

Ich vermute mal das er hier rundet. Dabei dachte ich immer das
Access keine eigene Rundungsfunktion hat?

Ab Access 2002 hat es eine.

Wie kann ich das unterbinden sodass er mir die genaue
Kommazahl von €2,26 z.B. nennt?

S.o.

Gruß Eillicht zu Vensre

Hallo,

danke erstmal!

Er rechnet jetzt z.B. €2,05 + €0,21 = €2,00

Rechnet er das, oder stellt er das nur dar? (Kannst Du
überprüfen, indem Du direkt ins Feld klickst). Wenn der Cursor
drin ist und sich plötzloch eine Dezimalzahl zeigt, liegt es
an der Feldeigenschaft „Nachkommastellen“. Ist das nicht der
Fall, dann sieh nach, welches Format Dein Summenfeld hat. Ist
es Integer oder Long, kann er natürlich mit Dezimalstellen
nicht umgehen.

Er stellt dar,
wenn ich in das Feld klicke kommt der Cursor aber er zeigt keine Dezimalstellen/Nachkommastellen an sondern nur die volle Zahl z.B. 2.

Leider finde ich in den Eigenschaften des Textfeldes wo die Summe dann angezeigt werden soll (auch unter Format) nicht eine Auswahl wo ich Integer oder Long „deaktivieren“ kann.
Ich habe das Format auf € gestellt und die Anzahl der Dezimalstellen auf 2.
Wo änder ich denn das um?

Muss ich das Textfeld in dem die Summe gezeigt werden soll irgendwie „umwandeln“ von einem Textfeld in ein Zahlenfeld?
Oder ist das was du oben gemeint hast mit der Formatänderung?

Grüße
Benni