Todoexpertos.com
http://www.todoexpertos.com
La respuesta está en Internet
Información de la pregunta
Título: relacionar dos tablas maestras
Experto: victoramf
Valoración: 5
Fecha: 21/05/2008


relacionar dos tablas maestras
Hola experto, estoy realizando un programa para Libro Caja - Banco y tengo dos tablas principales ingresos y egresos la idea es relacionar estas dos tablas principales para poder emitir un reporte mostrando infoemacion en la misma hoja tanto de ingresos y egresos. La tabla Ingresos tienes estos campos: numauto (autoinc), n_corr c(5),f_oper d(8),m_pago c(3), id_desc n(3),id_prov c(11), numero c(14), id_den c(8), deudor n(12,2), acreedor n(12,2), mes c(2),año c(4), nommes c(9) los indices son numauto (principal), id_desc, id_prov, id_den (regulares), las tres tablas relacionadas son desc_oper_ingresos que tiene estos campos id_desc n(3), operacion c(40) y su indice es id_desc, prov_ingresos que tienen estos campos id_prov c(11) , r_social c(40) y su indice es id_prov, denom_ingresos que tiene estos campos id_den c(8), descripcion c(40) y indice es id_den. La tabla Egresos tienes estos campos: numauto (autoinc), n_corr1 c(5),f_oper1 d(8),m_pago1 c(3), cod_desc n(3),cod_prov c(11), numero1 c(14), cod_den c(8), deudor1 n(12,2), acreedor1 n(12,2), mes c(2),año c(4), nommes c(9) los indices son numauto (principal), cod_desc, cod_prov, cod_den (regulares), las tres tablas relacionadas son desc_oper_egresos que tiene estos campos cod_desc n(3), operacion1 c(40) y su indice es cod_desc, prov_egresos que tienen estos campos cod_prov c(11) , r_social1 c(40) y su indice es cod_prov, denom_egresos que tiene estos campos cod_den c(8), descripcion1 c(40) y indice es cod_den. He hecho dos formularios uno para ingresos y otro para egresos y se guardan en tablas diferenetes ya que a veces solamente puede haber ingresos y no egresos, si tienes alguna sugerencia te lo agradeceré.

relacionar dos tablas maestras
¿Las tablas comparten algún campo en común?

relacionar dos tablas maestras
Hola experto te explico: la tabla ingresos tiene los campos id_desc, id_prov, id_den estos son los campos comunes para relacionarse con las tablas desc_oper_ingresos que tiene el campo id_desc, prov_ingresos que tiene el campo id_prov, denom_ingresos que tiene el campo id_den. La tabla egresos tiene los campos cod_desc, cod_prov, cod_den estos son los campos comunes para relacionarse con las tablas desc_oper_egresos que tiene el campo cod_desc, prov_egresos que tiene el campo cod_prov, denom_ingresos que tiene el campo cod_den.

relacionar dos tablas maestras
Ok. Las tablas de ingreso y egresos ¿Comparten algún campo en común?

relacionar dos tablas maestras
Las tablas de ingresos y egresos no comparten algun campo en comun, ya que cada una  alamacena informacion independientemente. Cada una se relaciona con tres tablas diferentes. Justamente a eso quiero llegar relacionar las dos tablas maestras para poder generar un reporte final juntando la tabla ingresos relacionadas con sus tres tablas y egresos relacionada con sus tres tablas. Ojala y me deje entender.

relacionar dos tablas maestras
Agrega un campo a cada tabla que permita relacionarlas, te sugiero que mediante la cuenta de afectación se cree la llave

relacionar dos tablas maestras
Agrego un campo a cada tabla, y esos campos agregados que informacion guardarian, a que cuenta de afectacion te refieres.   

relacionar dos tablas maestras
¿Como deseas que se relaciónen? no [u]porque[/u], [u]como[/u]. Los egeresos e ingresos deben de afectar a una cuenta contable ¿Me equivoco?

relacionar dos tablas maestras
Te explico sucede que los ingresos y egresos lo ingresan manualmente (a puño y letra) en un Libro y ese libro se llama Libro Caja Bco, me piden mecanizarlo y lo que ingresan manualmente ahora lo tienen hacer a travez del programa que estoy haciendo, es como si seria un mantenimiento tanto para egresos como para ingresos es por eso que tengo dos formularios, lo que se ingresa en ingresos es numero correlativo, fecha de operacion medio de pago, descripcion de la operacion, apellidos y nombres, codigo, denominacion, deudor y acreedor los mismos campos se ingresan para egresos, me han dado un reporte de muestra que ellos han hecho en excel y en ese reporte estan los  ingresos  y egresos en la misma hoja, y eso lo quiero aplicar en mi programa relacionar las dos tablas maestras para poder emitir reportes tanto en vista preliminar como a la impresora mostrando o imprimiendo todo junto (ingresos y egresos), no puedo hacer los reportes por separado de ingresos y de egresos. Para vista preliminar lo tengo que hacer desde el reporteador de windows y para imprimir lo tengo que hacer desde un prg.

relacionar dos tablas maestras
Eso responde el porque. Pregunta como fue que relacionaron las tablas, debe de ser por medio de una clave combinada, una vez que obtengas ese dato puedes crear la llave que puede servir para relacionarlas. Si no existe una llave, ya sea formada por un campo o por varias, no puedes establecer la relación.

relacionar dos tablas maestras
Yo estoy haciendo un programa nuevo independiente al sistema que ya existe en mi empresa, el programa nuevo es solo para mecanizar el Libro Caja - banco.

relacionar dos tablas maestras
No cuestiono [i]que[/i] ni [i]para que[/i], solo inquiero el [i]como[/i] ¿Como se crea esa relación actualmente?, respondiendo esa pregunta podemos crear una forma automática de crearla.

relacionar dos tablas maestras
Yo estoy haciendo un programa nuevo independiente al sistema que ya existe en mi empresa, el programa nuevo es solo para mecanizar el Libro Caja - banco.

relacionar dos tablas maestras
Eso es lo que quiero hacer crear la relacion entre las dos tablas primarias, suponiendo que en ingresos ingresas 10 items y en egresos solo 5 items, en el reporte tengo que mostrar los 15 ingresos y los 5 egresos en la misma hoja. 

relacionar dos tablas maestras
Mencionaste que te mostraron una hoja de Excel con la relación que deseas, para crear esa relación en VFP es necesario saber como se hizo en Excel. ¿O solo deseas mostrar los 10 ingresos y los 5 egeresos, uno después de otro y no relacionados entre si?

relacionar dos tablas maestras
A ver en la hoja de calculo tengo lo siguiente: [b]                   Ingresos                                                                    Egresos[/b] numero fecha     medio descripcion ....                numero     fecha    medio   descripcion ....  00141  05/05/08  0041  cobranza                        00540   12/05/08  Pago       AFP 00141  15/05/08  0041  cobranza                        00541    17/05/08 Pago       sunass .......                                                                       ........... ........                                                                      ........... Asi seria el reporte en Vfox , tanto en vista preliminar y en impresora.  Que me muestre los ingresos y egresos. Y como te dije antes la tabla ingresos se relaciona con tres tablas y la tabla egresos tambien se relaciona con tres tablas.  [b]tabla Ingresos[/b]                                      [b]tabla denom_ingresos[/b] numauto autoinc                                    id_den c(8) n_corr c 5                                               descripcion c(40) f_oper d 8                                               [b]indice[/b] m_pago c 3                                             [i]id_den c(8) [/i]id_desc n 3 id_prov c 11                                           [b] tabla desc_oper_ingresos[/b] numero c 14                                            id_desc n(3)  id_den c 8                                               operacion c(40)  deudor n 12,2                                         [b]indice[/b]                                        acreedor n 12,2                                      [i]id_desc c(8)[/i] mes c 2 año c 4 nommes c (9)                                          [b]tabla prov_ingresos[/b] [b]indices                                                    [/b]id_prov c(11) numauto autoinc                                     r_social c(40) id_desc n 3                                              [b]indice [/b]id_prov c 11                                            [i] id_prov c(11)[/i] id_den c 8 ----------------------------------------------------------------------------------- [b]tabla Egresos[/b]                                       [b] tabla denom_egresos[/b] numauto autoinc                                    cod_den c(8) n_corr c(5)                                              descripcion1 c(40) f_oper d (8)                                             [b]indice [/b]m_pago c(3)                                            [i]cod_den c(8)[/i] cod_desc n(3) cod_prov c(11)                                        [b]tabla desc_oper_egresos[/b] numero c(14)                                          cod_desc n(3) cod_den c(8)                                            operacion1 c(40) deudor n(12,2)                                        i[b]ndice[/b] acreedor n(12,2)                                     co[i]d_desc c(8[/i]) mes c(2) año c(4) nommes c (9)                                       [b]tabla prov_egresos[/b] [b]indices[/b]                                                 cod_prov c(11) numauto autoinc                                  r_social1 c(40) cod_desc n(3)                                       [b]indice[/b] cod_prov c(11)                                      [i]cod_prov c(11)[/i] cod_den c(8) Ahi te muestro las tablas ingresos y egresos con las tablas que se relacionan la idea es sacar el reporte relacionando las tablas ingresos y egresos.

relacionar dos tablas maestras
Sencillo, solo crea una tabla temporal con los campos de ambas tablas que deseas y genera el informe, no se necesita ninguna relación entre ellas.

relacionar dos tablas maestras
La verdad no he trabajado usando tablas temporales, sabes de algun ejem?, en todo caso en que parte puedo crear la tabla temporal ya que esa tabla(temporal) lo tuviera que usar en el reporteador de windows para el reporte - vista preliminar lo mimso para crear el reporte a la impresora,

relacionar dos tablas maestras
La tabla temporal se crea como lo harías con un cursor, o puedes crearla mediante el comando [i]Create Table[/i], una vez creada puedes usarla y manipularla de la manera que desees.

relacionar dos tablas maestras
Disculpa pero como crearia la tabla temporal tomando en cuenta las tablas que te envie.  Por ejm. para  la parte de ingresos tengo que mostrar ncorr, fecha, razon social ......... deudor acreedor  y para la parte de egresos tambien ncorr1, razon social1, .... deudor acreedor

relacionar dos tablas maestras
Puedes cambiar los nombres agregando la letra "i" a los campos que provienen de la tabla de ingresos y "e" a los que provienen de la tabla de egeresos.

relacionar dos tablas maestras
A ver estoy podria ser asi pero en que patrte del programa coloco estas lineas y como añado registros a esta tabla final. (create table final incorr c(5),f_oper id(8),im_pago c(3), aqui adeberia venir el campo operacion, pero este campo esta en la tabla desc_oper_ingresos y se relaciona por un campo comun id_desc, luego seguiría inumero c(14),ideudor n(12,2), iacreedor n(12,2), encorr, ef_oper d(8), em_pago c(3), aqui deberia venir el campo operacion1, pero este campo esta en la tabla desc_oper_egresos y se relaciona por un campo comun cod_desc, luego seguiría enumero c(14),edeudor n(12,2),eacreedor n(12,2)) 

relacionar dos tablas maestras
Puedes crear la tabla antes de generar el reporte, por ejemplo.

