Hola Oscarac.
"Active := True" es lo mismo que "Open", pero para crear el conjunto de datos en memoria, solamente necesitas llamar al método CreateDataSet. Éste lo crea vacío y abierto, listo para trabajar con él.
El error que mencionas posiblemente ocurre cuando intentas repetir la operación de definir los campos, estando aún el conjunto de datos abierto.
Saludos.
Al González.