FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ir al último registro de una tabla
Hola a todos:
Supongo que a mas de uno esta pregunta le parecerá de chiste, pero a mi me lleva por la calle de la amargura. Trabajo con Paradox, D5 y WXP. Lo que quiero es ir y posicionarme directamente en el último registro de una tabla para mirar ahí una serie de índices. Para ello estoy tratando de usar el procedimiento Last. Hago TablaVisitas.Last; Pero cuando voy a mirar sigo estando en el primer registro de la tabla. Ya se que podría ir recorriendo uno a uno todos los registros y pararme en el último, pero todo parece indicar que estoy haciendo algo mal con el procedimiento Last. ¿Alguien me podría decir que estoy haciendo mal?. Código:
Procedure ActualizarTablaVisitas; var aux : integer; Begin // Ir al último Lugar de la tabla with modulodedatos do Begin Tablavisitas.last; aux := tablavisitasindice_visitas.value; //para comprobar que estoy en el último // aquí hay mas código End; End;
__________________
- ¿Y cuando dejaré de aprender maestro?. - El día que te mueras pequeño saltamontes. |
#2
|
||||
|
||||
Tendría que funcionarte, por qué no pones una rejilla conectada a la tabla y un botón con ModuloDeDatos.TablaVistas.Last;
Y así ves si efectivamente vas al final y cuando ocurre el fallo que comentas, puede ocurrir que el contenido del último registro sea igual que el del primero y te esté confundiendo? Un Saludol. |
#3
|
|||
|
|||
Bufff, ya se cual es el problema. El problema es que TablaVisitas es una tabla de detalle de otra llamada TablaClientes... y por lo visto no se mueve de los registros asociados al cliente. La verdad es que no tengo muy claro como solucionarlo... agradeceré cualquier ayuda y si se me ocurre algo lo postearé aquí.
Únicamente quiero ir al último registro para mirar el Indice_visita que tiene (un índice que quiero incrementar manualmente cada vez que hago una visita) y después hacer un append con otro registro e Indice_visita := Indice_visita + 1. Muchas gracias
__________________
- ¿Y cuando dejaré de aprender maestro?. - El día que te mueras pequeño saltamontes. |
#4
|
||||
|
||||
Muy sencillo, desengancha temporalmente la relación maestro detalle y ya lo tienes.
Se hace guardando el valor en una variable, poniendola nul y luego recuperándola cuando sea preciso. solución más facil utilizar un segundo Ttable sin relación maestro detalle. Un Saludo. |
#5
|
|||
|
|||
Perdona Marcos pero no se muy bien como hacerlo:
He intentado esto pero no me lo permite: Código:
var aux : integer; nueva : TTable; Begin // Ir al último Lugar de la tabla with modulodedatos do Begin nueva.create(application); nueva.mastersource := tablavisitas.MasterSource; Tablavisitas.MasterSource := null; Tablavisitas.last; aux := tablavisitasindice_visitas.value; //para comprobar que estoy en el último Tablavisitas.mastersource := DatasourceClientes; End; End; Gracias por tomarte la molestia de responderme.
__________________
- ¿Y cuando dejaré de aprender maestro?. - El día que te mueras pequeño saltamontes. |
#6
|
||||
|
||||
Mírate este ejemplo, es fácil de aplicar:
Código:
var miMaster:TdataSource; begin miMaster:=MiTabla.MasterSource; MiTabla.MasterSource:=nil; ....Acciones a realizar MiTable.MasterSource:=MiMaster; end; |
#7
|
|||
|
|||
Gracias Marcos:
Ahora está solucionado, funcionó perfectamente.
__________________
- ¿Y cuando dejaré de aprender maestro?. - El día que te mueras pequeño saltamontes. |
|
|
|