27/06/2012, 15:49
|
| | Fecha de Ingreso: junio-2012
Mensajes: 1
Antigüedad: 12 años, 4 meses Puntos: 0 | |
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.... |