Summen aus Kombifeldern bilden

Hallo,

ich habe 3 Kombifelder die gleich aufgebaut sind:

ID Produkt Preis

nun möchte ich in einem Textfeld (ergebnis) die Summe der Preise dieser Produkte bilden.
Die Formel zur berechnung ist in einer extra Tabelle (tbl_Formel) gespeichert und wird in dem Listenfeld(Liste2) ausgewählt.
Ich habe das so versucht:

Private Sub Befehl14_Click()
Berechnen
End Sub

Private Sub Berechnen()
Dim Wert
Dim Produkt1 As Double
Dim Produkt2 As Double
Dim Produkt3 As Double
Preis1 = a
Preis2 = b
Preis3 = c
Wert = Me![Liste2]
If IsNull(Me![Liste2].Value) Then MsgBox „Bitte Formel markieren !“
If IsNull(Me![Liste2].Value) Then Exit Sub
If Wert = „a+b+c“ Then Ergebnis = Produkt1 + Produkt2 + Produkt3
End Sub

Jetzt addiert er mir aber nicht die Preise der Summen sondern er möchte den Text(Produkt) addieren was ja nicht geht.
Wie spreche ich das Tabellenfeld Preis zum addieren an??

Vielen Dank im Vorraus!
Mfg
Benni

Hallo,

ich habe 3 Kombifelder die gleich aufgebaut sind:

ID Produkt Preis

das ist garantiert nicht so!!

nun möchte ich in einem Textfeld (ergebnis) die Summe der
Preise dieser Produkte bilden.

auch Access kann mit Buchstabensalt nicht rechnen, es benötigt Zahlen dafür, und Zahlenfelder, wo die Information entweder drin steht oder reingeschrieben werden soll.
Alternativ besteht natürlich die Möglichkeit die Zahlen in Text und den Text in Zahlen zu konvertieren.

Private Sub Berechnen()
Dim Wert
Dim Produkt1 As Double
Dim Produkt2 As Double
Dim Produkt3 As Double

wieso die Produkte? und nicht der Preis der Produkte?

Preis1 = a
Preis2 = b
Preis3 = c

was soll das? wo kommen die Werte für A,B,C her?

Wert = Me![Liste2]

welchen Wert willst du hier erhalten? und wofür?

If IsNull(Me![Liste2].Value) Then MsgBox „Bitte Formel
markieren !“
If IsNull(Me![Liste2].Value) Then Exit Sub

das geht kürzer:
If IsNull(Me![Liste2].Value) Then
MsgBox „Bitte Formel markieren !“
Exit Sub
end if

If Wert = „a+b+c“ Then Ergebnis = Produkt1 + Produkt2 +
Produkt3

sollte nicht der Preis zusammengerechnet werden?
Warum rechnest du hier die Produktbezeichnung zusammen?

End Sub

Jetzt addiert er mir aber nicht die Preise der Summen sondern
er möchte den Text(Produkt) addieren was ja nicht geht.
Wie spreche ich das Tabellenfeld Preis zum addieren an??

ggf. etwas so: Preis1 + Preis2 + Preis3

Grüße aus Raben Steinfeld (bei Schwerin)
Wolfgang
(Netwolf)

Hallo.

Also, mit Deinem Code fange ich gar nicht erst an, sorry - das ist ja wie mit Ziegen am Berg ackern.

Folgendes Beispiel hilft Dir hoffentlich :

Im Formular haben wir drei Kombinationsfelder : cof_Produkt1, cof_Produkt2 und cof_Produkt3. Als Datenquelle ist für alle drei angegeben „SELECT pky_Produkt,sng_Einzelpreis FROM tbl_Produkt“. Dabei steht pky_ für den primary key.

Das Listenfeld lif_Formel wird mit „SELECT pky_Formel,txt_Formel FROM tbl_Formel“ beladen.

Nun hast Du einen Klicki namens btn_rechnen, der Dir das Feld „sng_Gesamtpreis“ beliefern soll.

Private Sub btn\_rechnen\_Click()
Dim sng\_PPreis1 As Single
Dim sng\_PPreis2 As Single
Dim sng\_PPreis3 As Single
If ((IsNull(lif\_Formel)) Or \_
 (lif\_Formel=0)) Then
 MsgBox "bitte Formel auswählen!"
 lif\_Formel.SetFocus
 Exit Sub
End If
If (IsNull(cof\_Produkt1) Then
 sng\_PPreis1=0
Else
 sng\_PPreis1=cof\_Produkt1.Column(1)
End If
If (IsNull(cof\_Produkt2) Then
 sng\_PPreis2=0
Else
 sng\_PPreis2=cof\_Produkt2.Column(1)
End If
If (IsNull(cof\_Produkt3) Then
 sng\_PPreis3=0
Else
 sng\_PPreis3=cof\_Produkt3.Column(1)
End If
Select Case lif\_Formel.Column(1)
 Case "a+b+c"
 sng\_GesamtPreis=sng\_PPreis1+sng\_PPreis2+sng\_PPreis3
 Case "a+b-c"
 sng\_GesamtPreis=sng\_PPreis1+sng\_PPreis2-sng\_PPreis3
'.......
End Select
End Sub

Befasse Dich mit diesem Code - der mangels Testmöglichkeit noch Verschreibseler enthalten kann - und setze das Ganze auf Deine Bedürfnisse um.

Gruß Eillicht zu Vensre

Hallo.

Also, mit Deinem Code fange ich gar nicht erst an, sorry - das
ist ja wie mit Ziegen am Berg ackern.

Danke:wink: aber bin auch noch in der Lernphase!!

Folgendes Beispiel hilft Dir hoffentlich :

Ja das hat mir sehr geholfen! Habe den Code nun umgeschrieben und die Fehler ausgemertzt, und muss jetzt noch die Namen anpassen. Aber sollte gehen!

Vielen Dank!

Mfg
Benni

Hallo,

sollte gehen!

tut es aber leider nicht:frowning:
ich habe mir den code jetzt angepasst, vielen Dank dafür:

Private Sub Befehl29_Click()
’ Bestimmen des Endpreises
Dim sng_Grundpreis As Single
Dim sng_Zuschlag1 As Single
Dim sng_Zuschlag2 As Single
If ((IsNull(lif_Formel)) Or _
(lif_Formel = 0)) Then
MsgBox „bitte Formel auswählen!“
lif_Formel.SetFocus
Exit Sub
End If
If (IsNull(cof_Menge)) Then
sng_Grundpreis = 0
Else: sng_Grundpreis = cof_Menge.Column(2)
End If
If (IsNull(cof_Ohm)) Then
sng_Zuschlag1 = 0
Else: sng_Zuschlag1 = cof_Ohm.Column(2)
End If
If (IsNull(cof_Zuschlag2)) Then
sng_Zuschlag2 = 0
Else: sng_Zuschlag2 = cof_TK.Column(2)
End If
Select Case lif_Formel.Column(1)
Case „a+b+c“
sng_Gesamtpreis = sng_Grundpreis + sng_Zuschlag1 + sng_Zuschlag2
End Select

Nun kommt aber der Laufzeitfehler 94, unzulässige verwendung von 0 bei der Textzeile
Else: sng_Grundpreis = cof_Menge.Column(2)

In den Column(2) Spalten stehn aber überall Zahlen sodass eigentlich kein 0 Wert vorhanden ist

Was mache ich falsch?

Vielen Dank im Voraus!
Mfg Benni