Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: smily68 am Mai 07, 2012, 14:51:39

Titel: Summe mit SQL
Beitrag von: smily68 am Mai 07, 2012, 14:51:39
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
Titel: Re: Summe mit SQL
Beitrag von: Wurliwurm am Mai 07, 2012, 15:07:45
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)

Titel: Re: Summe mit SQL
Beitrag von: database am Mai 07, 2012, 15:12:34
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
Titel: Re: Summe mit SQL
Beitrag von: smily68 am Mai 17, 2012, 22:07:45
Hallo

Es funktioniert.

Gruss Daniel
Titel: Re: Summe mit SQL
Beitrag von: hello_world am Juni 24, 2012, 16:27:16
xxx