E' tutto ok. Ora però sorge ancora un altro problema
Ho creato un form in cui quando uno preme su una riga di datagrid viene memorizzata la colonna 1.
A questo punto uno può scegliere carica/scarica, inseirre la quantità e aggiornare il "magazzino", diciamo cosi
Ho creato uno script cosi
Text3.text sarebbe la quantità già presente in magazzno, la text4 è quella nuova da aggiungere o rimuovere
codice:
If Text3.Text Or Text4.Text = "" Then
'se non scrive niente oppure non ha premuto nessun datagrid (dato che se non premi il datagrid la text3 non viene mai generata
MsgBox "Quantità lasciata vuota!", vbCritical + vbOKOnly, "Errore"
Else
vecchio = Val(Text3.Text)
nuovo = Val(Text4.Text)
'converto in numerico i due campi
End If
'connessione al database
provider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\database\webmg.mdb" & ";mode=ReadWrite;Persist Security Info=False"
Set cs = New ADODB.Connection
Set rs = New ADODB.Recordset
cs.Open provider
rs.Open "magazzino", cs, 3, 3
If ok = True Then
'se ok è uguale vuol dire che ha premuto carica, quindi
risultato = vecchio + nuovo
'sommo
rs.MoveFirst
'vado al primo record
Do
rs.MoveNext
Loop Until rs!codice = DataGrid1.Columns(0)
'vai avanti finchè non trovi il codice descritto nella datagrid premuta
rs.AddNew
'aggiungo in quantià il valore niente
'credo sia qui l'errore in quanto dovrebbe esserci un aggiornamento, non uno svuotamento
rs!quantita = ""
rs.Update
rs.AddNew
rs!quantita = risultato
rs.Update
'questo è tale e quale al prima ma nel caso abbia premuto scarica
ElseIf ok = False Then
risultato = vecchio - nuovo
Do
rs.MoveNext
Loop Until rs!codice = DataGrid1.Columns(0)
rs.AddNew
rs!quantita = ""
rs.Update
rs.AddNew
rs!quantita = risultato
rs.Update
End If
Set rs = Nothing
Set cs = Nothing
Adodc1.Refresh
Text3.Refresh
Però non funziona, credo per molte ragioni. Qualcuno di voi mi sa aiutare?