relacionar dos tablas maestras
He creado la tabla, pero como hago para jalar los datos de la tabla ingresos y la tabla egresos. Estuve haciendo esto si hay alguna sugerencia o derrepente estoy fallando en algo. set defa to d:\libros\datos cretae table final (In_corr c(5), Iid_prov c(11),Im_pago c(3), En_corr1 c(5), Ecod_prov c(11), Em_pago c(3) appe from ingresos   ** Aca se añaden los registros de la tabla ingresos los campos En_corr1, Ecod_prov,Em_pago estan en blanco por que faltaria agregar los registros de la tabla egresos. Como haria para agregar los registros de la tabla egresos.

relacionar dos tablas maestras
Select ingresos Go Top Do While !Eof()      Select temporal      Append Blank      Replace temporal.campo1 With ingresos.campo1, temporal.campo2 With ingresos.campo2      Select ingresos      Skip EndDo Select temporal Go Top Select Egresos Go Top Do While !Eof()      Select Temporal      Skip      If Eof()           Append Blank      Else           Skip -1      EndIf Replace Temporal.campo10 With egresos.campo1, Temporal.campo11 With egresos.campo2      Select egresos      Skip EndDo

relacionar dos tablas maestras
He probado en un formulario y he creado una tabla llamada final con los campos de ambas tablas (ingresos y egresos) pero solo me graba los registros de la tabla ingresos y los campos que corresponden a la tablalos deja en blanco. [b]En el load del form hay este codigo[/b]: USE lbcjbco SHARED AGAIN IN 0         && ingresos USE lbcjbco1 SHARED AGAIN IN 0       && egresos USE final SHARED AGAIN IN 0              && Tabla con campos de ingresos y egresos [b]En el init del form puse el codigo:[/b] IF USED("lbcjbco") Select lbcjbco                        &&Ingresos ENDIF Go Top Do While !Eof() Select final Append Blank Replace final.numauto With lbcjbco.numauto, final.n_corr With lbcjbco.n_corr, final.f_oper With lbcjbco.f_oper,; final.m_pago With lbcjbco.m_pago,final.id_desc With lbcjbco.id_desc,final.id_prov With lbcjbco.id_prov,; final.numero With lbcjbco.numero,final.id_den With lbcjbco.id_den,final.deudor With lbcjbco.deudor,; final.acreedor With lbcjbco.acreedor Select lbcjbco Skip EndDo Select final Go Top IF USED("lbcjbco1") Select lbcjbco1                                 &&Egresos ENDIF Go Top Do While !Eof() Select final Skip If Eof() Append Blank Else Skip -1 EndIf Replace final.n_corr1 With lbcjbco1.n_corr1, final.f_oper1 With lbcjbco1.f_oper1,; final.m_pago1 With lbcjbco1.m_pago1,final.cod_desc With lbcjbco1.cod_desc,final.cod_prov With lbcjbco1.cod_prov,; final.numero1 With lbcjbco1.numero1,final.cod_den With lbcjbco1.cod_den,final.deudor1 With lbcjbco1.deudor,; final.acreedor1 With lbcjbco1.acreedor1 Select lbcjbco1 Skip EndDo

relacionar dos tablas maestras
¿Podrías identar el código? leer de esa manera es muy complicado. Ejecuta el código paso a paso y verifica que esté ejecutando la parte de ingreso de los datos de la segunda tabla.

relacionar dos tablas maestras
Logró copiar los 7 registros de la tabla ingresos pero en la tabla egresos tengo 2 registros y solo copia el ultimo de ellos.

relacionar dos tablas maestras
En la parte: [i]IF USED("lbcjbco1")      Select lbcjbco1 &&Egresos ENDIF [/i] ¿Que sucede si la tabla [i]lbcjbco1[/i] NO está en uso?

relacionar dos tablas maestras
Si no está en uso la tabla lo tengo que abrir ya modifique el codigo pero igual solo me jala los 7 registros de la tabla ingresos y solo el ultimo registro de la tabla egresos. Tambien probé sleccionando la tabla (select lbcjbco1) sin el used y sigue lo mismo a que se deberá. if used("lbcjbco1")       select lbcjbco1 else       use lbcjbco1shared again in 0 endif

relacionar dos tablas maestras
Cuando entra en la segunda condicional ¿Donde se encuantra ubicado el apuntador en el archivo?

relacionar dos tablas maestras
Cuando graba apunta al ultimo registro de la tabla lbcjbco1 (egresos) en la barra de estado dice [b]lbcjbco1: record Nº 3[/b]

relacionar dos tablas maestras
¿Porque? Te recuerdo que la aplicación la tienes tu, si en algún momento te parece que mis preguntas son muy obvias es porque yo no tengo la misma visión que tu

relacionar dos tablas maestras
Bueno, en realidad no pienso que tus preguntas son obvias solo trato de ser lo mas explicito en mis respuestas para que me entiendas mejor y poder llegar a la solucion. Yo estoy agradecido por tu tiempo y por que estoy aprendiendo mas de este lenguaje. Ahora estoy revisando el código que me proporcionaste y quiero encontrar la solucion de por que solo me añade el ultimo registro de la tabla egresos, para es importante esto por que me va a permitir generar mis reportes, espero seguir contando con tu apoyo.

relacionar dos tablas maestras
Cuentas con mi apoyo.

relacionar dos tablas maestras
Gracias, entonces a que se deberá que me añade a la tabla temporal todos los registros de la tabla ingresos y solo el ultimo de la tabla egresos.

relacionar dos tablas maestras
Unas cuantas [u]posibles[/u] causas: - El apuntatodor en la tabla egresos se mueve - Existe una condición que impide que la tabla egresos pueda ser recorrida - El código no está moviendo el apuntador de manera adecuada - En la condicional está modificando el apuntador - Existe un desencadenate o condición para insertar. - etc. Ejecuta el código línea a línea y encuentra la causa, repito, yo no tengo la aplicación y el código, tal cual, no presenta un motivo por el cual esté teniendo ese comportamiento.

relacionar dos tablas maestras
Gracias, entonces a que se deberá que me añade a la tabla temporal todos los registros de la tabla ingresos y solo el ultimo de la tabla egresos.

relacionar dos tablas maestras
Porque posiblemente esas restricciones no aplican para la tabla ingresos

relacionar dos tablas maestras
Solo si se ejecuta el código y se ven las acciones y resultados es posible determinar cual o cuales condiciones aplican para cada una de las tablas.

relacionar dos tablas maestras
Gracias, entonces a que se deberá que me añade a la tabla temporal todos los registros de la tabla ingresos y solo el ultimo de la tabla egresos.

relacionar dos tablas maestras
A que las condiciones y/o restriciones en la tabla ingresos no son las mismas que las que aplican a la tabla egresos.

relacionar dos tablas maestras
Entonces no hay forma de corregirlo solo he logrado que se añadan uno de los registros de la tabla egresos pero no todos.

relacionar dos tablas maestras
Si hay forma de corregirlo, solo es necesario localizar porque solo puedes agregar un registro de la tabla y eliminar/modificar esa condición. Se me ocurre que puedes volver a generar los índices, o ver si se encuentran relacionadas las tablas de alguna manera, o que cuando selecciones el área de trabajo asegurarte de que es el área y el registro esperado, o... A riesgo de parecer necio, solo si se ejecuta y constata cada línea de código puedes verificar que el código se está ejecutando de la manera deseada, no hay otra forma.

relacionar dos tablas maestras
Bueno, las tablas lo abro de esta manera en el evento load : SET DEFAULT TO d:\libros\datos USE lbcjbco shared AGAIN IN 0 order n_corr USE lbcjbco1 shared AGAIN IN 0 order n_corr1 USE final shared AGAIN IN 0 Y en un boton de comando tengo el codigo para copiar las tablas ingresos y egresos,  a la tabla final. Las teblas lo selecciono usando select nombre de tabla, la primera parte del código lo realiza bien ya que copia los registros de la tabla ingresos (lbcjbco): Select lbcjbco Go Top Do While !Eof()    Select final    Append Blank    Replace final.n_corr With lbcjbco.n_corr, final.f_oper With lbcjbco.f_oper,;    .......    Select lbcjbco    Skip EndDo Es en esta segunda parte del codigo donde solo copia el ultimo registro de la tabla egresos (lbcjbco1) Select final Go Top Select lbcjbco1 Go Top Do While !Eof()   Select final   SKIP   IF EOF()       append Blank    Else       Skip -1   EndIf   Replace final.n_corr1 With lbcjbco1.n_corr1, final.f_oper1 With lbcjbco1.f_oper1,;    ........   Select lbcjbco1   Skip EndDo  

relacionar dos tablas maestras
Bueno, las tablas lo abro de esta manera en el evento load : SET DEFAULT TO d:\libros\datos USE lbcjbco shared AGAIN IN 0 order n_corr USE lbcjbco1 shared AGAIN IN 0 order n_corr1 USE final shared AGAIN IN 0 Y en un boton de comando tengo el codigo para copiar las tablas ingresos y egresos, a la tabla final. Las teblas lo selecciono usando select nombre de tabla, la primera parte del código lo realiza bien ya que copia los registros de la tabla ingresos (lbcjbco): Select lbcjbco Go Top Do While !Eof() Select final Append Blank Replace final.n_corr With lbcjbco.n_corr, final.f_oper With lbcjbco.f_oper,; ....... Select lbcjbco Skip EndDo Es en esta segunda parte del codigo donde solo copia el ultimo registro de la tabla egresos (lbcjbco1) Select final Go Top Select lbcjbco1 Go Top Do While !Eof() Select final SKIP IF EOF() append Blank Else Skip -1 EndIf Replace final.n_corr1 With lbcjbco1.n_corr1, final.f_oper1 With lbcjbco1.f_oper1,; ........ Select lbcjbco1 Skip EndDo

relacionar dos tablas maestras
¿Y donde se encuentra el apuntador y cual es la tabla activa cuando entra la condicionante que copia desde la segunda tabla?

relacionar dos tablas maestras
Condicion que copia desde la segunda tabla: Select final                   && Tabla temporal - tabla activa Go Top                          Select lbcjbco1            &&Tabla Egresos   Go Top                        Do While !Eof() Select final                  && tabla temporal SKIP IF EOF()       append Blank Else      Skip -1 EndIf Replace final.n_corr1 With lbcjbco1.n_corr1, final.f_oper1 With lbcjbco1.f_oper1,; ........ Select lbcjbco1        && Tabla Egresos Skip EndDo

relacionar dos tablas maestras
El código aparentemente no tiene ningún problema, ¿Donde se encuentra el apuntador y cual es la tabla activa cuando entra a esta condicionante? Voy a ser repetitivo, pero es que no hay ninguna forma en que puedas encontrar el error si no ejecutas paso a paso el código verificando todas las condiciones que intervienen.  No importa cuantas veces pongas el código, solo es necesario que respondas el lugar donde se encuentra el apuntador antes, mientras y después de entrar a esa condicionante, sin ese dato poco podemos hacer.

relacionar dos tablas maestras
Antes de entrar a la segunda condicion la tabla activa es la de ingresos (lbcjbco), y el puntero debes apuntar al ultimo registro de esta tabla por que hay un skip despues del select lbcjbco.

relacionar dos tablas maestras
Si la tabla ingresos es la activa y el apuntador se encuentra en el último registro es la razón de que solo copie un registro. Sin embargo en el código que me muestras se hace activa la tabla de Egresos ([b]Select lbcjbco1[/b]) y se mueve el apuntador al primer registro ([b]Go Top[/b]), o el código que describes no es el que estás utilizando o existe un conflicto con los apuntadores y se están "saltando" de tabla (y registro). ¿Este es el único caso en que los apuntadores presentan este comportamiento errático?

relacionar dos tablas maestras
Disculpa, tienes razon hubo una equivocacion, cuando entra a la segunda condicion la tabla activa es egresos (lbcjbco1) y el puntero va hacia el primer registro.  Sigo sin entender por que solo añade el ultimo registro.

relacionar dos tablas maestras
Si el puntero está en el primer registro de la tabla, y dado que no existe ningún movimiento en esa tabla, los valores que copia, o debería copiar, son los del primer registro.  Dado que no es así, y puesto que aseguras que el comportamiento del apuntador no es errático, solo me surgen dos posibilidades: 1.- El apuntador no está en el primer registro cuando entra. 2.- El apuntador se mueve en algún momento dentro del ciclo. Tu aseguras que si está en el primer registro, por lo que la primera posibilidad no es factible, por lo tanto debe ser la segunda. Cuando ejecutas el código paso a paso ¿En que momento se mueve el apuntador de la tabla?

relacionar dos tablas maestras
A todo esto ¿Sabes como ejecutar el código paso a paso?, porque insisto, mientras no lo hagas yo no puedo encontrar porque esta comportandose de esta forma, solo puedo imaginarmelo.

relacionar dos tablas maestras
He colocado set step en la primera linea de código, en todo caso si hay otra forma de ejecutar el codigo paso a paso?.

relacionar dos tablas maestras
Si, hay otra forma y, por cierto, es la que se recomienda. Utiliza el depurador y en cada línea verifica la situación de los apuntadores y tablas activas para encontrar cual es la discrepancia.

relacionar dos tablas maestras
Bueno he usado el depurador menu tools/debugger y antes de la segunda condicion he colocado set step on y a la hora que ejecuto el codigo entro al depurador y ejecuto el codigo paso a paso: Te indico como sigue el puntero. SET STEP ON Select final                  El puntero llega acá Go Top                        Continua acá  Select lbcjbco1            Continua acá Go Top                        Continua acá  Do While !Eof()           Continua acá Select final                  Continua acá SKIP                            Continua acá IF EOF()                       Continua acá     append Blank           [b]el puntero salta esta linea [/b]Else     Skip -1                       Y continua acá ENDIF                             Continua acá Replace .......                  Continua acá  select lbcjbco1               continua acá SKIP                               continua acá EndDo                            continua acá 

relacionar dos tablas maestras
El puntero debe moverse en la instrucción donde agregas un registro nuevo, es lógico, pero debe hacerlo sobe la tabla donde se están ingresando los registros, no sobre la de egresos. Si no se ha alcanzado el final del archivo no tiene caso que se añadan nuevos registros, por eso se "salta" esa instrucción. El puntero es el indicador del número de registro de una tabla, no tiene nada que ver en absoluto con un código o un programa, si actualmente se encuentra visible el registro 1 de  la tabla maestro, se dice que el apuntador está en el registro 1 de la tabla maestra, no importa si se visualiza en un formulario o en una consulta. Sigo insistiendo, ¿En que parte del código el apuntador, el que indica el número de registro de la tabla, altera su posición en la tabla activa? Déjame simplificar un poco el codigo para un mejor seguimiento: [i]m.nNueva = .F. Select final                                         && Tabla temporal - tabla activa Go Top Select lbcjbco1                                   &&Tabla Egresos Go Top Do While !Eof()      Select final                                    && tabla temporal      Skip      If Eof()           Append Blank           m.nNueva = .T.      Else          Skip -1      EndIf      Replace final.n_corr1 With lbcjbco1.n_corr1, final.f_oper1 With lbcjbco1.f_oper1,; ........      If !m.nNueva           Skip      Endif      Select lbcjbco1 && Tabla Egresos      Skip EndDo[/i]

relacionar dos tablas maestras
Estoy probando el código y hasta el momento está copiando los registros de ambas tablas hacia la tabla temporal (final).

Pregunta finalizada. Val