I'm implementing a 'query builder' for searching data in my application. The users will select the table they are searching in, the field in the table, and the value to search for.
Here's what it looks like initially (area is larger than picture and will eventually scroll once there's 10 or so rows):

I'm stuck in determining when/how to add a new row for search criteria to the screen. The screen currently starts by displaying a header and an initial row. I think it should add a new row for search criteria once the previous row is completely filled.

Other's that I have talked with think it it's better to have a button to add a new row. Either next to each row (graying out after it's clicked) or near the table headers.

I see pros and cons to both. You obviously are ready to enter any new search criteria once you completely fill in a row of criteria. But, it may distract the user from what they were doing if a new row suddenly without explicitly requesting it. Thoughts?
