Formulario con varios subformularios vinculados
Hola. Tengo un formulario en Access 2003 (que se llama AGENTES) con un subformulario vinculado (CARGOS). Lo que deseo hacer es incluir otro subformulario vinculado a el formulario AGENTES, el nuevo subformulario utiliza la misma tabla que que CARGOS, solo que mostraría otros datos que CARGOS no muestra. Es importante que sea formulario vinculado porque son muchos campos los que deben mostrarse.
Probé copiando el boton que vincula el formulario AGENTES con el subformulario CARGOS y modificando el código que muestra el generador de código VBA, pero cuando lo incluyo se confunden las funciones y ambos botones abren el mismo subformulario, o no lo abren (probe varias formas).
Este es el codigo original:
Option Compare Database
Sub Form_Current()
On Error GoTo Form_Current_Err
If ChildFormIsOpen() Then FilterChildForm
Form_Current_Exit:
Exit Sub
Form_Current_Err:
MsgBox Error$
Resume Form_Current_Exit
End Sub
Sub AlternarVínculo_Click()
On Error GoTo AlternarVínculo_Click_Err
If ChildFormIsOpen() Then
CloseChildForm
Else
OpenChildForm
FilterChildForm
End If
AlternarVínculo_Click_Exit:
Exit Sub
AlternarVínculo_Click_Err:
MsgBox Error$
Resume AlternarVínculo_Click_Exit
End Sub
Private Sub FilterChildForm()
If Me.NewRecord Then
Forms![CARGOS].DataEntry = True
Else
Forms![CARGOS].Filter = "[IDCARGO] = " & Me.[IDCARGO]
Forms![CARGOS].FilterOn = True
End If
End Sub
Private Sub OpenChildForm()
DoCmd.OpenForm "CARGOS"
If Not Me.[AlternarVínculo] Then Me![AlternarVínculo] = True
End Sub
Private Sub CloseChildForm()
DoCmd.Close acForm, "CARGOS"
If Me![AlternarVínculo] Then Me![AlternarVínculo] = False
End Sub
Private Function ChildFormIsOpen()
ChildFormIsOpen = (SysCmd(acSysCmdGetObjectState, acForm, "CARGOS") And acObjStateOpen) <> False
End Function
Mi pregunta sería entonces, que es lo que tengo que cambiar y donde lo tengo que agregar para que no ocurra lo que describo? O, si hay una forma mas facil de hacerlo :S
Probé copiando el boton que vincula el formulario AGENTES con el subformulario CARGOS y modificando el código que muestra el generador de código VBA, pero cuando lo incluyo se confunden las funciones y ambos botones abren el mismo subformulario, o no lo abren (probe varias formas).
Este es el codigo original:
Option Compare Database
Sub Form_Current()
On Error GoTo Form_Current_Err
If ChildFormIsOpen() Then FilterChildForm
Form_Current_Exit:
Exit Sub
Form_Current_Err:
MsgBox Error$
Resume Form_Current_Exit
End Sub
Sub AlternarVínculo_Click()
On Error GoTo AlternarVínculo_Click_Err
If ChildFormIsOpen() Then
CloseChildForm
Else
OpenChildForm
FilterChildForm
End If
AlternarVínculo_Click_Exit:
Exit Sub
AlternarVínculo_Click_Err:
MsgBox Error$
Resume AlternarVínculo_Click_Exit
End Sub
Private Sub FilterChildForm()
If Me.NewRecord Then
Forms![CARGOS].DataEntry = True
Else
Forms![CARGOS].Filter = "[IDCARGO] = " & Me.[IDCARGO]
Forms![CARGOS].FilterOn = True
End If
End Sub
Private Sub OpenChildForm()
DoCmd.OpenForm "CARGOS"
If Not Me.[AlternarVínculo] Then Me![AlternarVínculo] = True
End Sub
Private Sub CloseChildForm()
DoCmd.Close acForm, "CARGOS"
If Me![AlternarVínculo] Then Me![AlternarVínculo] = False
End Sub
Private Function ChildFormIsOpen()
ChildFormIsOpen = (SysCmd(acSysCmdGetObjectState, acForm, "CARGOS") And acObjStateOpen) <> False
End Function
Mi pregunta sería entonces, que es lo que tengo que cambiar y donde lo tengo que agregar para que no ocurra lo que describo? O, si hay una forma mas facil de hacerlo :S