Problemas con filtro en access

Tengo dos formularios, y mediante un botón en uno de ellos quiero que se abra el otro filtrado en determinado registro. El dato en común que usan es un campo texto. Uso la función docmd.openform "mi_formulario",,,[mitabla].Campo = me. Campo pero no entiendo que no hago bien. Me parece que me estoy comiendo comillas o algo más. Yo quisiera que apretando ese botón de acción en el formulario 1 (dónde ya está el campo que se comparte entre ambos formularios y tablas) se ejecute el comando que abra el registro que posee ese campo en el formulario 2. Registro que es único e irrepetible.

1 Respuesta

Respuesta
1

Casi lo estás haciendo bien.

Docmd.openform"nombredelformulario",,,"nombrecliente='" & me.nombredelcuadrodetexto & "'"

En caso de que los campos de los criterios fueran numéricos sería

Docmd.openform"nombredelformulario",,,"numfactura=" & me.numfactura & ""

Bueno el filtro funciona, pero me parece que es más compleja la cosa. El formulario que abre tiene un subformulario con los datos del paciente. Y al abrirse me abre un registro nuevo, yo quisiera que abra el registro que contiene ese número de cama y con el subformulario acordé también a ese número de cama.

Hay algo que no estás haciendo bien. Si tengo un formulario

Fíjate en los Idventa. En este caso sólo tengo 3 registros.

Tengo también un formulario con un combinado llamado Elegir donde voy a seleccionar un Idventa

En el momento que lo selecciono

DoCmd.OpenForm "ventas", , , "idventa=" & Me.Elegir & ""

Hola Icue. El tema es que yo accedo a ese código mediante un botón en el formulario, que no especifica el número de cama (campo texto). El número de cama está en un control ya del formulario activo. Yo lo que quiero que es que al acceder a ese botón, abra otro formulario distinto dónde está el campo cama del mismo registro actual del formulario con ese mismo número de cama (que es texto).

Listo ya lo solucione! Había un par de errores. Primero había olvidado que haya un control que copié el valor desde el subformulario que uso de encabezado para cada paciente, así figura en el registro actual el número de cama. Luego de ese detalle, en el botón de acción que busco que abra el otro formulario en el registro correspondiente a ese paciente le puse el código que me pusiste con el filtro (con el reparo de que sea campo texto) y funciona, pero no me abría el registro con el subformulario cargado también en ese número de cama, entonces agregue otro filtro más. Quedo así:

docmd.openform "f_indicaciones",,,"Cama='" & me.cama & "'" y le agregué otro código 

With forms!f_indicaciones! subformulario_paciente.form

.filter = "Cama='" & me.cama & "'"

.filterOn= true

End with

End sub

Ahora me surge otro problemita jajaj . Trabajo con formularios emergentes y modales. Pero en este caso quisiera que el formulario f_indicaciones se abra en modo diálogo como una ventana más chica así se puede cerrar una vez visto el detalle que llevo al usuario a abrirlo y seguir trabajando en el formulario base desde el cual se está trabajando. Además necesitaría especificar que el f_indicaciones se abra mostrando solo un botón que sea "cerrar ventana", ya que al abrirse muestra los botones predeterminados que llevan a otros formularios. Habría que poner que muestre ciertos botones y otros que ya están no.

Gracias Icue siempre dándome una gran mano.

Por partes. En vista diseño del formulario que sea, en sus Propiedades-Formato puedes decirle que no muestre, ni el botón de cerrar, ni el de minimizar, ni el cuadro de control, etc.

Reconozco que soy enemigo de los formularios emergentes, ni que decir tiene de los modales, no le veo sentido. Para abrir un formulario en vista diálogo desde otro formulario, en este último en el evento que sea tienes que decirle

DoCmd.OpenForm "F_indicaciones", , , , , acDialog

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas