I don't know if anyone is still interested in this but I wrote a sudoku solver for Microsoft Access in VBA.
I used a 4 dimensional array to store the grid and copies of the grid. A(9,9,9,2).
1st and 2nd dimensions refer to row and column (x,y).
3rd dimension(1-9) hold the status of each number for that (x,y)cell: 1 if that number is still possible in that location, 0 if number used, and 3rd dimension(0) holds the value of that cell when cell contains a number or 0 if undecided
The fourth dimension just enables a copy to be taken of the current position so that after initial input the start position can be simply saved, and a goback function can be created.
for x 1-9,for y 1-9,for z 0-9
a(x,y,z,1) = a(x,y,z,0)
next,next,next
The solution isn't just a matter of looking for a cell with only one option left. Sometimes it has several options but is the only one with a particular number.
Difficult puzzles have a cell which has to be guessed. I haven’t written a routine to make guesses. I let the user do that. Validating input and allowing delete was pain enough. What I’ve done isn’t pretty but It satisfied my urge to do something.