Como llenar listbox desde vba Access 2010

Tengo un formulario en donde tengo un listbox y un botón, a través del mismo, quiero mostrar Nombre y Apellido, Fecha Nacimiento y edad de las personas que complen años, ya he calculado en un modulo y tengo el resultado para mostrar en el Listbox, los datos lo recojo de un Recordset a través de un bucle do loop. Y lo único que me falta es mostrar el resultado. En el listbox de tres columnas, Apellido y Nombre, Fecha Nacimiento y Edad .

1 respuesta

Respuesta
2

La forma más sencilla sería hacer (y guardar) una consulta en la que cojas y calcules los campos que quieres mostrar, y luego uses esa consulta como origen de tu cuadro de lista.

Con el recordset y el bucle, en cada pasada has de usar la propiedad AddItem del listbox para cargarle los datos, algo así:

Do...

...

Me.NombreListBox.AddItem rst("Apellidos") & ";" & rst("Nombre") & ";" rst("FNacimiento") & ";" & rst("Edad") & ";"

...

Loop

Un saludo.


! Muchas Gracias! Por haberte tomado el tiempo para responderme, te lo agradezco y ahora lo voy a probar para ver si funciona.

Hola, acabo de probar pero sigo sin poder mostarlo. Lo hice como me explicaste pero igual nada.

Escribi lo siguiente dentro de una condicion q se cumple.

Form_cumpleaños.lista6.additem rscumple("Apellidos") & ";" & rscumple("Nombre") & ";" rscumple("FNacimiento") & ";" & rscumple("edad") & ";"

Disculpa, pero se me pasó ponerte otra línea de código para que te actualice el cuadro de lista:

A continuación del Loop, añade:

Form_cumpleaños.lista6.Requery

¡Gracias!

Pero no pasa nada, capaz que estoy cometiendo un error y no me doy cuenta. Podría pasarte el código y lo revisas. Claro si no tienes problema.

Si claro, no hay problema en que me pases el código (o una copia de tu BD)

¡Gracias!  Muchas gracias hoy te mando una copia mil gracias

Perdon Como te envio la informacion, codigo y bd, disculpa mi ignorancia en este sitio

gracias

Me podes guiar o decirme como puedo enviarte la información, Gracias

El código lo puedes copiar de tu Bd y pegar, y la Bd la puedes subir a la nube( gdrive, Dropbox...) y pones aquí el enlace de descarga

Hola Aquí estoy de nuevo, lo que te puedo decir es que lo quiero mostrar en un listbox cuando entren a la base de datos para eso hago con el ejecutable de dicho formulario. Aquí pongo el Código Y TE MANDO EL ENLACE DE LA BASE DE DATOS. Muchas Gracias te lo agradezco

ENLACE:  https://www.dropbox.com/s/z0ax8ym1npvy2lq/Recordatorio%20_Cumplea%C3%B1os.accdb?dl=0 

del modulo

Public Function Cumpleaños()

Dim RsCumple As Recordset

Dim Consulta, Nombre As String

Dim FDiaNace, FMesNace, Dia, Mes, PCumple, CumpleHoy As Integer

Dim Hoy As Date

Set RsCumple = CurrentDb.OpenRecordset("SELECT Personal2017.[Apellido_y_Nombre], Personal2017.año,Personal2017.edad FROM Personal2017;")

 Do Until RsCumple.EOF

  Nombre = RsCumple![Apellido_y_Nombre]

' Extraigo de entre dos fecha los días y meses para después concatenarlos por separados y luego los comparo

    Consulta = RsCumple!Año  ' de la base de datos

    FDiaNace = DatePart("d", Consulta, Hoy)

    FMesNace = DatePart("m", Consulta, Hoy)

    PCumple = FDiaNace & FMesNace

    Año = Consulta

    Hoy = Now ' fecha actual

    Dia = DatePart("D", Hoy)

    Mes = DatePart("M", Hoy)

    CumpleHoy = Dia & Mes

     ' Cuando ya estan concatenados los comparo ente si, y si son iguales

     If CumpleHoy = PCumple Then  ' si se cumple es el CUMPLEAÑO

        Form_Cumpleaños.Lista6.AddItem RsCumple![Apellido_y_Nombre] & ";" & RsCumple!Año & ";" & RsCumple!edad

        If Form_Cumpleaños.Lista6.ListCount = 0 Then

            Form_Cumpleaños.Texto41 = "0"

        Else

            Form_Cumpleaños.Texto41 = Form_Cumpleaños.Lista6.ListCount - 1

        End If

      End If

      RsCumple.MoveNext

 Loop

      Form_Cumpleaños.Lista6.Requery

RsCumple.Close

Set RsCumple = Nothing

End Function

Por favor poné en comentario el recordset del botón. Y veras que no me carga. Gracias por tu tiempo.

Tienes varios errores:

1º/ El tipo de origen de la fila del cuadro combinado tiene que ser "Lista de valores". Se lo puedes cambiar bien en las propiedades directamente o hacerlo por código. Si lo tienes en "Tabla/Consulta" lo de AddItem no funciona.

2º/ Tienes que declarar las variables correctamente, si no, las comparaciones de los IFs no te funcionan correctamente.

3º/ Como te decía incialmente, es mucho más sencillo hacerlo por medio de una consulta, como la que te adjunto sin tanta vuelta de código...

Ahí te devuelvo la BD:

http://filebig.net/files/8iyvvNXLmi 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas