Hallo
Ich versuche mit SQL ein Summe aus einem Unterformular (Auftrags-Positionen) zu berechnen. Doch ich bekomme immer den Wert 0
Hier der Code
Private Sub AuftrSumme()
'Auftr Summen in Auftr-Kopf schreiben
Dim db As DAO.Database
Dim rsAuftrTot As DAO.Recordset
Dim dblPosTot As Double
Set db = CurrentDb
Set rsAuftrTot = db.OpenRecordset("SELECT Sum(auftrD_PosTotal) As " & dblPosTot _
& " FROM tblAuftrDetail 'WHERE auftrD_auftrK_IDF =" & Me.auftrK_ID)
MsgBox (dblPosTot)
End Sub
Schlussendlich möchte ich mit diesem Wert weiterrechnen (Auftragsrabatt, MWSteuer). Diese Werte möchte ich beim Abschuss des Auftrags in die Auftragstabaelle schreiben. Diese Werte benötige ich um mit einer Anfügeabfragedie Daten in eine Debitorentabelle zu schreiben. (Deibtorenschnittstelle)
Was mache ich falsch oder wie kann ich das Problem anders lösen. Ich habe die Summen als Berechnende Felder auf meinem Formular Auftrag, doch da diese keine Datenbankfelder sind kann mich mit einer Abfrage nicht auf diese zugreifen.
Gruss Daniel
Zitat von: smily68 am Mai 07, 2012, 14:51:39
Set rsAuftrTot = db.OpenRecordset("SELECT Sum(auftrD_PosTotal) As " & dblPosTot _
& " FROM tblAuftrDetail 'WHERE auftrD_auftrK_IDF =" & Me.auftrK_ID)
Kann sein, daß der Apostroph vor dem WHERE stört.
Schreibe mal den SQL-Ausdruck in eine Variable und gib diese in der Konsole aus. Anschließend füge den String in eine Abfrage ein (Abfragentwurf - SQL-Ansicht)
Dim sql as String
sql = "SELECT Sum(auftrD_PosTotal) As " & dblPosTot _
& " FROM tblAuftrDetail 'WHERE auftrD_auftrK_IDF =" & Me.auftrK_ID
Debug.Print sql 'Diesen Ausdruck dann direkt ausführen
Set rsAuftrTot = db.OpenRecordset(sql)
Hallo,
Private Sub AuftrSumme()
'Auftr Summen in Auftr-Kopf schreiben
Dim db As DAO.Database
Dim rsAuftrTot As DAO.Recordset
Dim dblPosTot As Double
Set db = CurrentDb
Set rsAuftrTot = db.OpenRecordset("SELECT Sum(auftrD_PosTotal) As SummeTotal" & _
" FROM tblAuftrDetail WHERE auftrD_auftrK_IDF =" & Me.auftrK_ID)
dblPosTot = rsAuftrTot!SummeTotal
MsgBox (dblPosTot)
End Sub
Hallo
Es funktioniert.
Gruss Daniel
xxx