Realmente lo que busco es que si el campo xx tiene la letra E pues quiero que me muetre el registro y sino tiene dicho caracter pues no me muestre dichos registros.
Intenta explicar un poco mas como tiene que funcionar, porque ahora me he perdido un poco. Debe mirar antes o despues de abrir el form? En el campo debe haber solo una E o texto que contenga la letra E? Si me pudieras explicar un poco mas lo que haces (tengo un formulario tabular con ....y quiero que...), es decir especificar un poco mas tu ejemplo Seguro que hay solucion
Tengo un formulario para ver todos los registros de una tabla y lo unico que quiero es que si yo pulso un boton tan solo me muestre los registros que en el campo xxxx empiezen con la letra E00000000 y el resto numeros. Espero haberme explicado bien
Perfecto, ahora te he entendido perfectamente. Crea una consulta de la tabla donde tienes los datos. En el criterio del campo donde tienes E00000, C454554, etc pones:
>="E" Y <"F"
guardala con el nombre filtrarletra (es un ejemplo)
Crea otra consulta exactamente igual, pero sin nada en el criterio. guardala con el nombre quitarfiltro
Usaremos una para mostrar los que empiezan por e y otra para mostrarlos todos.
Crea un boton de comando (este sera el que filtrara) y le pones
Dim stDocName As String stDocName = "form1" DoCmd.OpenForm stDocName, , "filtrarletra"
Crea otro botón(este será el que quitara el filtro) y le pones
Dim stDocName As String stDocName = "form1" DoCmd.OpenForm stDocName, , "quitarfiltro", stLinkCriteria
Y ya está hecho el filtro. Cambia form1 por el nombre del formulario donde pondras los botones Suerte
Todo Ok pero cuando voy a quitar el filtro me da un error ya que no esta la variable definida. en este caso la de stLinkCriteria. La he declarado pero de todas formas a pesar de que no me da error no me quita el filtro
Private Sub Comando404_Click() Dim stDocName As String Dim stLinkCriteria As String stDocName = "CONTACTOS " DoCmd.OpenForm stDocName, , "QuitarFiltro", stLinkCriteria End Sub
Si no te quita el filtro puede haber 2 razones: 1- Que no llamas a la consulta del mismo modo (ej: quitarfiltro y quitar filtro 2- Que los criterios son iguales. Es posible que hayas copiado la consulta filtrarletra para crear la quitarfiltro y no hayas borrado >=E y <F ??
PD: por lo del stlinkcriteria, como no lo usamos lo podemos quitar y no hace falta declararla. Con el codigo así deberia hacer exactamente lo mismo:
Private Sub Comando404_Click() Dim stDocName As String stDocName = "CONTACTOS " DoCmd.OpenForm stDocName, , "QuitarFiltro" End Sub
No obstante si quieres dejarlo pues no pasa nada mientras no le des valor. Suerte y ya contaras
ME HE FIJADO EN LA CONSULTA ESTGA TODO CORRECTAMENTE, ES MAS SI EJECUTO LA CONSULTA ME SALEN TODOS LOS REGISTROS PÈRO PARECE COMO SI QUEDARA LA PRIMERA CONSULTA BLOQUEANDO LA SEGUNDA E INCLUSE Y APLICO EL SEGUNDO FILTRO(DONDE SE VEN TODOS REGISTROS) VEO EXACTAMENTE LO MISMNO QUE SI EJECUTARA EL PRIMER FILTRO(SOLO SE VEN LOS REGISTROS QUE CONTIENEN EN EL CAMPO X LA LETRA E)
Ve a este enlace, http://www.nogue.net/public/ejemplofiltro.rar y descargate el archivo. Lo acabo de hacer y me funciona a la perfeccion. Comparalo con el tuyo y me cuentas, porque la verdad ya no sé que más puede ser.
NO SE PORQUE MOTIVO EN LA VERSION DEL OFFICE 2007 SE QUEDA "PILLADO" CON EL FILTRO PERO LO MAS CURIOSO ES QUE EN VERSIONES ANTERIORES SI QUE ME FUNCIONA PERFECTAMENTE INCLUSO EL PROGRAMA QUE HAS ECHO TU EN LA VERSION DEL OFFICE 2007 TAMPOCO VA BIEN LO DE LOS FILTROS.