Listbox para word

Como puede insertar un listbox en una tabla word, tanto como con una lista como con una BD

1 respuesta

Respuesta
1
Seguro que habrá más de una forma de hacer tal cosa. Pero por el momento esta fue la mejor manera que encontré haciéndolo con una lista, más adelante te explicare como hacerlo con una bd.
Vas al menu ver -> barra de herramientas -> y seleccionas formulario. Allí te aparece una barra de herramientas en la que dispones de distintas opciones para crear formulario en word.. entre ellas podrás encontrar "campo de lista desplegable". Seleccionas esta opción y un campo sera insertado en donde estaba posicionado el cursor. Haces doble click sobre él para que aparezca el cuadro de dialogo de opciones. Simplemente vas escribimiento los elementos que quieres colocar y le das al botón agregar. Cuando hayas terminado de agregar los elementos simplemente das click en aceptar. Para que la lista se haga activa, tienes que hacer click sobre el candado "proteger formulario" que se encuentra al final de la barra que antes había aparecido. Ahora ya tienes tu lista desplegable funcionando.
Para hacer la lista desde una base de datos la cosas se "complica" un poco (no mucho). Yo lo hice acuendiendo a la realización de un pequeño macro que facilitara las cosas.
Antes de ejecutarlo asegurate de hacer lo siguiente: estando en el editor de visual basic (alt + F11) vas al menu herramientas -> seleccionas referencias y de la "gran" lista de elementos que aparece allí deberás marcar "microsoft DAO [version, en mi caso 3.6] object library". Haces click en aceptar. Y ahora si lo puedes ejecutar
------------
Sub lista()
' Macro creado por FEckEZ
Selection.FormFields.Add Range:=Selection.Range, Type:=wdFieldFormDropDown
Selection.PreviousField.Select
With Selection.FormFields(1)
.Name = "Listadesplegable1"
.EntryMacro = ""
.ExitMacro = ""
.Enabled = True
.OwnHelp = False
.HelpText = ""
.OwnStatus = False
.StatusText = ""
End With
' Asegurate de cambiar la ruta que se ve abajo, por la correcta. Aquí se hace referencia a la bd
Set Db = OpenDatabase(Name:="C:\Documents and Settings\Administrador\Mis documentos\bd1.mdb")
' Asegurate de cambiar el nombre "tabla" por el verdadero nombre de la tabla en el que están los datos
Set rs = Db.OpenRecordset(Name:="tabla")
Do Until rs.EOF
campoactual = rs.Fields(0).Value
Selection.FormFields("Listadesplegable1").DropDown.ListEntries.Add Name:=campoactual
rs.MoveNext
Loop
Rs. Close
Db. Close
End Sub
---------------
Al ejecutar el macro, una nueva lista sera creada en donde tenias posicionado el cursor. Ahora solo tienes que hacer click en el botón "proteger formulario" que ya había mencionado anteriormente. Y la lista estará completa.
El macro es un poco funcional y adoptado a mi medida de pruebas. Quizás tu necesites cambiarle algunas cosas y adoptarlo a como esta estructura tu base de datos pues eso no lo puedo deducir yo. Asegurate de cambiar la ruta y el nombre de la tabla. En la macro hay comentarios que indican lo que debes cambiar.
Si quieres personalizar aun más la consulta de la bd, te recomiendo una búsqueda de un tutorial de DAO, tiene muchas posibilidades de integración con aplicaciones.
Ahh, lo del macro se aplica a una base en microsoft access, si tu la tienes en otra, postgres, mysql, oracle, m$sql o alguna otra... las cosas pueden cambiar bastante.
Por ultimo, advertirte que no me agrada mucho esto de los listbox dentro de un documento de word. Me parecen de lo peor, prefiero excel o access para esto dado que tienen un poco más de soporte y más funcionalidad.
Bye y mucha suerte.
--------------
A preguntas cortas, respuestas largar :þ

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas