Valores cuadro combinado access

He creado una base de datos. En ella tengo una tabla que se llama HistoricMesAnterior que contiene los datos extraídos del consumo del mes de abril de una máquina.
En la consulta Consum per mes del mes anterior me devuelve dos campos (Llargària, Consum). Llargària contiene la longitud de la pieza, y consum el consumo de esa pieza en el mes de Abril. (La consulta me va a buscar los datos en la tabla HistoricMesAnterior, en la tabla, Llargària es de tipo Número y consumo multiplica la Llargària por la cantidad de piezas, los dos campos a Número).
Entonces he creado un formulario llamado Prova consum mes anterior en el que he creado un cuadro combinado con los valores de Llargària de la consulta Consum per mes del mes anterior, y lo que quiero es crear un cuadro de texto que, dependiendo del valor seleccionado en el cuadro combinado (dependiendo de la longitud de la pieza) me devuelva su consumo. Es decir dependiendo de la Llargària, me devuelva su Consum. Todo esta en la consulta Consum per mes del mes anterior.
El cuadro combinado tiene la acción Me. Refresh en el campo al hacer click.
El cuadro combinado al crearlo mediante el asistente le dije que se llamara Llargària. La etiqueta de hecho así se llama, pero cuando selecciono el cuadro en si, en Access me lo identifica como Cuadro Combinado4.
Entonces creo un cuadro de texto que quiero que me devuelva el valor Consum de la consulta Consum per mes del mes anterior dependiendo del valor del cuadro combinado4.
Entonces he probado varias cosas, como:
DBúsq("[Consum per mes del mes anterior]!Consum"; "[Consum per mes del mes anterior]"; "[Consum per mes del mes anterior]!Llargària = [Prova consum mes anterior]![Cuadro Combinado4].Value")
He probado en vez de Cuadro Combinado4 con Llargària, con el .Value y sin él, con "." en vez de "!", con "[Consum per mes del mes anterior]!Consum" y con "Consum" solo y no se que más probar.
Al visualizar el formulario, en el cuadro de texto me sale siempre #¿Nombre?
No se como sería, darme lo que haríais vosotros, que algo hago mal seguro!

1 Respuesta

Respuesta
1
Lo que quieres hacer se debe hacer a través de código. Te indico los pasos que debes seguir:
1.- Vete, con el formulario en vista diseño, al cuadro combinado (el Cuadro Combinado4). Quítale el evento me. Refresh
2.- Te vas al evento "Después de actualizar" (de ese mismo combo) y le escribes este código (entre las líneas que te salen por defecto->Public Sub... y End Sub):
---
    Dim vLlarg as Variant
    Dim vConsum as Variant
    Dim rst as recordset
    vLlarg = Me.[Cuadro combinado4].value
    If IsNull(vLlarg) then Exit Sub
    Set rst = currentDb.Openrecordset("Consum per mes del mes anterior")
    If rst.Recordcount = 0 then Exit Sub
    rst.movefirst
    Do until rst.EOF
        vConsum = rst.Fields("Consum").Value
        If rst.Fields("Llargària").Value = vLlarg Then
            me.txtConsum.Value = vConsum
            Exit Do
        End If
        rst.MoveNext
    Loop
    rst.Close
    Set rst = Nothing
---
Te he marcado en negrita txtConsum porque esto debes cambiarlo por el nombre del cuadro de texto (su nombre, no el de la etiqueta) que crees para recoger el valor de consum.
Te lo he escrito todo de cabeza, sin testearlo. Creo que no debería darte ningún error. Si te lo da me lo comentas y tratamos de arreglarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas