¿qué base de datos usas?
En Firebird/Interbase, lo normal es crear un trigger y si la cantidad a quitar es menor que cero lanzas una excepción, abortando así el guardado.
En paradox y otras tablas de escritorio, puedes lanzar una consulta sql para saber ese stock, por ejemplo:
Código SQL
[-]
select Cantidad from productos where Idproducto = 3
Otra forma es usando "Checks" en la base de datos, en la tabla de stock puedes poner que sea Value >= 0, pero quizás es más incómodo que lo anterior.
Saludos