Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/06/2012, 15:49
camiza
 
Fecha de Ingreso: junio-2012
Mensajes: 1
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta SQL/DBF Actualizar registros entre tablas *.dbf en diferentes carpetas

Actualizar los registros de una tablaprincipal *.dbf desde otra tabla *.dbf localizada en una carpeta diferente.

'El siguiente codigo funciona cuando las dos tablas *.dbf se encuentran en la misma carpeta
Dim connection As New ADODB.Connection
Dim strConnection As String
Dim pathPrincipal As String
Dim pathUpdate As String 'External data base to update with TablePrincipal
Dim strSQL As String

pathPrincipal = "D:\DBFs"
strConnection = "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & PathPrincipal

connection.Open strConnection
If connection.State <> adStateOpen Then Exit Sub

'La instruccion SQL funciona a la perfeccion, se hace un servicio a una ruta y desde ahi se actualizan los datos de una tabla a otra.
strSQL="UPDATE TablePrincipal#DBF" & " A INNER JOIN " & "TableUpdate#DBF" & " B ON A.ID = B.ID SET A.X=B.X, A.Y=B.Y"

connection.Execute strSQL, n, adCmdText

PERO EL PROBLEMA ES CUANDO LAS TABLAS NO SE ENCUENTRAN EN LA MISMA RUTA, LA MANERA MAS LOGICA SERIA HACER UN {OPENROWSET} UTILIZANDO UNA CONEXION A LA RUTA EXTERNA DONDE SE ENCUENTRA LA TABLA *.DBF DE LA CUAL QUIERO EXTRAER LOS VALORES Y ACTUALIZARLOS A LA TABLA PRINCIPAL, PERO NO FUNCIONA NO SE CUAL SERIA EL PROBLEMA O SI HAY OTRA MANERA MAS SENCILLA DE HACERLO MEDIANTE INSTRUCCIONES SQL

strSQL = "UPDATE TablePrincipal#DBF A INNER JOIN" & _
" OPENROWSET('MSDASQL','Driver={Microsoft dBase Driver (*.dbf)}; DBQ=" & _
pathUpdate & "; SourceType = DBF ','SELECT * FROM TableUpdate#DBF') B" & _
" ON A.ID=B.ID SET A.X=B.X, A.Y=B.Y"

MUCHAS GRACIAS A TODOS....