Thema Datum  Von Nutzer Rating
Antwort
Rot VB Summierung nach Gruppe und Datum
10.12.2012 12:54:39 Daniel
NotSolved

Ansicht des Beitrags:
Von:
Daniel
Datum:
10.12.2012 12:54:39
Views:
1375
Rating: Antwort:
  Ja
Thema:
VB Summierung nach Gruppe und Datum

Hallo,

habe Probleme bei der Summierung von Datensätzen.

Habe in einer Datenbank folgende Tabellen: "Modelle", "ArtikelVerbrauch", "Zeahlerstand"

Die Tabellen "ArtikelVerbrauch" und  "Zeahlerstand" sind der Tabelle "Modelle" untergeordnet.

Die Tabelle "Modelle" bestimmt lediglich das Feld "ID" den Index über dem Summiert werden soll.

In der Tabelle "ArtikelVerbrauch" werden verbaut Teile eingetragen. Neben der Bezeichnung und der Art.-Nr. gibt es die Felder "VerbautAm",  "VBM" und "Preis".

Das Feld "VerbautAm" zeigt das Datum an dem der Artikel verbaut wurde

Das Feld "VBM" besteht aus einem string das entweder mit "J", "N", "F" oder "A" belegt ist. (Gruppierung der Artikel z.B  Verbrauchsmaterial = "J" , Ersatzteile = "N")

Das Feld "Preis" zeigt den Preis vom Artikel

In der Tabelle "Zaehlerstand" werden in unregelmäsigen Abständen Zählerstände der Modelle eingetragen, dabei wird ein Zeitraum in den Datumsfeldern "Von" und "Bis" festgelegt .

Ich möchte erreichen, dass beim Eintragen der Zählerstände die Kosten der jeweiligen Gruppen ( "J" , "N" usw.) für den Zeitraum zwischen "Von" und "Bis" summiert werden, und in die jeweiligen Felder (z.B.: "KostenVBM" , "KostenErsatz" ), die sich in der Tabelle "Zaehlerstand" befinden, eingetragen werden.

Die Summierung der einzelnen Gruppen funktioniert, dies nutze ich bereits als gesamtübersicht der Kosten, ich weiss nur nicht wie ich sage, dass die Gruppe nur summiert wird wenn das Feld "VerbautAm" >= "Von" aber <= "Bis" ist.

Was muss ich tun damit dies auch berücksichtigt wird. Ich hoffe jemand kann mir helfen.

 

Private Sub mtbl5_Changed(ByVal ChangedAspect As OrgDbServer31.OrgDbTableChangedEnum)
    
    Dim objSumResult() As OrgDbServer31.SumResult
    Dim sMasterId As String
    Dim sCondition As String
    Dim i As Long
    Dim sDatumVerbautAm As Date
    Dim sDatumVon As Date
    Dim sDatumBis As Date
        
        
    If Tools.TableChangedFlagIsSet(ChangedAspect, ORGDB_TC_CONTENT) Then
    
        With Database.Tables("CNKD_Zaehlerstand")
            sMasterId = .Fields("IDmodelle").value
            sCondition = "CNKD_ArtikelVerbrauch->IDmodelle = """ & sMasterId & """"
            sDatumVerbautAm = Database.Tables("CNKD_ArtikelVerbrauch").Fields("BestelltAm").value
            sDatumVon = .Fields("Von").value
            sDatumBis = .Fields("Bis").value
            
            objSumResult = Database.Tables("CNKD_ArtikelVerbrauch").Sum("CNKD_ArtikelVerbrauch->Preis", "CNKD_ArtikelVerbrauch->VBM", sCondition)
            For i = 1 To UBound(objSumResult)
                If sDatumVerbautAm >= sDatumVon And sDatumVerbautAm <= sDatumBis And objSumResult(i).Group = "J" Then 
                             .Fields("KostenVBM").value = objSumResult(i)
                          
                ElseIf sDatumVerbautAm >= sDatumVon And sDatumVerbautAm <= sDatumBis And objSumResult(i).Group = "J" Then
                             .Fields("KostenErsatz").value = objSumResult(i).Sum
                
                End If
            Next i
                
            .Write ORGDB_NAV_NOEVENTS
        End With
            
    End If
         
End Sub

 

 
                    
                
           

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VB Summierung nach Gruppe und Datum
10.12.2012 12:54:39 Daniel
NotSolved