OK, here's some SQL that does NOT work!. My thought would be to make some code that does twelve of these in a loop, though someone else might be able to figure out how to make the sql work. I'll post code below.
INSERT INTO tblTestSingle ( v, a )
SELECT tblTest.V1, tblTest.a1
FROM tblTest
WHERE (((tblTest.V1)="1"

)
UNION
SELECT tblTest.V2, tblTest.a2
FROM tblTest
WHERE (((tblTest.V2)="2"

)
UNION
SELECT tblTest.V3, tblTest.a3
FROM tblTest
WHERE (((tblTest.V3)="3"

)
The code would look something like this, though this is untested aircode:
sub blah
dim strSql as string
dim db as dao.database
dim iCount as integer
set db = currentdb
for iCount = 1 to 12
strsql = "INSERT INTO tblTestSingle ( v, a ) " _
"SELECT tblTest(V" & iCount & "

, tblTest(a" & iCount _
& "

" _
& "FROM tblTest " _
& "WHERE (((tblTest.V" & iCount &"

=" & iCount & "

)"
db.execute(strsql, dbfailonerror)
next iCount
end sub
Jeremy
(PLEASE back up your data before trying this)
=============
Jeremy Wallace
Designing, Developing, and Deploying Access Databases Since 1995
Take a look at the Developer's section of the site for some helpful fundamentals.
Remember to reward helpful tips with the stars they deserve.