Göra beräkningar på data

Koppla ihop tabeller Utskrift i Word

Antag att vi vill summera vad alla kunder har handlat för. Först gör vi några nya dimensioneringar:

Dim odjDR As DataRow
Dim Kalle, Pelle, Olle As Single

Antag att vi först söker ut alla kunder och vad de handlat för enligt föregående exempel. Allt som syns i vårt DataGrid finns även i vårt DataSet, som vi deklarerade till objDS och fyllde med raden

objDataAdapter.Fill(objDS, "resultat")

Sist i koden lägger vi till några rader:

For Each odjDR In objTable.Rows
   If Not odjDR.IsNull("Namn") Then
      Select Case odjDR("Namn").ToString
         Case "Kalle"
         Kalle += odjDR("Pris").ToString
      Case "Pelle"
         Pelle += odjDR("Pris").ToString
      Case "Olle"
      End Select
   End If
Next
MsgBox("Kalle har handlat för: " & Kalle & vbCrLf & "Pelle har handlat för: " & Pelle & vbCrLf & "Olle har handlat för: " & Olle)

Om vi nu bara klickar på knappen kommer inte bara alla data i DataGrid utan dessutom en MsgBox med en summering av vad kunderna har handlat för. Nu kan vi ändra som vi önskar, till exempel summera alla kunder från en viss ort. Då är det bara att byta Namn mot ort i raden

Select Case odjDR("Namn").ToString

och sedan ortnamnen i stället för kundnamnen i Case-satserna. Hela koden är nu:

Dim Connection As String
Dim Sql As String
Dim objDS As New DataSet()
Dim objTable As DataTable
Dim varKund, varOrt, varVara As String
Dim odjDR As DataRow
Dim Kalle, Pelle, Olle As Single
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

objDS.Tables.Clear()
Sql = "SELECT Kunder.*, Varor.Vara, Varor.Pris FROM Kunder, Leverans, Varor WHERE Leverans.KundID=Kunder.KundID AND Leverans.VaruID=Varor.VaruID ORDER BY Kunder.Namn"
Connection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\VB.Net skola\sql\handel.mdb"
Dim objConn As New OleDb.OleDbConnection(Connection)
Dim objDataAdapter As New OleDb.OleDbDataAdapter(Sql, objConn)
objConn.Open()
objDataAdapter.Fill(objDS, "resultat")
objConn.Close()
objTable = objDS.Tables("resultat")
DataGrid1.DataSource = objDS.Tables("resultat")
For Each odjDR In objTable.Rows
   If Not odjDR.IsNull("Namn") Then
      Select Case odjDR("Namn").ToString
         Case "Kalle"
         Kalle += odjDR("Pris").ToString
      Case "Pelle"
         Pelle += odjDR("Pris").ToString
      Case "Olle"
      End Select
   End If
Next
MsgBox("Kalle har handlat för: " & Kalle & vbCrLf & "Pelle har handlat för: " & Pelle & vbCrLf & "Olle har handlat för: " & Olle)
End Sub

Koppla ihop tabeller Utskrift i Word

SupportData.Net
©