Access - Ya ayudenme a mi, contesten mi nota!!!

 
Vista:
Imágen de perfil de Javier Hernández Aguilar

Ya ayudenme a mi, contesten mi nota!!!

Publicado por Javier Hernández Aguilar (33 intervenciones) el 22/11/2007 23:18:07
Tengo una tabla con fechas de nacimiento, a partir de esta genero una consulta donde me calcula automaticamente la edad. De esta consulta obtengo la edad minima y la edad maxima.

Lo que quiero hacer es lo siguiente. Quiro generar un combobox que me muestre valores de edades pero iniciando con la edad minima y finalizando con la edad maxima solamente. Y el intervalo de los valores que sea arbitrario, de uno en uno, de dos en dos años, de tres en tres, etc.

Por ejemplo:

Edad Minima: 25
Edad Maxima: 68

el combo box deberia mostrar (para un intervalo de 1 en 1):
25
26
27
.
.
.
66
67
68

para un intervalo de dos en dos
25
27
29
.
.
.
65
67
69
etc, etc.

Creo que hay que generar código, pero no se como enlazar los valores de las tablas y las consultas.

Espero alguien pueda ayudarme.
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

RE:Ya ayudenme a mi, contesten mi nota!!!

Publicado por mi menda (1111 intervenciones) el 23/11/2007 04:01:36
Hola Javier:
Primero decirte que de recordsets ando fojo, así que sí esto no te sirve, no se sí te podré ayudar.
En el formulario te creas un textbox (txtIntervalo) para indicar el intervalo por el que quieras que salga la edad.
En el código el combobox se llama cboEdad, y la propiedad Tipo de origen de la fila, la tienes que poner en "Lista de valores".
Donde dice (SELECT edad FROM Consulta1"), tienes que poner el nombre de tu campo edad en la consulta, y sustituir Consulta1 por el nombre de tu consulta, igualmente rs!edad por rs!NombreCampoEdad.
Luego solo tienes que poner esto en el evento después de actualizar del txtIntervalo

Private Sub txtIntervalo_AfterUpdate()
Dim Intervalo As Integer, i As Integer, contador As Integer, rs As DAO.Recordset

If Nz(Me.txtIntervalo, "") = "" Then Exit Sub

Intervalo = Me.txtIntervalo
i = Intervalo
contador = Intervalo

Set rs = CurrentDb.OpenRecordset("SELECT edad FROM Consulta1")
Me.cboEdad.RowSource = ""

rs.MoveFirst

While Not rs.EOF
If contador = Intervalo Then
Me.cboEdad.AddItem rs!edad
Intervalo = Intervalo + i
End If
contador = contador + 1
rs.MoveNext
Wend

rs.Close
Set rs = Nothing

End Sub

Un Saludo
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 Javier Hernández Aguilar

RE:Ya ayudenme a mi, contesten mi nota!!!

Publicado por Javier Hernández Aguilar (33 intervenciones) el 23/11/2007 15:51:42
No funcionó al 100% el codigo que me escribiste pero pude manipularlo de manera que ya funciona. Gracias por la idea y por el tiempo que dedicaste a contestar la nota.
Saludos!!!
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