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
|