Access - Añadir entradas a formulario

 
Vista:

Añadir entradas a formulario

Publicado por Marco (13 intervenciones) el 24/01/2006 11:42:37
Hola a todos,

Tengo un formulario en el cual me cree un SpinButton en el cual voy subiendo la cantidad de un procducto, lo que quiero hacer es que cuando sea mas de uno me abra otro cuadro de texto y asi crear tantas entradas como cantidad ponga en el SpinButton, esto se puede hacer?...
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
Imágen de perfil de Alejandro

Crear cuadros de texto dinámicos según el valor de un SpinButton

Publicado por Alejandro (4142 intervenciones) el 20/06/2023 16:18:46
Sí, Marco, es posible crear cuadros de texto dinámicamente en un formulario de Access según el valor seleccionado en un SpinButton. Para lograrlo, puedes utilizar código VBA para agregar y eliminar los cuadros de texto según sea necesario. A continuación, te proporciono un ejemplo de cómo puedes hacerlo:

1. Agrega un SpinButton a tu formulario: Abre el formulario en el modo de diseño y agrega un control de tipo SpinButton desde la pestaña "Diseño" en la cinta de opciones. Ajusta las propiedades del SpinButton según tus necesidades, como el rango mínimo y máximo, el incremento, etc.

2. Crea un procedimiento en el evento Change del SpinButton: Haz doble clic en el SpinButton para abrir el editor de código VBA y crea un procedimiento en el evento Change del SpinButton. Este procedimiento se ejecutará cada vez que se cambie el valor del SpinButton.

3. Dentro del procedimiento Change, agrega código VBA para crear o eliminar los cuadros de texto: Utiliza estructuras de control, como bucles, para agregar o eliminar los cuadros de texto según el valor seleccionado en el SpinButton. Puedes usar la función "Add" para crear nuevos cuadros de texto y la función "RemoveControl" para eliminarlos.

Aquí tienes un ejemplo de cómo podría ser el código VBA:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Sub SpinButton1_Change()
    Dim numCuadros As Integer
    Dim i As Integer
 
    numCuadros = SpinButton1.Value
 
    ' Eliminar los cuadros de texto existentes
    For i = Me.Controls.Count - 1 To 0 Step -1
        If Left(Me.Controls(i).Name, 9) = "txtCampo_" Then
            Me.Controls.RemoveControl Me.Controls(i).Name
        End If
    Next i
 
    ' Crear nuevos cuadros de texto según el valor del SpinButton
    For i = 1 To numCuadros
        Dim txt As TextBox
        Set txt = Me.Controls.Add("Forms.TextBox.1", "txtCampo_" & i)
        txt.Left = 100
        txt.Top = 100 + (i - 1) * 30
        ' Ajusta otras propiedades según tus necesidades
    Next i
End Sub

En este ejemplo, se crean cuadros de texto con nombres como "txtCampo_1", "txtCampo_2", etc., según el valor seleccionado en el SpinButton. Puedes ajustar las posiciones, propiedades y nombres de los cuadros de texto según tus requisitos.

Recuerda que es importante administrar la eliminación de los cuadros de texto existentes antes de agregar los nuevos, para evitar conflictos y errores.

Espero que este ejemplo te ayude a lograr el resultado deseado. ¡Buena suerte con tu formulario!
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