Access - OpenForm

 
Vista:

OpenForm

Publicado por Juan Carlos (1 intervención) el 26/04/2005 03:22:58
Hola a todos. Tengo un formulario con un botón para abrir otro formulario con campos relacionados e ingresarle unos datos. Estoy usando la función DoCmd.OpenForm. El problema es que los campos relacionados son 3 (2 tipo texto y 1 numérico), y no se cómo pasarle los argumentos a la función OpenForm.
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

Pasando argumentos a la función OpenForm para campos relacionados

Publicado por Alejandro (4142 intervenciones) el 01/06/2023 16:29:29
Para pasar argumentos a la función `DoCmd.OpenForm` en Access y trabajar con campos relacionados, puedes utilizar la propiedad `OpenArgs`. Aquí te muestro un ejemplo de cómo hacerlo:

1. Abre el formulario principal donde tienes el botón para abrir el otro formulario.
2. En el evento del botón que abre el formulario secundario, escribe el siguiente código VBA:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub btnAbrirFormulario_Click()
    Dim argumentos As String
    Dim formulario As Form
 
    ' Obtén los valores de los campos relacionados
    Dim campoTexto1 As String
    Dim campoTexto2 As String
    Dim campoNumerico As Integer
 
    campoTexto1 = Me.NombreCampoTexto1.Value
    campoTexto2 = Me.NombreCampoTexto2.Value
    campoNumerico = Me.NombreCampoNumerico.Value
 
    ' Construye una cadena con los argumentos separados por un delimitador
    argumentos = campoTexto1 & ";" & campoTexto2 & ";" & campoNumerico
 
    ' Abre el formulario secundario y pasa los argumentos
    DoCmd.OpenForm "NombreFormularioSecundario", , , , , , argumentos
End Sub

3. Reemplaza `btnAbrirFormulario_Click` con el nombre del evento y `NombreCampoTexto1`, `NombreCampoTexto2` y `NombreCampoNumerico` con los nombres reales de los campos en tu formulario principal.
4. Asegúrate de reemplazar `NombreFormularioSecundario` con el nombre real del formulario secundario al que deseas pasar los argumentos.

En el formulario secundario, puedes recuperar los argumentos pasados ​​utilizando el evento `Form_Load` o cualquier otro evento relevante. Aquí tienes un ejemplo de cómo acceder a los argumentos en el formulario secundario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Form_Load()
    Dim argumentos As String
    Dim args() As String
 
    ' Obtén los argumentos pasados desde el formulario principal
    argumentos = Me.OpenArgs
 
    ' Divide los argumentos en un array
    args = Split(argumentos, ";")
 
    ' Asigna los valores a los campos relacionados en el formulario secundario
    Me.NombreCampoTexto1.Value = args(0)
    Me.NombreCampoTexto2.Value = args(1)
    Me.NombreCampoNumerico.Value = CInt(args(2))
End Sub

Asegúrate de reemplazar `NombreCampoTexto1`, `NombreCampoTexto2` y `NombreCampoNumerico` con los nombres reales de los campos en tu formulario secundario.

Con esta solución, puedes pasar los argumentos de los campos relacionados a través de la propiedad `OpenArgs` y utilizarlos para establecer los valores en el formulario secundario.
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