Well, it isn't what you are doing with the data command that's messing the code up, it's your method of referencing arrays.
If you have the array
test$(2,3), think of it as 12 seperate variables that just happen to be easily accessable with numbers. You can't just put something into test$(). Neither can you just put something into test$(2). You have to specify an exact location, such as test$(1,2) or test$(0,1).
Also, the values in your data statement are integers, and the array
test$(0,0) that you are trying to read them into is a string.
I'm assuming you want to read the data into the array in order and then print it back in order. In that case, try this:
Dim test(2,3)
for a=0 to 2
for b=0 to 3
read test(a,b)
next b
next a
curra=0
currb=0
do
wait key
print test(curra,currb)
inc currb
if currb=4 then currb=0 : inc curra
if curra=3 then print "End of data"
loop
test:
data 1,2,3,1,2,3,1,23,3,4,3,2