Access - macro en formulario

   
Vista:

macro en formulario

Publicado por Julian David (20 intervenciones) el 25/02/2013 23:02:46
Buenas tardes amigos

soy nuevo en el foro y mi duda es la siguiente:

Tengo una base de datos con campos como los siguientes: fecha, nombre dirección, etc.
Estos datos los almacene en un formulario llamado form1.

En un formulario llamado form2 tengo 2 cajas de texto para ingresar los intervalos de consulta (fecha inicio y fecha fin), por lo tanto cree un botón (consulta fecha) el cual deseo que al ejecutarlo me abra form1 mostrándome únicamente los datos ubicados entre fecha inicio y fecha fin (ingresados previamente por el usuario).

He intentado con el generador de eventos con la función "Entre" pero al ejecutar el botón "consulta fecha" , me muestra todos los datos de form1, es decir que no filtra la información que deseo

De antemano muchas gracias por la colaboración que me puedan brindar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Access
- Código fuente de Access
- Cursos de Access
- Temas de Access
- Chat de Access
información
Códigos de Access
- Cuadre de caja
- RoloButtons
- Combos en cascada
Imágen de perfil de Neckkito

macro en formulario

Publicado por Neckkito (1104 intervenciones) el 26/02/2013 14:12:52
Hola!

Suponiendo que:

- El textbox con la fecha de inicio se llama txtFIni (Propiedades -> Pestaña Otras -> Nombre)
- El textbox con la fecha de fin se llama txtFFin
- El campo del form1 que contiene la fecha se llama [Fecha]

Lo que tienes que hacer es sacar las propiedades del botón del form2 y en el evento "Al hacer click" le generas este código:
...
Private Sub...
Dim f1 As Date, f2 as Date
Dim miFiltro As String
f1=me.txtFIni.value
f2=me.txtFFin.value
miFiltro = "[Fecha] BETWEEN #" & Format(f1, "mm/dd/yy") _
& "# AND #" & Format(f2, "mm/dd/yy") & "#"
DoCmd.OpenForm "form1", , , miFiltro

End sub
...

Ten en cuenta que el código te dará error si no hay valor en los textbox. Deberías añadir unas líneas de comprobación de valores.

Ahora sólo debes cambiar los nombres que tú tengas por los que yo he supuesto.

A ver si así te funciona.

Un saludo,


http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

macro en formulario

Publicado por Julian david (20 intervenciones) el 26/02/2013 16:25:01
muchas gracias amigo

corre perfecto, estoy muy agradecido contigo pero me surge una duda,

como puedo realizar esa validación, ya que únicamente lo he hecho con las texbox entrando a propiedades y eligiendo la opción " regla de validación" pero cuando selecciono un botón no aparece esta opción.

por ultimo serias tan amable me podrías suministrar algún link para aprender a programar con VB, ya que me he dado cuenta que es la forma mas común de trabajar en access y la verdad soy muy novato

amigo de antemano agradecido 100% con tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito

macro en formulario

Publicado por Neckkito (1104 intervenciones) el 26/02/2013 18:03:56
Hola!

Para validar el formato de la fecha puedes utilizar las propias características de Access. Sacas las propiedades de los textbox y te vas a Pestaña Formato -> Formato, y ahí le seleccionas un formato de fecha. Así será el propio Access quien detecta si le has introducido una fecha o no.

Para validar el contenido de los textbox de fecha deberías reescribir el código, por ejemplo, así (te valida si hay algún textbox en blanco o si la fecha de inicio es mayor que la fecha final):

...
Private Sub...
Dim f1 As Variant, f2 as Variant
Dim miFiltro As String
f1=me.txtFIni.value
f2=me.txtFFin.value
'Validamos si hay valor en la fecha de inicio
If isnull(f1) then
msgbox "No ha escrito la fecha de inicio",vbExclamation,"SIN FECHA"
Exit sub
End if
'Validamos si hay valor en la fecha final
If isnull(f2) then
msgbox "No ha escrito la fecha de fin",vbExclamation,"SIN FECHA"
Exit sub
End if
'Convertimos el tipo de dato de Variant a Fecha
f1=CDate(f1)
f2=CDate(f2)
'Validamos si la fecha de inicio es mayor que la fecha final
If f1>f2 then
msgbox "La fecha de inicio no puede ser mayor que la fecha final",vbExclamation,"ERROR FECHA"
Exit sub
End if
miFiltro = "[Fecha] BETWEEN #" & Format(f1, "mm/dd/yy") _
& "# AND #" & Format(f2, "mm/dd/yy") & "#"
DoCmd.OpenForm "form1", , , miFiltro
End sub
...

