OleDb.OleDbCommandBuilder






Dim i As Integer = 0
Dim Quantita' As Integer = 0
Dim Valore As Double = 0

bs.MoveFirst()
con.Open()

Dim cb As New OleDb.OleDbCommandBuilder(da)
Try


For i = 0 To bs.Count - 1

If ds.Tables("Magazzino").Rows(bs.Position).Item(5) = "Vendita" Then
Quantita' = ds.Tables("Magazzino").Rows(bs.Position).Item(2)

bs.RemoveCurrent()
'Questa riga consente di aggiornare il DB

da.Update(ds, "Magazzino")

If Not bs.Position = bs.Count - 1 Then
bs.MovePrevious()
End If
ds.Tables("Magazzino").Rows(bs.Position).Item(2) -= Quantita'



Dim ripeti As Boolean 'AL POSTO DEL GOTO
Do 'AL POSTO DEL GOTO
ripeti = False 'AL POSTO DEL GOTO


If ds.Tables("Magazzino").Rows(bs.Position).Item(2) < 0 And ds.Tables("Magazzino").Rows(bs.Position).Item(5) = "Acquisto" Then
Quantita' = ds.Tables("Magazzino").Rows(bs.Position).Item(2)

bs.RemoveCurrent()
'Questa riga aggiorna il DB

da.Update(ds, "Magazzino")

'Se sono sull'ultimo record e lo cancello, la posizione diminuisce di uno, e aggiungo al penultimo record

If Not bs.Position = bs.Count - 1 Then
bs.MovePrevious()
End If

ds.Tables("Magazzino").Rows(bs.Position).Item(2) += Quantita' 'Incollo un numero negativo, quindi sottraggo
ripeti = True 'AL POSTO DEL GOTO
End If

'N.B. Deve essere al difuori del IF!!

Loop While ripeti 'AL POSTO DEL GOTO

End If

bs.MoveNext()

Next i


bs.MoveFirst()

'Un ciclo exnovo per calcolare il valore, in questo caso non esistono record Deleted

For i = 0 To bs.Count - 1
Quantita' = ds.Tables("Magazzino").Rows(bs.Position).Item(2)
TextBox1.Text = Val(TextBox1.Text) + Quantita'
Valore = ds.Tables("Magazzino").Rows(bs.Position).Item(2) * ds.Tables("Magazzino").Rows(bs.Position).Item(4)
TextBox2.Text = Val(TextBox2.Text) + Valore
bs.MoveNext()
Next i
con.Close()

Catch
Exit Sub
Finally
MsgBox("Calcolo effettuato")
End Try










( oledboledbcommandbuilder.html )- by Paolo Puglisi - Modifica del 17/12/2023