Basically, you have an array of the game grid. Once a block has locked into place, update the array and tell the appropriate array locations that that area is now occupied. Then you have your "check for row completion" method. This would just be a nested loop.
if your game grid is 10x20, then your array is:
dim grid(10,20)
to check for row completion, click the "source" icon.
You might be wondering why I have the "else exit" in the loop. If you come to a column in the row that isn't occupied, then exit the inner FOR loop. There's no sense in checking the rest of the row if you already know there's one unoccupied spot.
"eureka" - Archimedes