** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Campos truncados a 255 caracteres
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Campos truncados a 255 caracteres

 Responder Responder
Autor
Mensaje
lunasoft Ver desplegable
Habitual
Habitual
Avatar

Unido: 04/Noviembre/2014
Localización: Graz
Estado: Sin conexión
Puntos: 100
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lunasoft Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Campos truncados a 255 caracteres
    Enviado: 10/Junio/2022 a las 19:28
Hola a todos.

Me encuentro con el siguiente problema:

Necesito importar los datos de un excel a Access.

Puedo hacerlo de 2 modos:

Modo 1

DoCmd.ransferSpreadSheet(0,10,"X_ExcelOrigen","C:\Trabajo\Origen.xlsx",True,"Origen$")

Modo 2

SELECT * INTO X_ExcelOrigen FROM [Excel 12.0;HDR=YES; Database=C:\Trabajo\Origen.xlsx].[Origen$]


De cualquiera de los 2 modos obtengo 2 campos con texto truncado a 255 caracteres.

He averiguado que como los 8 primeros registros tienen menos de 255 caracteres, crea el campo como texto corto.

Así que pensé que podía:
1. crear la tabla
2. modificar el tipo de datos
3. hacer un insert into

la cosa queda más o menos así:

- Creamos la tabla con un select into
SELECT TOP 1 * INTO X_ExcelOrigen FROM [Excel 12.0;HDR=YES; Database=C:\Trabajo\Origen.xlsx].[Origen$]

- limpiamos la tabla para no tener duplicados y porque no me deja modificar el campo (demasiados registros)
DELETE * FROM X_ExcelOrigen

- ejecutamos un DDL para modificar el tipo de campo
ALTER TABLE [X_ExcelOrigen] ALTER COLUMN [Descripción HTML] LONGTEXT

- llenamos la tabla
INSERT INTO X_ExcelOrigen SELECT * FROM [Excel 12.0 Macro;HDR=Yes; Database=C:\Trabajo\Origen.xlsx].[Origen$]

-------
RESULTADO:
Sigo obteniendo los datos truncados al llegar a los 255 caracteres.

¿Se os ocurre algún modo de solucionarlo?


Muchas gracias por vuestro inestimable tiempo y dedicación.

Lunasoft
Juanjo Luna (Lunasoft)
Microsoft MVP 2023

----------------

https://www.luna-soft.es/

https://www.youtube.com/ACCESSoTOTAL

https://github.com/ACCESSoTOTAL
Arriba
mounir Ver desplegable
Colaborador
Colaborador


Unido: 09/Febrero/2009
Localización: Asturias-España
Estado: Sin conexión
Puntos: 6479
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita mounir Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Junio/2022 a las 20:14
Hola!

Espero que te sirva este enlace.
Un Saludo.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14025
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Junio/2022 a las 20:31
Aparte de lo que te dice Mounir, prueba esta secuencia:

- creas la tabla importando datos
- borras registros
- cambias el campo a memo
- le creas 'a capón' un registro que tenga más de 255 caracteres en el campo en cuestión
- importas los datos Excel
- borras el registro 'señuelo' (a lo mejor necesitas mas de uno)


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
lunasoft Ver desplegable
Habitual
Habitual
Avatar

Unido: 04/Noviembre/2014
Localización: Graz
Estado: Sin conexión
Puntos: 100
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lunasoft Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Junio/2022 a las 20:35
Muchísimas gracias. Voy a probar.

De momento el truncado desaparece si ordeno los registros por la longitud de los campos.


Juanjo Luna (Lunasoft)
Microsoft MVP 2023

----------------

https://www.luna-soft.es/

https://www.youtube.com/ACCESSoTOTAL

https://github.com/ACCESSoTOTAL
Arriba
lunasoft Ver desplegable
Habitual
Habitual
Avatar

Unido: 04/Noviembre/2014
Localización: Graz
Estado: Sin conexión
Puntos: 100
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lunasoft Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Junio/2022 a las 21:01
Pues ahora el problema está en que al realizar la consulta INSERT INTO devuelve los valores truncados.
Es decir: si no obtengo primero los registros con cadenas largas, no consigo nada a pesar de tener cadenas fantasma, ....
Juanjo Luna (Lunasoft)
Microsoft MVP 2023

----------------

https://www.luna-soft.es/

https://www.youtube.com/ACCESSoTOTAL

https://github.com/ACCESSoTOTAL
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14025
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 10/Junio/2022 a las 21:12
O sea, lo que mandan son los primeros registros del Excel (me parece haber leído que son 8).

Pues a importar con los 'largos' por delante o a buscar las especificaciones de importación y creártelas antes de importar.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 1512
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pitxiku Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 11/Junio/2022 a las 18:50
Arriba
lupecinda Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Abril/2005
Localización: España
Estado: Sin conexión
Puntos: 149
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lupecinda Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 14/Junio/2022 a las 20:15
Hola.
En alguna ocasión entre distintas bases de datos he utilizado dbeaver para pasar datos entre ellas.
Saludos

https://dbeaver.io/

Lupita
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3861
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lbauluz Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 16/Junio/2022 a las 08:45
Hola

Dices:
"He averiguado que como los 8 primeros registros tienen menos de 255 caracteres, crea el campo como texto corto."

¿Y si creas en el excel  un primer registro falso metiendo más de 255 caracteres en cada campo y luego lo borras?

De acuerdo, no es nada elegante, pero si el problema es el que indicas, esto debería funcionar.

Un saludo.
El Búho es un pajarraco
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable