Access. Consulta "Crear Tabla"; definir Tipo de Datos de la tabla creada para los campos con Fórmulas
Me encuentro optimizando una rutina con una base de 3 consultas muy complejas (en teoría podría ser 1 sola pero he tenido que dividirlo en 3 porque he sobrepasado los límites de Access en nº de campos y complejidad)
Mediante código VBA hago varias consultas filtradas a cada una de ellas mediante DAO dbopenrecordset para obtener los datos que voy necesitando; entiendo que lo que hace que mi programa dure más de la cuenta es que por cada consulta filtrada Access actualiza toda la información de las 3 consultas y de todas las que les afecten.
Para esto una idea que he usado en otras ocasiones es realizar una Consulta de Creación de Tabla de cada una de las 3 consultas anteriores ya que mi programa necesita utilizar la "foto" de cada consulta al inicio del mismo; de esta manera, al acceder a estas tablas no se inicia ningún proceso de actualización interna del Access al cargar el Recordset.
Hasta aquí bien y hasta ahora me funcionaba de lujo con otras rutinas más sencillas y para informes; el problema lo tengo cuando el dato que se vuelca a la tabla creada proviene de una fórmula hecha directamente en la consulta ya que Access interpreta el mejor "tipo de dato" que le va bien al campo; el tema está en que mediante vba consulto valores y los almacenos en variables definidas, y muchas veces me da incompatibilidad de tipo de datos.
Un ejemplo: tengo un campo calculado que me devuelve un Si/No (no hay null), pero Access lo define en la tabla creada como Texto. Una de estas fórmulas sería;
[USE: SiInm([Sect_mm2]<[Ranges_Smin] O [Sect_mm2]>[Ranges_Smax] O EsNulo([Sect_mm2]);Falso;SiInm([Sect_mm2]<[Ranges_S_Single_and_Higher] Y [Calc_Multicore]=Verdadero Y [Calc_NoPhases]=1;Verdadero;SiInm([Sect_mm2]>=[Ranges_S_Single_and_Higher] Y [Calc_Singlecore]=Verdadero;Verdadero;Falso)))]
Otro ejemplo: me pasa lo mismo muchas veces con campos que son números pero Access define como texto en la tabla creada:
FUNC_k0: SiInm([Ckt_Iadm_k_Defaults]=Falso;Nz([Ckt_Iadm_k0];1);Nz([LoadType_Default_Iadm_k0];1))
Además las longitudes de los textos los define de 255 caracteres, cuando me podría valer sólo 5 caracteres (menos espacio en memoria).
He intentado definir el formato del campo con la fórmula en "Hoja de Propiedades" de la consulta pero entiendo que es simplemente referido a la visualización del dato, no a su definición.
¿Alguién podría echarme un cable para definir estos campos de las nuevas tablas que provienen de campos calculados de la consulta?
De no ser posible definirlos antes de la creación de la tabla, ¿se podrían definir a posteriori con VBA?
Cualquier indicación al respecto sería de mucha ayuda