Access - CONSULTAR ULTIMO REGISTRO

 
Vista:

CONSULTAR ULTIMO REGISTRO

Publicado por ROBERTO (145 intervenciones) el 19/12/2005 09:37:46
HOLA A TODOS. MI CONSULTA ES LA SIGUIENTE: TENGO UNA TABLA DE ARTÍCULOS Y OTRA DE ENTRADAS DE ARTÍCULOS , RELACIONADAS POR REFERENCIA. NECESITO UTILIZAR EN OTRO FORMULARIO UN CUADRO COMBINADO EN EL QUE YO BUSQUE CUALQUIER ARTICULO DE LA TABLA CON SU ÚLTIMO VALOR DE ENTRADA. EL PROBLEMA ES QUE UN MISMO ARTICULO PUEDE TENER VARIAS ENTRADAS EN FECHAS DIFERENTES CLARO. YO LO QUE NECESITO ES PODER MOSTRAR CUALQUIER ARTICULO DE LA TABLA PERO QUE SOLO ME MUESTRE EL ÚLTIMO VALOR DE ENTRADA. AHORA LO QUE ME HACE ES QUE SI UN ARTICULO TIENE 4 ENTRADAS POR EJEMPLO, AL DESPLEGAR EL CUADRO COMBINADO ME APARECE EL ARTICULO EN CUESTION TANTAS VECES COMO ENTRADAS TENGA Y CON DIFERENTES VALORES CLARO Y YO NECESITO QUE ME MUESTRE SOLO EL ÚLTIMO. ESPERO QUE ME PUEDA AYUDAR ALGUIEN. GRACIAS Y UN SALUDO.
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

RE:CONSULTAR ULTIMO REGISTRO

Publicado por Enrique (1299 intervenciones) el 19/12/2005 18:35:55
Hola Roberto:
Se entiende que en las Propiedades del Cuadro Combinado tienes puesta la Tabla Entradas de Articulos como Origen de la Fila y lo que tienes que hacer es quitar de ahí la Tabla del origen de la fila, pulsar en el botón de los tres puntos que hay a la derecha para crear una consulta interna de agrupamiento, en esa consulta muestras la tabla Entradas de Articulos y arrastras todos los campos que necesites que se muestren, luego en la barra de herramientas pulsas un Icono que hay parecido a una E (letra Exilon griega) para convertir la consulta en "Consulta de Agrupamiento" y por último en la fila "Total" pones el Nombre del Articulo como "Agrupar por" y el resto de campos como "Último", sales y grabas los cambios. Ahora cuadro abras el Combo verás como sólo aparece la última entradas de cada Articulo.
Lo que observarás es que esa consulta se convierte en "No actualizable" y no se puede cambiar ni agregar nada en la tabla a través de ella, pero es que las consultas de agrupamiento son así, sólo sirven para consultar.

Un saludo
Enrique
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

RE:CONSULTAR ULTIMO REGISTRO

Publicado por ROBERTO (145 intervenciones) el 21/12/2005 11:24:20
HOLA ENRIQUE. LO QUE ME RESPONDISTE ANTERIORMENTE ME HA SERVIDO BIEN PARA MI PROBLEMA ANTERIOR PERO A VER SI ME PUEDES AYUDAR CON ESTE OTRO. TE CUENTO. TENGO UNA TABLA DE INTRODUCCIÓN DE REFERENCIAS Y OTRA DE VALORES POR REFERENCIA RELACIONADAS CLARO ESTÁ. MI PROBLEMA ES QUE CUANDO ESTOY INTRODUCIENDO UN NUEVO VALOR A UNA REFERENCIA DETERMINADA DE LA QUE YA TENGO MAS VALORES INTRODUCIDOS ANTERIORMENTE NO ME DEJA VISUALIZAR EL ÚLTIMO VALOR DE UN CAMPO DETERMINADO. YO LO QUE QUIERO ES PODER VER A LA VEZ QUE INTRODUZCO NUEVOS DATOS, EL ÚLTIMO VALOR INTRODUCIDO ANTERIORMENTE DE UN CAMPO, PARA PODER COMPARAR EL ÚLTIMO QUE INTRODUJE CON EL NUEVO QUE TENGO QUE METER. ME VALDRÍA PODER VISUALIZAR ESTE VALOR SIMPLEMENTE EN UN CUADRO DE TEXTO , POR EJEMPLO. GRACIAS DE ANTEMANO. ESPERO QUE ME PUEDAS AYUDAR OTRA VEZ. GRACIAS.
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

RE:CONSULTAR ULTIMO REGISTRO

Publicado por Enrique (1299 intervenciones) el 21/12/2005 19:59:18
Hola Roberto:
Lo que necesitas se puede hacer utilizando la Función de agregado de dominio DLast. Supongamos que tienes una Tabla o Consulta con los Campos Referencia y Valor y al entrar en un nuevo registro, añadir un nuevo valor a una Referencia de la que ya tienes otros valores anteriores y visualizar además el valor anterior de esa misma Referencia; entonces en un Formulario tendrás los campos Referencia y Valor. Bien, pues añades un nuevo cuadro de texto y lo dejas "Independiente" (sin origen del control) y le llamas ValorRefAnterior, en este se mostrará el valor anterior de la Referencia que introduzcas en el cuadro de texto Referencia del nuevo registro en el formulario. Ejemplo usando dos Procedimientos de Evento:

Private Sub Form_Current()
Me.ValorRefAnterior = Null
End Sub

Private Sub Referencia_AfterUpdate()
If Me.NewRecord Then
ValorRefAnterior = DLast("Valor", "[Tabla o Consulta]", "Referencia ='" & Me.Referencia & "'")
Else
Me.ValorRefAnterior = Null
End If
End Sub

El campo ValorRefAnterior es conveniente ponerlo sin punto de tabulación y Activado: No, Bloqueado: Sí (porque es un campo solo de consulta). En el caso de que el campo Referencia de la Tabla sea numérico tendrías que cambiar la línea del DLast y que quede así:
ValorRefAnterior = DLast("Valor", "[Tabla o Consulta]", "Referencia =" & Me.Referencia). Tambien puedes eliminar el If, Then, Else, End If, si necesitas actuar en registros anteriores y no solo en nuevo registro.

Prueba a ver si consigues sacar esto adelante y si no te sale o necesitas algo más, vuelve a preguntar aquí mismo.

Un saludo
Enrique
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

RE:CONSULTAR ULTIMO REGISTRO

Publicado por ROBERTO (145 intervenciones) el 26/12/2005 16:46:06
HOLA OTRA VEZ ENRIQUE. PARECE QUE TENGO PROBLEMAS PARA HECHAR A ANDAR ESTO. TE VOY A INTENTAR EXPLICAR COMO TENGO LOS FORMULARIOS, TABLAS Y SUS RELACIONES Y TE COMENTO LO QUE NECESITO:
TENGO UNA TABLA LLAMADA PREPARACION PEDIDO(FECHA) CON LOS CAMPOS SIGUIENTES: ID(CLAVE), FECHA PEDIDO Y PROVEEDOR.
OTRA TABLA LLAMADA PREPARACION PEDIDO(REFERENCIAS) CON LOS CAMPOS: ID(CLAVE), NUM, REFERENCIA Y CANTIDAD.
POR ULTIMO OTRA TABLA LLAMADA PEDIDOS_ENTRADAS CON VARIOS CAMPOS CON VALORES REFERENTES A CADA REFERENCIA ENTRE LOS QUE SE ENCUENTRA EL CAMPO [FOB$] QUE YO NECESITO SACAR.
ESTAS TRES TABLAS ESTAN RELACIONADAS . TENGO CREADO UN FORMULARIO EN EL QUE HAGO ENTRADAS CONSTANTEMENTE POR PEDIDO(FECHA) CON DOS SUBFORMULARIOS UNO DE REFERENCIAS Y OTRO DE ENTRADAS. ES DECIR, PARA QUE LO ENTIENDAS, POR CADA Nº DE PEDIDO CON UNA FECHA Y UN PROVEEDOR DETERMINADO ENTRAN EN ALMACEN UNAS REFERENCIAS DETERMINADAS CON UNOS PRECIOS POR REFERENCIA DETERMINADOS ADEMAS DE OTROS VALORES . YO VOY INTRODUCIENDO PEDIDOS Y MI PROBLEMA ES QUE NECESITO PODER TENER POR CADA ENTRADA NUEVA DE UNA REFERENCIA DETERMINADA EL VALOR ANTERIOR DE UN CAMPO( EN ESTE CASO SE LLAMA [FOB$]), EL ULTIMO [FOB$] DE ESA REFERENCIA PARA PODERLA COMPARAR CON LA ACTUAL QUE ESTOY INTRODUCIENDO YO PARA ASI SABER SI ESE VALOR A AUMENTADO DE PRECIO O NO, CON RESPECTO A LA ULTIMA ENTRADA QUE SE HIZO. GRACIAS . ESPERO TU RESPUESTA.
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

RE:CONSULTAR ULTIMO REGISTRO

