[MOVIDO] formulario emergente borra los datos del formulario principal

Dudas sobre código
tivi
Nivel 2
Mensajes: 33
Registrado: Vie Ago 25, 2017 10:40 am

[MOVIDO] formulario emergente borra los datos del formulario principal

Mensajepor tivi » Dom Sep 03, 2017 8:40 pm

Tengo un formulario principal para el alta de activos, "frmAltaActivosPropios", en el que mediante un combobox registro el tipo de artículo. Si el artículo no está en la lista, se abre un formulario emergente,"frmAltaArticulosVinculada", para el alta del nuevo articulo.
Todo funciona bien si las opciones elegidas son generar nuevo artículo y guardar cambios.
Pero si cancelo el alta del artículo desde el formulario "frmAltaArticulosVinculada", me borra los datos que tuviera introducidos hasta entonces en el formulario "frmAltaActivosPropios"
El código que tengo en el botón que abre "frmAltaArticulosVinculada" desde el "frmAltaActivosPropios" es el siguiente:

Código: Seleccionar todo

Private Sub filtraArticulos_Click()
    If Not IsNull(cmbEpigrafe) And Not IsNull(cmbClase) And Not IsNull(cmbSubClase) Then
        DoCmd.OpenForm "frmAltaArticulosVinculada", , , , , , Me.cmbEpigrafe & ";" & Me.cmbClase & ";" & Me.cmbSubClase
    Else
        MsgBox ("Debes clasificar primero el artículo para poder darle de alta"), vbInformation
        Me.cmbEpigrafe.SetFocus
        Exit Sub
    End If
End Sub

El código que tengo en el evento al no estar en la lista es este:

Código: Seleccionar todo

Private Sub cmbElemento_NotInList(NewData As String, Response As Integer)
On Error GoTo errorarticulo
If MsgBox("¿Quieres agregar un nuevo artículo?" & vbCr & vbCr, vbExclamation + vbDefaultButton2 + vbYesNo) = vbYes Then
        If Not IsNull(cmbEpigrafe) And Not IsNull(cmbClase) And Not IsNull(cmbSubClase) Then
               DoCmd.OpenForm "frmAltaArticulosVinculada", , , , , , Me.cmbEpigrafe & ";" & Me.cmbClase & ";" & Me.cmbSubClase
                ElseIf IsNull(cmbEpigrafe) Then
                        MsgBox ("Completa el epígrafe")
                        cmbEpigrafe.SetFocus
                    ElseIf IsNull(cmbClase) Then
                            MsgBox ("Completa la clase")
                            cmbClase.SetFocus
                        ElseIf IsNull(cmbSubClase) Then
                                MsgBox ("Completa la subclase")
                                cmbSubClase.SetFocus
            Exit Sub
        End If
    Else
        Me.cmbElemento.Requery
End If

errorarticulo:
If Err.Number = 0 Then
'    MsgBox ("Comprueba el texto que has escrito")
    Undo
    Response = acDataErrContinue
    Err.Clear
End If
End Sub


Ahora, el código que tengo en el "frmAltaArticulosVinculada" es el siguiente:

En el botón guardar:

Código: Seleccionar todo

Private Sub guardarRgto_Click()
On Error GoTo guardarRgto
 
 If Not IsNull(cmb_epigrafe) And Not IsNull(cmb_clase) And Not IsNull(cmb_subclase) And Not IsNull(NOM_ELEMENTO) Then
         DoCmd.RunCommand acCmdSaveRecord
         Forms!frmAltaActivosPropios!cmbElemento.Requery
         MsgBox "REGISTRO GUARDADO CORRECTAMENTE. GRACIAS", vbInformation
         DoCmd.Close acForm, "frmAltaArticulosVinculada"
     ElseIf IsNull(cmb_epigrafe) Or IsNull(cmb_clase) Or IsNull(cmb_subclase) Then
             MsgBox "PRIMERO DEBES CLASIFICAR EL ARTICULO DESDE EL FORMULARIO. VUELVE A INTENTARLO", vbInformation
             Me.Undo
             DoCmd.Close
         ElseIf IsNull(NOM_ELEMENTO) Then
                 MsgBox "Debes describir el elemento", vbCritical, "Atencion"
     Exit Sub
End If
   
guardarRgto:
    If Error = 2046 Then
        MsgBox "NO HAS REALIZADO NINGUN ALTA.", vbInformation
        DoCmd.Close acForm, "frmAltaArticulosVinculada", vbInformation
        Exit Sub
    End If
Resume guardarRgto

End Sub

y en el botón cancelar, éste:

Código: Seleccionar todo

Private Sub CancelarRgto_Click()
   Me.Undo
   DoCmd.Close
End Sub
Última edición por Sveinbjorn el Dom Sep 03, 2017 8:54 pm, editado 1 vez en total.
Razón: Publicado en foro incorrecto

Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado