Werte summieren und in einer Textbox ausgeben

exiter28

Erfahrenes Mitglied
Hallo,
ich bräuchte mal kurzen denkanstoß:

Mit folgendem Select werden ja alle Daten innerhalb eines Zeitraums angezeigt:
Code:
Dim sql As String

sql = "date >= # " & DateTimePicker2.Value.Month & "/" & DateTimePicker2.Value.Day & "/" & DateTimePicker2.Value.Year & "#"
sql += " AND date <= # " & DateTimePicker3.Value.Month & "/" & DateTimePicker3.Value.Day & "/" & DateTimePicker3.Value.Year & "#"
MoneyBindingSource.Filter = sql

Soweit so gut. Nun möchte ich aber aus einer bestimmten Spalte (day_issuing)
alle Werte in dem angezeigten Zeitraum summieren und in einer Textbox ausgeben.

Würde Euch dazu was einfallen?


Vielen Dank schon mal!
 
Code:
Dim sql As String

        sql = "SELECT SUM(day_issuing)"
        MoneyBindingSource.Filter = (sql)

Wenn ich es so mache, bekomme ich einen fehler:

Syntaxfehler: Fehlender Operand nach dem Operator 'SUM'.
 
Was ist denn überhaupt "MoneyBindingSource"? Du legst doch jedesmal nur das Attribut "Filter" fest, was möglicherweise nur für die WHERE Bedingung Zuständig ist (wenn man deinen Startpost betrachtet). Irgendwo musst du doch festlegen, welche Spalten abgefragt werden.

Aber kann es sein, daß DataSet kein SQL kann?

Also arbeitest du garnicht auf einer Datenbank? Können wir ja nicht erraten. Das DataSet beherrscht nur eine beschränkte Untermenge des SQL-Standards. SUM gehört nicht dazu.

http://forums.asp.net/t/985565.aspx
 
hab das jetzt mal mit u.s. code versucht. Aber komischer weise bekomme ich immer einen Systaxfehler: Ungültige Verwendung von Aggregatfunktion Sum() und Typ: String.

Kann ich die Summe nicht als String ausgeben?

Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & verzeichnis & "moch.mdb;"
Dim conn As New OleDbConnection(strConn)
Dim da As OleDbDataAdapter = New OleDbDataAdapter("Select * FROM [money]", conn)
Dim dt As New DataTable
Dim ds As New DataSet
Dim bs As New BindingSource

ds.Tables.Add(dt)
da.Fill(dt)
bs.DataMember = ds.Tables(0).TableName
bs.DataSource = ds
MoneyDataGridView.DataSource = bs

' Über DataTable
'lbl1.Text = dt.Compute("Sum([day_issuing])", "")

'oder

' Über DataSet
lbl1.Text = ds.Tables(0).Compute("Sum([day_issuing])", "")
 
habs jetzt selber rausgefunden. Die Summe schreib ich einfach in eine andere Tabelle (temporär) und gib die dann aus.
 
habs jetzt selber rausgefunden. Die Summe schreib ich einfach in eine andere Tabelle (temporär) und gib die dann aus.

Dim AccessCommand As New System.Data.OleDb.OleDbCommand("SELECT SUM(day_issuing) INTO [sum_issuing] from [money] WHERE date >=# " & DateTimePicker2.Value.Month & "/" & DateTimePicker2.Value.Day & "/" & DateTimePicker2.Value.Year & "# AND date <= # " & DateTimePicker3.Value.Month & "/" & DateTimePicker3.Value.Day & "/" & DateTimePicker3.Value.Year & "#", AccessConn)
 

Neue Beiträge

Zurück