G’day Kraj.
“Does anyone know of an efficient method of determining where the breakdown is?“
No, not really but a few pointers and in no particular order.
One of the things is to know as much as is possible about the situation. All information about an error is important and all information should be taken with a grain of salt.
Another is to not go too far without testing that which is already available. It is a simple thing to say, but testing a small amount of code is easier than testing a large amount of code. Testing small SQL statements is easier than testing large SQL statements. KISS.
If the code or SQL is already large, try to break it down into simple steps. This goes for all failures but requires intimate knowledge of the system to break it down. In all cases that I know…divide and conquer.
Now for the in-built breakpoints and stepping through code... it has never proved advantageous to me. One of the reasons for that is I started with code that did not support breakpoints or stepping. The next thing is that when you start with a new language the effort of learning the new language is better spent on preventing errors not stepping through them. A simple inline MsgBox, not even Debug.Print, still suffices for me.
Finally, don’t give up if the correct outcome appears to elude us, some things take time. Do it in the light of day, sleep on it or even free range think it out while drunk with a knowledgeable friend.
Forty years in another area leads me to this but take it with a grain of salt.
Regards,
Chris.