Saltar al contenido

Conexión que altera el orden de los campos


jmgcc

Recommended Posts

publicado

Buenos días a todos:

Me ha surgido un problema con una conexión OLEDB y la verdad no sé a que se debe.

Es una pequeña aplicación en Excel que utilizan varias personas.

Tengo una tabla que debo actualizar con un documento Excel, el formato del documento siempre es el mismo pero la ruta cambia. Por lo que el código utiliza un getopenfilename para obtener la ruta del documento. Funciona sin problemas.

El código crea la conexión la refresca y luego la elimina, también funciona sin problemas.

Sin embargo a veces, a pesar de que el orden de los campos es el mismo en el rango de origen y en la tabla de destino, el orden de los campos se altera en el destino.

Digamos que antes de la conexión, la tabla tiene como cabecera de los campos A, B, C, D y el origen de datos también, y después de importar los datos el orden cambia en la tabla de destino y se convierte en B, D , A, C o A, D, B, C.

Es un problema por que hay formulas basadas en la posición, tipo BUSCARV o COINCIDIR que dejan de funcionar correctamente.

Además no sucede siempre.

¿conocéis algún método para solucionarlo?

Gracias por adelantado

Un saludo a todos.

Adjunto parte del código, es bastante simple.

La tabla ya está vinculada previamente a "CONEXION"

Sub conectar

Dim NRUTA As String

NRUTA = Application.GetOpenFilename(, , "Doumento origen")


With ActiveWorkbook.Connections

.AddFromFile NRUTA
.Item(conexiones.Count + 1).Name = "CONEXION"
End With

ActiveWorkbook.Connections("CONEXION").OLEDBConnection.EnableRefresh = True

ActiveWorkbook.Connections("CONEXION").Refresh

Application.CalculateUntilAsyncQueriesDone


ActiveWorkbook.Connections("CONEXION").OLEDBConnection.EnableRefresh = False

ActiveWorkbook.Connections.Item(1).Delete

End sub
[/CODE]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.