rs = SQL.ExecQuery2( "SELECT * FROM table1 WHERE col1 IN (?,?,?)", Array("john","paul","ringo") ), not (?)
you need a placemarker for each element in the list.
if you don't know how many elements there will be in the list, you have to build a placeholder.
obviously, at some point you'll have to know how many elements there are, otherwise you'd never be able to formulate a query.
building the placeholder is easy: if you have 6 elements in the list, the placeholder will be (?,?,?,?,?,?). count the elements and put a "?" for each one.
separate with a comma.
your query would look something like "SELECT * FROM table1 WHERE col1 IN (" & placeholder & ")"