|
Responder
|
Página 12> |
| Autor | |
maserrano
Colaborador
Unido: 02/Abril/2014 Localización: España Estado: Sin conexión Puntos: 690 |
Tema: Filtrar registros de un formularioEnviado: 21/Noviembre/2019 a las 17:50 |
|
Buenas tardes.
Me gustaría saber si desde un formulario de inicio, donde se loga un usuario se pueden filtrar los registros a los que tiene acceso. La idea es que una vez que se ingrese por un cuadro de lista a una provincia (de una comunidad), me filtre los usuarios de esa provincia (por otro cuadro de lista) y entre. Hasta ahí sé hacerlo. Al entrar, lo hará en un registro con datos de todas las provincias. Lo que quiero es que ese usuario acceda sólo a los registros de datos de su provincia y no de todas las del registro. Me pueden ayudar, porque "esto" no tengo ni idea a priori de cómo hacerlo. Gracias por adelantado.
|
|
![]() |
|
mounir
Colaborador
Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6521 |
Enviado: 21/Noviembre/2019 a las 19:53 |
|
Hola!
En la página del maestro Neckkito hay muchos ejemplos de seguridad Seguridad. Lo del cuadro de lista busca en el foro, en la página de Neckkito o en Google Combos en cascada. |
|
|
Un Saludo.
|
|
![]() |
|
maserrano
Colaborador
Unido: 02/Abril/2014 Localización: España Estado: Sin conexión Puntos: 690 |
Enviado: 21/Noviembre/2019 a las 20:22 |
|
Gracias Mounir.
Lo de la seguridad lo tengo claro y en relación a los combos, más o menos. Lo que ocurre es que no sé extrapolar el resultado de un combo filtrado a otro formulario. Me explico. Elijo en un combo país; en el siguiente combo elijo provincias (de ese país) y, p.e. en el tercer combo elijo poblaciones (de esa provincia y de ese país). Pues bien, quiero acceder a los registros (en otro formulario, de otra tabla) filtrados por esa población. Tengo el campo "población" en ambos formularios. Más o menos sé hacerlo por consulta, pero la idea que barajo es hacerlo mediante código en el evento "click" (pulsar botón), pues a la vez de filtrar, el usuario se habrá logado. Eso no sé cómo hacerlo o plantearlo... No sé si se me entiende más o menos. Gracias de nuevo.
|
|
![]() |
|
mounir
Colaborador
Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6521 |
Enviado: 21/Noviembre/2019 a las 20:47 |
|
Hola!
Si te he entendido bien, podrías utilizar el Objeto DoCmd haciendo uso de "WhereCondition" filtrando por Usuario y Población. Tambien podrías utilizar la proiedad OpenArgs como en este hilo. |
|
|
Un Saludo.
|
|
![]() |
|
teogf
Asiduo
Unido: 09/Febrero/2007 Localización: España Estado: Sin conexión Puntos: 464 |
Enviado: 21/Noviembre/2019 a las 22:48 |
|
Hola,
Este enlace creo que te puede interesar: https://docs.microsoft.com/es-es/office/vba/api/access.docmd.applyfilter Saludos,
|
|
![]() |
|
maserrano
Colaborador
Unido: 02/Abril/2014 Localización: España Estado: Sin conexión Puntos: 690 |
Enviado: 22/Noviembre/2019 a las 12:36 |
|
Hola buenas.
Si lo he entendido bien, en el evento clic de un botón coloco: DoCmd.OpenForm "Ficha", , , "poblacion=cboPoblacion" DoCmd.OpenForm "Ficha", , , "poblacion=Me.cboPoblacion" Supongo que del campo poblacion me coge el valor del combo (cboPoblacion) y me filtrará en el formulario Ficha la elección de ese combo. Qué hago mal?? Me abre el formulario Ficha en blanco?? Vaya, que si hago: DoCmd.OpenForm "Ficha", , , "poblacion='Gandía'" ..., si me filtra bien por Gandía. Si, además, hubiese un formulario intermedio al de Ficha, ¿se perdería la información de la elección del combo? Qué debería hacer? Gracias Mil.
Editado por maserrano - 22/Noviembre/2019 a las 12:50 |
|
![]() |
|
teogf
Asiduo
Unido: 09/Febrero/2007 Localización: España Estado: Sin conexión Puntos: 464 |
Enviado: 22/Noviembre/2019 a las 15:33 |
|
Hola Maserrano,
Yo lo que hago es pasar el valor del combo
a un formulario intermediario que representa una lista y lo filtro por ese
dato. Desde allí salto al formulario que contiene la ficha. Por otro lado, tengo en cuenta de que el formulario que representa la lista no se puede cerrar, ya que, sino como tú dices, podría perder el valor del filtro. Otra posibilidad sería utilizar una variable pública y esta llenarla con el valor del combo, de esta manera siempre podría cerrar el formulario intermedio. No sé si me explicado. Pero podría enseñártelo como yo lo hago, por si te sirve de ayuda. Saludos,
|
|
![]() |
|
mounir
Colaborador
Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6521 |
Enviado: 22/Noviembre/2019 a las 17:38 |
|
Hola!
Otra cuestión es saber que devuelve el "cboPoblacion", ya que puede tratarse de un cuadro combinados con mas de una columna. Para saberlo utiliza MsgBox: MsgBox Me.cboPoblacion, MsgBox Me.cboPoblacion.Column(0) o MsgBox Me.cboPoblacion.Column(1) |
|
|
Un Saludo.
|
|
![]() |
|
maserrano
Colaborador
Unido: 02/Abril/2014 Localización: España Estado: Sin conexión Puntos: 690 |
Enviado: 22/Noviembre/2019 a las 22:42 |
|
Vale.
He utilizado una variable que declaro tal que: Dim VPob As String VPob = Nz(Me.cbopoblacion.Value, "") ..., y en el formulario que lo abre al hacer click en el evento he puesto: DoCmd.OpenForm "Ficha", , , "subdireccion=VPob" Pues al hace clic, me sale un cuadro de mensaje que me dice: Introduzca el valor del parámetro VPob ..., el caso es que lo pongo y me filtra, pero no me lo coge del combo tal cual lo he puesto. Qué me falla??
Editado por maserrano - 22/Noviembre/2019 a las 22:43 |
|
![]() |
|
mounir
Colaborador
Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6521 |
Enviado: 22/Noviembre/2019 a las 22:46 |
|
Hola!
Has hecho las pruebas que te comenté en mi mensaje anterior? |
|
|
Un Saludo.
|
|
![]() |
|
teogf
Asiduo
Unido: 09/Febrero/2007 Localización: España Estado: Sin conexión Puntos: 464 |
Enviado: 22/Noviembre/2019 a las 23:28 |
|
Prueba esto:
Si VPob es texto: DoCmd.OpenForm "Ficha", , , "[subdireccion]=“ & VPob Si VPob es número: DoCmd.OpenForm "Ficha", , , "[subdireccion]=‘ “ & VPob & “ ‘ “ |
|
![]() |
|
maserrano
Colaborador
Unido: 02/Abril/2014 Localización: España Estado: Sin conexión Puntos: 690 |
Enviado: 22/Noviembre/2019 a las 23:44 |
|
Perdón a todos. Me pongo a ello. Los niños....
Ciao
|
|
![]() |
|
maserrano
Colaborador
Unido: 02/Abril/2014 Localización: España Estado: Sin conexión Puntos: 690 |
Enviado: 23/Noviembre/2019 a las 00:17 |
|
Veamos Sr. Mounir.
MsgBox Me.cboPoblacion : Indica la Población (p.e, Gandía) MsgBox Me.cboPoblacion.Column(0) : Igual, Indica la Población (p.e, Gandía) MsgBox Me.cboPoblacion.Column(1) : error 94 en tiempoo de ejecución Uso no válido de Null error de compilación no se encontró el método o el dato miembro En relación al sr. teogf, lo primero, disculpa, pero he tenido una tarde... (tengo mellizos pero no quiero que sea escusa). He probado y al ser texto, he usado: DoCmd.OpenForm "Ficha", , , "[subdireccion]=“ & VPob se ha producido el error '3075' en tiempo de ejecución: Error de sintaxis... Me pongo a ver que no he tenido tiempo. Muchas Gracias |
|
![]() |
|
teogf
Asiduo
Unido: 09/Febrero/2007 Localización: España Estado: Sin conexión Puntos: 464 |
Enviado: 23/Noviembre/2019 a las 00:26 |
|
Disculpa, te lo he dicho al revés:
Si VPob es Numeeo/ DoCmd.OpenForm "Ficha", , , "[subdireccion]=“ & VPob Si VPob es texto: DoCmd.OpenForm "Ficha", , , "[subdireccion]=‘ “ & VPob & “ ‘ “ Disculpa! |
|
![]() |
|
maserrano
Colaborador
Unido: 02/Abril/2014 Localización: España Estado: Sin conexión Puntos: 690 |
Enviado: 23/Noviembre/2019 a las 01:37 |
|
Probé los dos casos y me da el siguiente error con texto:
DoCmd.OpenForm "Ficha", , , "[subdireccion]=‘ “ & VPob & “ ‘ “" se ha producido el error '3075' en tiempo de ejecución: Error de sintaxis (falta operador) en la expresión de consulta '[subdirección]= '" & VPob &"'" |
|
![]() |
|
Responder
|
Página 12> |
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |