Access - Importar registros en Access desde Excel: campo con saltos de línea

   
Vista:

Importar registros en Access desde Excel: campo con saltos de línea

Publicado por Jesús Manuel (202 intervenciones) el 10/03/2015 12:53:58
Tengo instalado Office 2010 y estoy haciendo una BD para un amigo que tiene Office 2003

Quiero importando datos desde un documento Excel a una BD Access 2003.

Uno de los campos/columna del Excel, al que llamo NOTAS, contiene saltos de línea (con ALT+ENTER) en la mayor parte de los registros. Este campo al importarlo en la BD lo asigno a un campo MEMO.

Mi problema es que en el campo MEMO no me respeta los saltos de línea y aparecen los datos de las distintas líneas unos tras otros.

La importación la estoy haciendo con DoCmd.TransferSpreadsheet acImport , aunque también he hecho pruebas con el asistentes de importación de Excel (Datos externos/Excel), tanto anexando directamente a la tabla de destino como creando una tabla vinculada.


Alguien puede indicarme si es posible mantener los saltos de línea en la importación de los datos?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Neckkito

Importar registros en Access desde Excel: campo con saltos de línea

Publicado por Neckkito (1104 intervenciones) el 13/03/2015 19:58:09
Hola!

Prueba de hacer lo siguiente EN UNA COPIA DE TU BD (no sea que la pifiemos... )

1.- Haz la importación de los datos desde el Excel, independientemente de como te salga la información en el campo MEMO.

2.- Una vez tengas los datos en la tabla, que yo supondré que se llama TablaExcel, o bien te creas un módulo estándar y escribes allí un procedimiento o bien lo haces desde un botón de comando, o bien lo añades al final de tu código de importación del Excel. Lo que tú veas más conveniente

3.- El código que tienes que escribir es (adaptándolo a tus circunstancias, claro):

...
Sub...
Dim elTexto As String
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("TablaExcel", dbOpenDynaset)

With rst
.MoveFirst
Do Until .EOF
elTexto = nz(.Fields("NOTAS").Value,"")
elTexto = Replace(elTexto, Chr(10), vbCrLf)
.Edit
.Fields("Notas").Value = elTexto
.Update
.MoveNext
Loop
End With
MsgBox "Hecho" 'Esto es para saber que el proceso ha acabado
End Sub
...

Prueba a ver qué tal va el invento, a ver si hay suerte

Saludos,
firmaMail
http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Importar registros en Access desde Excel: campo con saltos de línea

Publicado por Jesús Manuel (202 intervenciones) el 16/03/2015 09:18:14
La copia de la BD siempre, aunque no ha hecho falta.

El código lo he insertado en el proceso de importación del documento Excel, una vez creada la tabla tmp_OU_ACT (a la que tu llamabas TablaExcel), ya que de esta forma el usuario obtiene lo que quiere y no necesita realizar ninguna acción extra.

Como esta tabla es temporal, después de agregar y actualizar los registros de otra tabla de la BD, la elimino. Por este motivo he tenido que añadir una línea a tú código para evitar un error (Error '3211' en tiempo de ejecución, la tabla esta siendo utilizada en otro proceso), simplemente rst.close después del End With

Por cierto, muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Importar registros en Access desde Excel: campo con saltos de línea

Publicado por German (2 intervenciones) el 07/07/2015 00:30:06
Hicel lo indicado, pero no me funcionó. De todos modos, muchas gracias por su respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar