You can put in alert messages alerting you to where the form is when the Save button is pressed (in pre-insert/update, on-insert/update, post - you get the idea). You can have a SQL*Plus session to query the table(s) to see if the data was inserted. You may have a logic error in the form that causes the commit to not take place at all - when it works in front of you, is it the same data? You can trace the session. Turn tracing on (in the form with alter session set sql_trace=true) right after a button press - you don't need it from when the form starts. Any combination of the above.