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 |