Access - formularios multiples

 
Vista:

formularios multiples

Publicado por Herumel (2 intervenciones) el 03/07/2006 22:28:19
Buenas.

Tengo el siguiente problema, además de no demasiados conocimientos, como es evidente.

Estoy intentando generar un formulario con acces, de manera que en la primera pagina me exponga una casilla de texto que se ha de rellenar con un número, y una vez hecho esto me genere tantas paginas nuevas de otro modelo de formulario como el número indique, es por un lado, y por
otro, que en dichas paginas existan unos campos de texto de manera que, cada vez que los rellene y pulse (Enter) debajo de genere otro automaticamente, y una vez acabado pinchar en un boton para guardar, además, de que todas estas "columnas" deben de ser presentadas en excel, aun que creo que eso simplemente con hacer un botón con analizar me servirá aun que no valga solo para eso.

Muchas gracias de antemano, seguiré el hilo, e intentaré alludar a quien pueda, saludos.
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 formulario para generar páginas y campos dinámicos con exportación a Excel

Publicado por Alejandro (4142 intervenciones) el 20/07/2023 20:19:50
Hola, Herumel.

Entiendo lo que estás tratando de hacer y te ayudaré a lograrlo paso a paso. Vamos a dividir el proceso en diferentes etapas:

Etapa 1: Crear el formulario principal
1. Abre Access y crea un nuevo formulario en blanco.
2. Agrega una casilla de texto en la primera página del formulario. Esta casilla será donde el usuario ingrese el número de páginas que desea generar.
3. Agrega un botón al final de la página para que el usuario pueda continuar al siguiente paso.

Etapa 2: Generar páginas nuevas
1. En el evento "Al hacer clic" del botón creado en la etapa anterior, escribe el siguiente código VBA para generar páginas nuevas de otro modelo de formulario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub BotonContinuar_Click()
    Dim numPaginas As Integer
    numPaginas = Val(Me.CasillaTextoNumeroPaginas.Value) ' Obtiene el número ingresado en la casilla de texto
 
    If numPaginas <= 0 Then
        MsgBox "Ingresa un número válido de páginas.", vbExclamation
        Exit Sub
    End If
 
    Dim i As Integer
    For i = 1 To numPaginas
        DoCmd.OpenForm "NombreFormularioNuevo", acNormal, , , , acDialog, i ' Cambia "NombreFormularioNuevo" por el nombre del formulario que deseas abrir para cada página
    Next i
End Sub

2. En el código anterior, asegúrate de reemplazar "NombreFormularioNuevo" con el nombre del formulario que deseas abrir para cada página nueva. Este formulario debería contener los campos de texto donde el usuario ingresará la información en cada página.

Etapa 3: Generar campos de texto dinámicamente
1. En el formulario "NombreFormularioNuevo" (el formulario que se abre para cada página nueva), agrega un campo de texto y nómbralo "CampoTexto1" (puedes agregar más campos de texto si es necesario).
2. En el evento "Al hacer clic" del campo de texto "CampoTexto1", escribe el siguiente código VBA para generar automáticamente un nuevo campo de texto debajo de este cuando el usuario presiona "Enter":

1
2
3
4
5
6
7
8
9
Private Sub CampoTexto1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then ' 13 es el código ASCII para la tecla "Enter"
        Dim nuevoCampo As Control
        Set nuevoCampo = Me.Controls.Add("Forms.Textbox.1", , , , , , "CampoTexto" & Me.Controls.Count + 1)
        nuevoCampo.Top = Me.Controls("CampoTexto" & Me.Controls.Count).Top + Me.Controls("CampoTexto" & Me.Controls.Count).Height + 10
        nuevoCampo.Left = Me.Controls("CampoTexto" & Me.Controls.Count).Left
        nuevoCampo.SetFocus
    End If
End Sub

Etapa 4: Guardar en Excel
1. Para guardar los datos ingresados en Access en un archivo de Excel, crea un botón en el formulario principal.
2. En el evento "Al hacer clic" del botón, escribe el siguiente código VBA para exportar los datos a Excel:

1
2
3
Private Sub BotonGuardarEnExcel_Click()
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "NombreTabla", "C:\Ruta\Archivo.xlsx", True ' Cambia "NombreTabla" por el nombre de la tabla que contiene los datos a exportar y "C:\Ruta\Archivo.xlsx" con la ruta y nombre del archivo Excel de destino.
End Sub

Recuerda cambiar "NombreTabla" por el nombre de la tabla que contiene los datos a exportar y "C:\Ruta\Archivo.xlsx" con la ruta y nombre del archivo Excel de destino.

¡Con esto, deberías tener un formulario en Access que te permita ingresar un número, generar páginas nuevas con campos de texto dinámicos, y guardar los datos ingresados en un archivo de Excel! Espero que esta solución te sea útil y te ayude a lograr lo que buscas.

¡Buena suerte y saludos!
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