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

 
Vista:
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

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

Publicado por Jesús Manuel (375 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
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

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

Publicado por Neckkito (1157 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
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

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

Publicado por Jesús Manuel (375 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
sin imagen de perfil

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

Publicado por German Barrera (3 intervenciones) el 12/03/2021 18:04:14
Tengo el mismo problema y ya introduje el código de Neckkito en la función que me importa los datos de excel, pero al visualizar la tabla, el formulario derivado de esta y el informe, persiste el problema
¿pueden guiarme por favor?
Modifica el campo donde importa los datos tipo memo -ahora texto largo- o crea otro campo?
Importo los datos a una tabla que llamo "DescripcionesQx", el campo a donde importo los datos memo se llama DDQQ y la tabla de excel de donde los importo se llama "PQxR".

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Function CreaDescripcionesQx()
    Dim db As Database
    Set db = CurrentDb
    On Error Resume Next
    DoCmd.RunSQL "DELETE DescripcionesQx.* FROM DescripcionesQx;"  'Borro los datos anteriores
    DoCmd.RunSQL “INSERT INTO DescripcionesQx ( NoIngreso, NoFolio, IdMdCir, DDQQ ) SELECT PQxR.INGRESO, PQxR.FOLIO, PQxR.[COD_ESPEC#], PQxR.[DESCRIPCION QX] FROM PQxR WHERE (((PQxR.INGRESO) Is Not Null) AND ((PQxR.[COD_ESPEC#]) Is Not Null));”
 
    Dim elTexto As String
    Dim rst As DAO.Recordset
 
    Set rst = CurrentDb.OpenRecordset("DescripcionesQx", dbOpenDynaset)
 
    With rst
    .MoveFirst
    Do Until .EOF
    elTexto = Nz(.Fields("DQX").Value, "")
    elTexto = Replace(elTexto, Chr(10), vbCrLf)
    .Edit
    .Fields("DQx").Value = elTexto
    .Update
    .MoveNext
    Loop
    End With
    'rst.Close
    MsgBox "Hecho" 'Esto es para saber que el proceso ha acabado
 
 
End Function
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
sin imagen de perfil

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

Publicado por German (3 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