Il comando Execute di un oggetto connessione (ADODB.connection, immagino e/o spero)
si utilizza per query che non estraggono un recordset. Le usi correttamente per
l'inserimento e l'aggiornamento come in :
codice:
inserimento = "insert into vendite (idprodotto, idcliente, data, quantita, prezzo, iva, sconto) values ( '" & Text4 & "', '" & Text2 & "', '" & Text8 & "', '" & Text6 & "', '" & Text5 & "', '" & Text7 & "', '" & Text9 & "');"
db.Execute inserimento
'Aggiornamento tabella prodotto
aggiornamento = "Update Prodotto set Scorta = Scorta - " + Text6 + " where idprodotto = " + Text4 + " "
db.Execute aggiornamento
Nel caso di una query di selezione non la usi correttamente. Ecco perchè non ottieni il
valore del campo scorta come risultato della prima Execute.
Dovresti 'recuperare' il valore della SELECT .. utilizzamdo un oggetto ADODB.RecordSet :
codice:
Dim scorta As Integer
Dim rs As New ADODB.Recordset
selezione = "select scorta from prodotto where idprodotto= " + Text4 + ";"
rs.Open selezione, db
' Nota, si da per scontato l'esistenza del campo scorta nel recordset con un valore valido.
scorta = rs.Fields("scorta").Value
' A questo punto puoi fare il controllo .....
If scorta >= Text6 Then
....
....
Else
....
....
End If
Attento che utilizzi la proprietà predefinita (.Text) dei Text Box in modo non sicuro, senza
controlli e non canonico. Dove per canonico intendo almeno :
codice:
If scorta >= Val( Text6.Text) Then
....
....
End If