Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

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

  1. 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.

  2. En la ventana Proyecto, seleccione TemplateProject.

    NOTA: si la ventana Proyecto no aparece, haga clic en Explorador de proyectos en el menú Ver.

  3. 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
  4. En el menú Herramientas, haga clic en Referencias.

  5. Haga clic en Microsoft DAO 3.6 Object Library.

  6. Haga clic en Aceptar para cerrar el cuadro de diálogo Referencias.

  7. Cierre la ventana de código.

  8. 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.

  9. 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 Sub

    NOTA: 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.

  10. Cierre la ventana de código.

  11. 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
  12. Cierre la ventana de código.

  13. 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

  1. En la ventana Proyecto, seleccione TemplateProject.

  2. En el menú Insertar, haga clic en Módulo. Aparecerá una hoja de código de módulo en blanco.

  3. 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

  1. En la plantilla, en el menú Ver, seleccione Barras de herramientas y haga clic en Formularios.

  2. 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.

  3. 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.

  4. 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.

  5. En la barra de herramientas Formularios, haga clic en Proteger formulario.

  6. 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.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×