En la primera consulta, es posible que el
SELECT DISTINCT no devuelva nada y por eso no se inserte nada en la tabla.
Pero en la segunda:
Código SQL
[-] CAsmm.SQL.Text:='SELECT * INTO ASM_MASIVO FROM (SELECT * FROM CASM_MASIVO);';
No tiene sentido que no inserte nada si hay registros en
CASM_MASIVO.
En otros sistemas es necesario añadir un alias a la tabla (SELECT) para que funcione, aunque imagino que ya lo has probado:
Código SQL
[-]SELECT TABLA.* INTO ASM_MASIVO FROM (SELECT * FROM CASM_MASIVO) AS TABLA;
Otra opción que puedes probar es a almacenar esta consulta en access y llamarla desde Delphi. Si no recuerdo mal, puedes crae la consulta dentro del MDB y llamarla como si fuera un StoredProcedure (con sus parámetros). Aunque sólo sea por probar.
Otra cosa que yo haría es añadir
try..except a las llamadas. No se si fuera de este código tienes control de excepciones. Si es así es posible que esté sucediendo algún error y lo estés enmascarando. Encierra cada
ExecSQL entre
try..except, y visualiza el error si se produce.
Por último, ten en cuenta, que no todas las consultas que funcionan en Access, funcionan igual desde Delphi+ADO. Access como entorno hare determinadas cosas que no se admiten desde Jet4, que es elmotor realmente.