Publicado por Enrique (1299 intervenciones) el 27/12/2005 12:41:31
Hola Roberto:
Sigo pensando que para obtener el valor anterior del campo FOB$ tienes que utilizar la función de agregado DLast, lo que pasa es primero tendrás que entender su funcionamiento para después aplicarlo a tus necesidades concretas. Esa función necesita el nombre del campo del que quieres buscar un valor, el nombre de la Tabla y un campo tambien de la tabla que servirá como criterio de búsqueda comparándolo con un campo del formulario y por supuesto un campo "Independiente" en el formulario para mostrar el resultado obtenido de la función DLast. No puedo decirte nada más porque aunque lo explicas en tu mensaje, realmente desconozco detalles de tu aplicación que posiblemente influyan en la forma concreta de resolver el problema.

Un saludo y suerte con el proyecto.
Enrique
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

RE:CONSULTAR ULTIMO REGISTRO

Publicado por ROBERTO (145 intervenciones) el 04/01/2006 10:48:35
HOLA OTRA VEZ ENRIQUE. A VER SI ME PUEDES AYUDAR OTRA VEZ PQ NO CONSIGO SACAR EL ULTIMO VALOR CON LA FUNCION DLAST. MIRA TENGO UNA CONSULTA DONDE CONSULTO TODAS LAS REFERENCIAS EXISTENTES CON SU VALORES. LA CONSULTA SE LLAMA: [CONSULTA ULTIMO FOB$ ANTERIOR] Y EL CAMPO QUE CONTIENE EL VALOR DENTRO DE LA CONSULTA SE LLAMA [IMPORTE DOLAR]. EL CUADRO COMBINADO CON EL QUE BUSCO LA REFERENCIA DE LA QUE DESEO MOSTRAR VALORES ANTERIORES SE LLAMA [REFERENCIA] ESTA REFERENCIA ES LA QUE TIENE QUE COINCIDIR CON LA DE LA CONSULTA EN EL CRITERIO DE LA FUNCION DLAST. YO SOY INCAPAZ DE SACARLO. SI TU PUDIERAS ESCRIBIRME LA FUNCION EXACTAMENTE COMO TU CREES QUE ES TE LO AGRADECERIA MUCHISIMO.
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

RE:CONSULTAR ULTIMO REGISTRO

Publicado por Enrique (1299 intervenciones) el 04/01/2006 20:49:27
Hola Roberto, vamos a ver si lo consigues de esta forma:
Me.RefAnterior = DLast("[Importe Dolar]", "[Consulta Ultimo Fob$ Anterior]", "[Importe Dolar] ='" & Me.Referencia.Column(X) & "'")
X = El numero de columna del Combo donde se carga la Referencia.
RefAnterior = Cuadro de texto en el Formulario que será el que recibirá el valor obtenido con DLast.

Ahora hay que tener en cuenta un par de detalles.
1-Si en el Origen de la Fila del Combo "Referencia" has puesto más de una columna, en el criterio de DLast tienes que hacer Referencia a la columna del Combo donde cargas la Referencia. Normalmente será la 0 (cero) y si solo has puesto una colunma, no es necesario o sería igual poner Column(0).

2-Si el Campo Importe Dolar está establecido como Numérico en la Tabla Origen de la Consulta, cambia la línea del DLast por esta otra:

Me.RefAnterior = DLast("[Importe Dolar]", "[Consulta Ultimo Fob$ Anterior]", "[Importe Dolar] =" & Me.Referencia.Column(X))

A veces ocurre que cuando los nombres de los objetos y de los campos contienen signos "extraños" como $ por ejemplo, pueden producirse errores por no ser reconocidos por Access. Puede que funcione como está, pero si no fuera así te aconsejo que cambies: Importe Dolar por ImporteDolar, Consulta Ultimo Fob$ Anterior por ConsUltFobAnt, todo esto en la Tabla, en la Consulta y en el Formulario y lo mismo con los nombres de formularios, Informes, consultas y tablas (sin espacios, sin signos distintos de letras o numeros, sin números al principio, etc.), creeme que te ahorrarás un montón de problemas. No entiendo la manía de escribir los nombres con todas sus letras, sus acentos y sus espacios, si todo esto está en el interior de la aplicación y nadie lo va a ver.
Si no lo consigues y quieres, mete la Tabla Origen de la consulta y la propia consulta en una mdb nueva y me la envias en rar (no zip) o sin comprimir y la miro.

Saludos
Enrique
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

RE:CONSULTAR ULTIMO REGISTRO

Publicado por ROBERTO (145 intervenciones) el 09/01/2006 16:16:57
HOLA ENRIQUE. NADA QUE NO LO CONSIGO SACAR. SI NO TE IMPORTA TE ENVIO LAS TABLAS Y CONSULTAS POR HOTMAIL Y TE EXPLICO UN POCO LO QUE NECESITO. VENGA MUCHAS GRACIAS.
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