Hi Steve,
Your initial request was to execute the query using ADO within VFP. Your example illustrates you are attempting to automate Access. It's possible to do it both ways.
Automating Access:
lcSQL="INSERT INTO Table2 SELECT * FROM Table1"
mydatabase="C:\mypath\mydatabase.mdb"
oAcc=createobject("access.application"

oAcc.opencurrentdatabase(myDatabase)
oAcc.DoCmd.RunSQL(lcSQL)
oAcc.closecurrentdatabase()
oAcc.quit
release oAcc
Using ADO:
lcConnect="Provider=Microsoft.Jet.OLEDB.4.0;Password=mypass;User ID=myuser;Data Source=C:\mypath\mydatabase.mdb;Persist Security Info=True"
lnAffected=0
lcSQL="INSERT INTO Table2 SELECT * FROM Table1"
oConnection = CreateObject('ADODB.Connection')
oConnection.Open(lcConnect)
IF oConnection.State = 1 && connected sucessfully
oConnection.Execute(lcSQL,@lnAffected)
IF lnAffected > 0
WAIT WIND "Data Transfer: "+TRAN(lnAffected)+"Records"
ENDIF
ELSE
WAIT WIND "Unable to connect"
ENDIF
Of the two approaches, I'd recommend the latter because it creates less overhead on memory and doesnt require Access on the target machine, only MDAC. Jon Hawkins