Para obtener una versión de este artículo para Microsoft Word 97, vea 253552.
Resumen
En este artículo se describe cómo crear y utilizar un cuadro combinado UserForm como macro de entrada para que un campo de formulario con texto muestre información de una base de datos de Microsoft Access. Esta macro puede utilizarse para evitar la limitación a 25 elementos de los campos de formulario desplegables.
Para obtener más información acerca de cómo hacerlo cuando no está utilizando una base de datos de Microsoft Access, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
198561 Cómo crear un cuadro combinado que contenga más de 25 elementos
306258 Cómo crear un cuadro combinado que contenga más de 25 elementos en Word 2002
Más información
Microsoft proporciona ejemplos de programación solamente como ilustración, sin ninguna garantía ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. En este artículo se da por supuesto que ya conoce el lenguaje de programación que se muestra, así como las herramientas empleadas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas.
Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
212536 Cómo ejecutar código de ejemplo incluido en artículos de Knowledge Base en Office 2000
En la plantilla, utilice los pasos siguientes.
NOTA: para cerrar una ventana (por ejemplo, una ventana de código o la ventana Propiedades), haga clic en la X situada en la esquina superior derecha de la ventana.
Crear el cuadro combinado UserForm
-
En Microsoft Office Word 2003 y en versiones anteriores, seleccione Macro en el menú Herramientas y haga clic en Editor de Visual Basic.
En Word 2007, haga clic en la ficha Programador y, a continuación, haga clic en Editor de Visual Basic. -
En la ventana Proyecto, seleccione TemplateProject.
NOTA: si la ventana Proyecto no aparece, haga clic en Explorador de proyectos en el menú Ver. -
En el menú Insertar, haga clic en UserForm. Deben aparecer un nuevo formulario UserForm y el Cuadro de herramientas Controles. Haga clic con el botón secundario dentro del control UserForm y, a continuación, haga clic en Ver código en el menú contextual. Agregue el código siguiente al evento Initialize:
Option Explicit
'Define Variables
Private Sub UserForm_Initialize()
Dim dbDatabase As Database
Dim rsNorthwind As Recordset
Dim i As Integer
Dim aResults()
' This code activates the Database connection. Change
' the path to reflect your database.
Set dbDatabase = OpenDatabase("C:\My Documents\NorthWind.mdb")
' This code opens the Customers table. Change the Table
' to reflect the desired table.
Set rsNorthwind = dbDatabase.OpenRecordset("Customers", dbOpenSnapshot)
i = 0
With rsNorthwind
' This code populates the combo box with the values
' in the CompanyName field.
Do Until .EOF
ComboBox1.AddItem (i)
ComboBox1.Column(0, i) = .Fields("CompanyName")
.MoveNext
i = i + 1
Loop
End With
End Sub -
En el menú Herramientas, haga clic en Referencias.
-
Haga clic en Microsoft DAO 3.6 Object Library.
-
Haga clic en Aceptar para cerrar el cuadro de diálogo Referencias.
-
Cierre la ventana de código.
-
Haga clic con el botón secundario en el formulario UserForm y, después, haga clic en Propiedades en el menú contextual. En la ficha Alfabético, cambie el nombre (Nombre) a frmcombo y, a continuación, cambie el nombre Título a Microsoft Word. Cierre la ventana Propiedades de UserForm.
-
En la ficha Controles del cuadro de herramientas, seleccione ComboBox e insértelo en el formulario UserForm. Haga clic con el botón secundario en el control ComboBox y, a continuación, haga clic en Ver código en el menú contextual. Cambie el código de ComboBox a:
Private Sub ComboBox1_Change()
ActiveDocument.FormFields("Text1").Result = ComboBox1.Value
End SubNOTA: Text1 es el nombre de marcador del campo de formulario con texto que insertará en la plantilla en el paso 2 del procedimiento "Crear el campo de formulario con texto", más adelante en este artículo.
-
Cierre la ventana de código.
-
En la ficha Controles del cuadro de herramientas, seleccione el control CommandButton e insértelo en el formulario UserForm como un botón Cerrar. Haga clic con el botón secundario en CommandButton y, a continuación, haga clic en Ver código en el menú contextual. Cambie el código de CommandButton a:
Private Sub Cmdclose_Click()
End
End Sub -
Cierre la ventana de código.
-
Haga clic con el botón secundario en CommandButton y, después, haga clic en Propiedades en el menú contextual. En la ficha Alfabético, cambie el nombre (Nombre) a Cmdclose y, a continuación, cambie el nombre Título a Cerrar. Cierre la ventana Propiedades de CommandButton.
El cuadro combinado UserForm se ha completado. Continúe en el procedimiento "Crear la macro de entrada".
Crear la macro de entrada
-
En la ventana Proyecto, seleccione TemplateProject.
-
En el menú Insertar, haga clic en Módulo. Aparecerá una hoja de código de módulo en blanco.
-
Escriba el código siguiente:
Sub gocombobox()
frmcombo.Show
End Sub
La macro de entrada se ha completado. En el menú Archivo, haga clic en Cerrar y volver a Microsoft Word.
Crear el campo de formulario con texto
-
En la plantilla, en el menú Ver, seleccione Barras de herramientas y haga clic en Formularios.
-
Sitúe el punto de inserción donde desee que se inserte el resultado de la lista desplegable. En la barra de herramientas Formularios, haga clic en Campo de formulario con texto (el primer botón de la izquierda). El Campo de formulario con texto se insertará en la plantilla sombreado en gris.
NOTA: si ve el campo {FORMTEXT}, presione Alt+F9 para desactivar los códigos de campo. -
Haga clic con el botón secundario en Campo de formulario con texto y, a continuación, haga clic en Propiedades en el menú contextual.
-
En el cuadro de diálogo Opciones de campo de formulario con texto, bajo la sección Ejecutar macro, seleccione la macro gocombobox en el cuadro combinado Entrada:.
NOTA: asegúrese de que el nombre de marcador del campo de formulario con texto sea igual al que especificó en el paso 9 del procedimiento "Crear el cuadro combinado UserForm" anteriormente en este artículo. -
En la barra de herramientas Formularios, haga clic en Proteger formulario.
-
Guarde y cierre la plantilla.
Para utilizar la plantilla en Word 2003 y en veriones anteriores, haga clic en Nuevo en el menú Archivo. Seleccione la plantilla y haga clic en Aceptar.
Para utilizar la plantilla en Word 2007, haga clic en el botón de Microsoft Office, haga clic en Nuevo, seleccione la plantilla y haga clic en Crear.
Aparecerá un documento nuevo basado en la plantilla. Cuando presione la tecla Tab para desplazarse al campo de formulario con texto aparecerá el formulario UserForm que contiene el ComboBox con los elementos.