En cuanto al tema del manual de VB te recomiendo probablemente uno de los mejores del mercado... je, je... Es broma !!!!. Te indico el que he escrito yo, pero una búsqueda por Internet te llevará a cualquiera de los que hay disponibles por la red. El link es http://siliconproject.com.ar/neckkito/index.php/manuales

Ahí tienes un manual de Access 2007, VBA para Access y SQL enfocado a Access

Si tienes algún problema nos comentas.

Saludos,

Neckkito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

macro en formulario

Publicado por Julian David (20 intervenciones) el 28/02/2013 17:45:28
Buen día amigo

muchas gracias por tu ayuda, me ha servido un montón, adicionalmente tu pagina es increíble, ya te he robado el código para contraseña.
tus manuales están geniales y ya estoy entrando en confianza con los códigos

un saludo y nuevamente gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto

macro en formulario

Publicado por Norberto (432 intervenciones) el 01/03/2013 13:11:24
Hola Neckkito:

No sé si tu manual de VBA para Access será uno de los mejores del mercado pero te aseguro que sí es de los más amenos y divertidos. Aparte de aprender cosas (las clases eran mi asignatura pendiente y gracias a tu manual, no te voy a decir que estoy de matrícula de honor pero sí de notable alto) me he divertido un montón y hasta me he reído, que tal y como está la vida...

Tengo que felicitarte por el trabajo y, sobre todo, por el enfoque que le has dado. Yo, que me he dedicado muchos años a la docencia, sé lo dificil que es trasmitir tus conocimientos a terceros y mucho más cuando no se puede interactuar con ellos como es el caso de un tutorial, manual, etc.

Ahora mismo voy a atacar el de SQL que seguro que algo tiene que enseñarme.

Un saludo y gracias por tu trabajo,

Norberto.


P.S. Por cierto, los formularios me gustan poco hechos, sangrantes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito

macro en formulario

Publicado por Neckkito (1104 intervenciones) el 01/03/2013 15:44:37
Hola, Norberto, y hola a tod@s!

Con perdón de la expresión... "¡Joder!" Vais a hacer que me ruborice!!!!!!!!!!

Me alegra mucho que os gusten los textos y, más aún, que os puedan ser útiles. Cuando empecé a escribir el que comienza por "En un lugar de la red, de cuyo nombre no quiero acordarme, había un Access, adarga antigua y VBA corredor..." (ufff... creo que se me ha "ido un poco la olla")...

Bromas aparte, cuando empecé a escribirlos me hacía ilusión que al menos "un alguien" me dijera "¡qué bueno!" (supongo que todos aspiramos a las felicitaciones de los demás, aunque lo neguemos). Gracias a vosotros mis "ilusiones" se han visto cumplidas... ¿qué más se puede pedir?

De corazón gracias por vuestros comentarios.

Y, por cierto, Norberto, ¿unas consultitas en su salsa para picar?

Saludos,

Neckkito

http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto

macro en formulario

Publicado por Norberto (432 intervenciones) el 04/03/2013 10:20:45
Ok, con una caña fresquita!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

macro en formulario

Publicado por Julian David (20 intervenciones) el 04/03/2013 17:43:04
Buen dia amigo,

que pena molestarte una vez mas,

quiero hacer un filtro similar pero esta vez únicamente filtrar un nonbre, es decir, en un cbonombre elijo el nombre y con un cmdconsulta abro un form con mi elección filtrada en el campo "nombre"

tenngo algo como esto, la verdad bastante perdido , agradezco tu ayuda

Private Sub...
Dim f1 As variant
Dim miFiltro As String
f1=me.cbonombre.value

miFiltro = "[nombre] & f1
DoCmd.OpenForm "form", , , miFiltro
End sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Neckkito

macro en formulario

Publicado por Neckkito (1104 intervenciones) el 04/03/2013 20:43:31
Ahí va...

Private Sub...
Dim f1 As variant
Dim miFiltro As String
If isnull(f1) then exit sub
f1=me.cbonombre.value

miFiltro = "[nombre]='" & f1 & "'"
DoCmd.OpenForm "form", , , miFiltro
End sub


Ten en cuenta que, para que funcione el filtro correctamente, f1 debería recoger un dato de tipo texto. Si no es así (que sea numérico, por ejemplo) me lo comentas porque tendríamos que cambiar algunas cosas.

Saludos,

Neckkito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar