El caso es, si en un campo de texto normal de una tabla, se pueden grabar dieferentes tipo de datos y luego recuperarles tal cual. Pues sí se puede: JUAN M. AFAN DE RIBERA ====================== He hecho una prueba y he creado una tabla con un campo tipo texto. La he llamado "Alfanumerico" y al campo texto le he llamado "Texto". Después en un módulo estandar he puesto, a imagen del ejemplo que comentabas, lo siguiente: 'Los dos tipos definidos por el usuario Type Alfanum var1 As String * 24 var2 As Single var3 As Single var4 As Single var5 As Single End Type Type todoJunto cadena As String * 50 End Type 'Aquí una rutinita para añadir un registro 'a la tabla 'Alfanumerico' Sub grabarDatos() Dim rst As DAO.Recordset Dim variable1 As Alfanum Dim variable2 As todoJunto variable1.var1 = "Cadena texto 24 caracter" variable1.var2 = 150 / 8.5 '=17.647058 variable1.var3 = 150 / 7 '=21.428571 variable1.var4 = 150 / 6.5 '=23.076923 variable1.var5 = 150 / 5.5 '=27.272727 LSet variable2 = variable1 Set rst = CurrentDb.OpenRecordset("Alfanumerico") rst.AddNew rst!Texto = variable2.cadena rst.Update rst.Close End Sub 'Y aquí una rutina para extraer y ver los datos 'que hemos guardado anteriormente Sub recuperarDatos() Dim rst As DAO.Recordset Dim variable1 As Alfanum Dim variable2 As todoJunto Set rst = CurrentDb.OpenRecordset("Alfanumerico") variable2.cadena = rst!Texto rst.Close LSet variable1 = variable2 Debug.Print variable1.var1 Debug.Print variable1.var2 Debug.Print variable1.var3 Debug.Print variable1.var4 Debug.Print variable1.var5 End Sub ' y en la ventana inmediato me ha escrito lo siguiente: Cadena texto 24 caracter 17,64706 21,42857 23,07692 27,27273 si compruebas los resultados son exactos a los que queríamos conseguir, así que como ves tu primer sistema me funciona bien. O si no es eso, entonces ¿qué es?