FoxPro/Visual FoxPro - Actualizar campos de una tabla con relacion a otra tabla FOXPRO 7

 
Vista:
sin imagen de perfil

Actualizar campos de una tabla con relacion a otra tabla FOXPRO 7

Publicado por RAMON (18 intervenciones) el 15/04/2013 17:46:32
HOla!!!

Tengo dos Tablas con esos campos

TABLA1 CODIGO1 NOMBRE1 DIRECCION1 TELEFONO1

TABLA2 CODIGO2 NOMBRE2

Quiero hacer UPDATE, teniendo como referencia la TABLA2, y si no existe CODIGO agregar el registro de los campos CODIGO2 y NOMBRE2 en TABLA1

No le hagan caso a DIRECCION1 y TELEFONO1, esos datos son cargados manualmente después


He utilizado un código pero parece que solo funciona para FoX 9, y la versión que tengo es 7.



UPDATE tabla1 SET codigo1 = tabla2.codigo2 FROM tabla2 WHERE ;

tabla1.nombre1 = tabla2.nombre2


INSERT INTO tabla1 (codigo1, nombre1) ;

SELECT codigo2, nombre2 FROM tabla2 WHERE tabla2.codigo2 NOT IN

(SELECT codigo1 FROM tabla1)



Me da error de compilación.

Gracias!!!

Pido disculpas si en alguna expresión no he aclarado 100 porciento lo que deseo hacer, pero por el código ya comprenderán...

Ramón
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 Mauricio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Actualizar campos de una tabla con relacion a otra tabla FOXPRO 7

Publicado por Mauricio (1541 intervenciones) el 16/04/2013 02:20:35
Prueba con este programita:
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
*---Programa para actualizar  Tabla1 con los datos de  Tabla2
CLOSE TABLE ALL
Local No_Registro
USE tabla1 IN 0
USE tabla2 IN 0
SELE tabla1
INDEX ON codigo1 TAG codigo1
SET ORDER TO codigo1
GO TOP
*
SELE tabla2
INDEX ON codigo2 TAG codigo2
SET ORDER TO codigo2
*
SELE tabla1
SCAN
	no_registro = RECNO()
	SELE tabla2
	SEEK(codigo1)
	IF !FOUND
		INSERT INTO tabla1 (codigo2, nombre2) ;
		VALUES (codigo1, nombre1)
	ENDIF
	SELE tabla1
	GO TO no_registro
ENDSCAN
CLOSE TABLE ALL
* Por favor comenta si te funciono!!
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

Actualizar campos de una tabla con relacion a otra tabla FOXPRO 7

Publicado por RAMON (18 intervenciones) el 16/04/2013 03:27:21
Hola man... gracias por tu respuesta, al compilar me da error en esta linea

GO TO no_registro
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
Imágen de perfil de Mauricio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Actualizar campos de una tabla con relacion a otra tabla FOXPRO 7

Publicado por Mauricio (1541 intervenciones) el 16/04/2013 14:57:49
GOTO no_registro
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

Actualizar campos de una tabla con relacion a otra tabla FOXPRO 7

Publicado por RAMON (18 intervenciones) el 16/04/2013 18:09:09
GRACIAS AMIGO, PERO DE IGUAL MANERA NO ME FUNCIONA, DICE QUE TENGO QUE ABRIR EN MODO EXCLUSIVO, DESPUÉS ME SALE ERRORES QUE NO ENCUENTRA LOS CAMPOS, ES POR QUE NO PUDO ABRIR EL DBF POR CAUSA DE QUE TIENE QUE ABRIR EN MODO EXCLUSIVO

SALUDOS!!!

RAMON
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
Imágen de perfil de Mauricio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Actualizar campos de una tabla con relacion a otra tabla FOXPRO 7

Publicado por Mauricio (1541 intervenciones) el 16/04/2013 19:25:45
Ramon, no se que es lo que quieres hacer y que tienes hecho en un PRG, te hice un programita para que tratararas de solucionar el problema, porque si el programa te dice que tienes que abrir la tabla en forma exclusiva, no se para que la necesitas en forma exclusiva.
Si no encuentra los campos?
TABLA1 CODIGO1 NOMBRE1 DIRECCION1 TELEFONO1
TABLA2 CODIGO2 NOMBRE2
, esto es lo que has publicado, si se llaman diferente solo tu lo puedes saber a ciencia cierta.
No pudo abrir el dbf por causa de que tiene que abrir en forma exclusiva?
Que intentas hacer??????????????
Mejor escribe tu codigo completo aca para ver de que modo se te ayuda, pero ayudar no a hacer tu trabajo
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

Actualizar campos de una tabla con relacion a otra tabla FOXPRO 7

Publicado por RAMON (18 intervenciones) el 16/04/2013 21:06:23
bueno amigo gracias por el codigo muy amable.

lo que intento hacer está arriba especificado.. actualizar una tabla en base a otra es simple, el prg puede ser un form y un boton eso no importa con tal de actualizar la tabla1

te paso el código para que veas

CLOSE TABLE ALL
Local No_Registro
USE Clientes IN 0
USE Empresas IN 0
SELE Clientes
INDEX ON Codigo TAG Codigo
SET ORDER TO Codigo
GO TOP
*
SELE Empresas
INDEX ON Cod_empre TAG Cod_empre
SET ORDER TO Cod_empre
*
SELE Clientes
SCAN
no_registro = RECNO()
SELE Empresas
SEEK(Codigo)
IF !FOUND
INSERT INTO Clientes (Cod_empre, Name_empre) ;
VALUES (Codigo, Nombre)
ENDIF
SELE Clientes
GOTO nro_registro
ENDSCAN
CLOSE TABLE ALL
Thisform.txtRnc.value=Empresas.Nro_tribut


ENDIF



Tengo dos tablas en una carpeta

EMPRESAS.DBF
Cod_empre
Name_empre


CLIENTES.DBF
Cliente
Codigo

en ese exacto orden de columnas que te especifiqué, cargo un dato en EMPRESAS.DBF atraves de un sistema xxx q tengo, y quiero q esos datos actualice en CLIENTES.DBF, sabiendo que CLIENTES.DBF ya tiene datos dentro y si tiene igual el Codigo y Cliente no va a actualizar nada, caso el Codigo sea igual y el nombre del cliente sea diferente quiero q actualice el nombre del cliente, caso no tenga ninguno de los dos datos Codigo y Cliente, entonces crear esos registros con relacion a la tabla EMPRESAS.DBF

la actualización quiero que se haga manualmente con un boton en un prg aparte, o sea un form y un botón, asi de simples

Gracias por tu comentario, estoy empezando, de repente si se acabó tu paciencia mejor no respondas este mensaje.


Saludos
Ramón
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
Imágen de perfil de Mauricio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Actualizar campos de una tabla con relacion a otra tabla FOXPRO 7

Publicado por Mauricio (1541 intervenciones) el 16/04/2013 22:09:26
Gracias por tu comentario, estoy empezando, de repente si se acabó tu paciencia mejor no respondas este mensaje.
Muchas gracias Ramon!!!
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

Actualizar campos de una tabla con relacion a otra tabla FOXPRO 7

Publicado por RAMON (18 intervenciones) el 16/04/2013 22:16:22
De nada!!! cuando gustes...
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