¿Obtener en un formulario un campo que sea una lista desplegable con el resultado de una consulta?

Tengo un problema y es que quiero obtener en un formulario un campo que sea una lista despeglabe con el resultado de una consulta, pero las condiciones Where de la misma tienen que ser valores introducidos en campos anteriores del formulario.
Respuesta
1
Crea una consulta en Access y en los valores de la clausula Where/Criterio pon lo siguiente:
Formularios![Formulario1]![Campo1]
Donde Formulario1 es el nombre de tu formulario y Campo1 es el nombre del texto que contiene el valor.
Hola carruina y muchas gracias por contestar, lo que pasa es que tengo problemas al hacer esto, te comento.
La consulta que he hecho ha resultado lo siguiente:SELECT Max([Numero])+1 AS Expr1
FROM T_PROYECTOS
WHERE (((T_PROYECTOS.[Codigo Clave])=Formularios!F_PROYECTOS![Codigo Categoria]) And ((T_PROYECTOS.Año)=Formularios!F_PROYECTOS![04Proyecto]));
Te explico porque lo que yo quiero es que al meterel código de la categoría y el año me salga directamente un numero que corresponde a una fase y que sera el siguiente al último ya existente en la tabla.
Entonces yo esta consulta la pongo en Propiedades -> Eventos y se me ocurre que en al recibir el enfoque, igual se te ocurre una solución mejor porque en el momento de probarlo me da un error que dice que no se puede encontrar la macro y yo ya si que me puedo.
Un Saludo y muchas gracias de nuevo.
Podrías poner el siguiente código en el evento de DoubleClick.
EL código revisa que los campos "Código Categoría" y 04Proyecto estén informados y recupera el numero el siguiente código de proyecto.
(Te recomiendo que el nombre de lo campos no tenga más de ua palabra)
Dim Lrst as recodset
Dim strSQl as string
If Me.Codigo_Categoria <> "" and Me.04PRoyecto <> "" then
strsql = "SELECT Max(Numero) as ultimo "
strsql = strsql & " From T_PROYECTOS "
strsql = strsql & where [codigo clave] = '" & me.codigo_categoria & "' "
strsql = strsql & " and Año= '" & Me.04Proyecto & "';"
set lrst = currentdb().openrecordset txtsql
me.Num_Proyecto= lrst.Ultimo + 1
else
MsgBox "Debes de rellenar Categoria y proyecto..."
End if
Hola carruina!
Muchas gracias por proporcionarme el código, he hecho lo que me aconsejabas y al probarlo me sale un mensaje de error de compilación y dice que no se ha definido el tipo definido por el usuario y parece que hace referencia a Dim Lrst.
También quería hacerte otra consulta y es que en otro formulario quiero poder acceder desde el mismo a los contactos de outlooky en el cuadro de herramientas en el botón de más controles aparecen algunas opciones de outlook, pero no se si son esas y si es así cual de ellas es la adecuada.
Muchas Gracias por todo!
Me he equivocado al transcribir el código
En lugar de
Dim Lrst as recodset
Pon
Dim Lrst as recordset
Hola!
Pues parece que ese no es el problema ya que me sigue dando ese mismo error.
Ahora tengo una nueva consulta y es que en un formulario tengo un botón que me lleva a uno nuevo y quiero que al entrar en el nuevo algunos campos tengan ya un valor seleccionado en el formulario anterior, ¿cómo podría hacerlo?
¿Tienes alguna solución para lo que te ponía en el mensaje anterior de los contactos del outlook?
Muchas Gracias
Es caso es que el código lo he escrito de memoria y no lo he repasado.
Pensaba que tu reescribirías el código.
Esta linea creo que también está mal.
Mal
strsql = strsql & where [codigo clave] = '" & me.codigo_categoria & "' "
Bien
strsql = strsql & "where [codigo clave] = '" & me.codigo_categoria & "' "
Es posible que hayan más lineas incorrectas, pero necesitaría que me indicaras cuales son lo nombres de los campos en el formulario.
PD: Vamos por parte y primero resolvamos un problema y luego otro. (Para la nueva consulta crea otra pregunta)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas