Access - Problemas con registros nuevos en subformularios

 
Vista:

Problemas con registros nuevos en subformularios

Publicado por kyo435 (1 intervención) el 18/04/2006 15:54:13
Saludos
Tengo un problema con los registros nuevos de un subformulario..explico rapido su estructura:
un formulario con 4 cuadros combinados, boton nuevo registro y un subformulario en columnas, sucede que al seleccionar valores en los cuadros combinados el subformulario se carga con los registros seleccionados y lo hace bien, precionas el boton nuevo y te crea si efectivamente un nuevo registro pero...................con datos de la consulta hecha por los cuadros combinados ademas de colocar otro registro nuevo marcado con un *
¿Como podria evitar que los registros nuevos sean cargados con los datos de la consulta anterior sin borrar lo que han filtrado los cuadros combinados en el subformulario?

Este es mi ultimo cuadro combinado:

Private Sub Cuadro_combinado10_AfterUpdate()


Dim strSQLSF As String

strSQLSF = " SELECT * FROM LIBRANZAS "
strSQLSF = strSQLSF & " WHERE LIBRANZAS.Activo = '" & Cuadro_combinado4 & "' And "
strSQLSF = strSQLSF & " LIBRANZAS.FechaInicio = #" & Format(Me![Cuadro combinado6], "mm\/dd\/yyyy") & "# And "
strSQLSF = strSQLSF & "LIBRANZAS.FechaTermino = #" & Format(Me![Cuadro combinado8], "mm\/dd\/yyyy") & "# And "
strSQLSF = strSQLSF & "LIBRANZAS.Descripcion = '" & Cuadro_combinado10 & "'"

Me!menu.LinkChildFields = ""
Me!menu.LinkMasterFields = ""

Me!menu.LinkChildFields = "Activo;FechaInicio;FechaTermino;Descripcion"
Me!menu.LinkMasterFields = "Activo;FechaInicio;FechaTermino;Descripcion"
Me.RecordSource = strSQLSF
Me.Requery

End Sub

y este mi boton nuevo registro:

Private Sub Comando20_Click()

Me.menu.Form.AllowAdditions = True
DoCmd.GoToControl "menu"
DoCmd.GoToRecord , , acNewRec
Me!menu!Descripcion = ""
Me!menu!FechaInicio = ""
Me!menu!FechaTermino = ""
Me!menu!Diferencia = ""
Me!menu!Autorizado = ""
Me!menu!Comentario = ""
Me!menu!Objetivo = ""
Me!menu!Alcances = ""

Me.AllowEdits = True

End Sub
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

Evitar carga de datos de consulta anterior en registros nuevos de subformulario

Publicado por Alejandro (4142 intervenciones) el 17/07/2023 18:53:00
Para evitar que los registros nuevos en el subformulario se carguen con los datos de la consulta anterior sin borrar los filtros realizados en los cuadros combinados, puedes seguir estos pasos:

1. En el evento AfterUpdate del último cuadro combinado (Cuadro_combinado10), realiza la asignación de la propiedad RecordSource del formulario principal (formulario contenedor del subformulario) solo si hay datos seleccionados en los cuadros combinados anteriores. De lo contrario, mantén el RecordSource actual del formulario.

1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Cuadro_combinado10_AfterUpdate()
    If Not IsNull(Me.Cuadro_combinado4) And Not IsNull(Me.Cuadro_combinado6) And Not IsNull(Me.Cuadro_combinado8) Then
        Dim strSQLSF As String
        strSQLSF = "SELECT * FROM LIBRANZAS "
        strSQLSF = strSQLSF & "WHERE LIBRANZAS.Activo = '" & Me.Cuadro_combinado4 & "' And "
        strSQLSF = strSQLSF & "LIBRANZAS.FechaInicio = #" & Format(Me![Cuadro_combinado6], "mm\/dd\/yyyy") & "# And "
        strSQLSF = strSQLSF & "LIBRANZAS.FechaTermino = #" & Format(Me![Cuadro_combinado8], "mm\/dd\/yyyy") & "# And "
        strSQLSF = strSQLSF & "LIBRANZAS.Descripcion = '" & Me.Cuadro_combinado10 & "'"
        Me.RecordSource = strSQLSF
        Me.Requery
    End If
End Sub

2. En el evento Click del botón "Nuevo registro" (Comando20), asegúrate de que la propiedad AllowAdditions del subformulario (menu) esté habilitada y utiliza el método GoToRecord para crear un nuevo registro sin afectar los filtros existentes en los cuadros combinados.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Comando20_Click()
    Me.menu.Form.AllowAdditions = True
    DoCmd.GoToControl "menu"
    DoCmd.GoToRecord , , acNewRec
    Me.menu.Form!Descripcion = ""
    Me.menu.Form!FechaInicio = ""
    Me.menu.Form!FechaTermino = ""
    Me.menu.Form!Diferencia = ""
    Me.menu.Form!Autorizado = ""
    Me.menu.Form!Comentario = ""
    Me.menu.Form!Objetivo = ""
    Me.menu.Form!Alcances = ""
    Me.AllowEdits = True
End Sub

Al utilizar esta implementación, los registros nuevos creados a través del botón "Nuevo registro" no se cargarán con los datos de la consulta anterior mientras se conserven los filtros aplicados en los cuadros combinados anteriores.

Espero que esto resuelva tu problema.
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