Problema al cancelar un Msgbox

He adaptado un código que me hicieron para un formulario, en el que me pregunta si quiero crear un nuevo registro. El motivo de esto es porque genera automáticamente un código, de tal forma que evito que se genere si no voy a introducir nuevos registros. Bien, pues no sé por qué, pero cuando le digo que no (cancelo), me pregunta tres veces si estoy seguro. He mirado el código una y otra vez, pero no sé por qué lo hace. ¿Alguien sabe a qué se puede deber?

El código en cuestión es el siguiente:

Private Sub Form_Current()
On Error Resume Next
Dim vAutonum As Variant, vUltimo As Variant
Dim vAño As Long
If Me.NewRecord Then
        If MsgBox("Vas a generar un nuevo apunte con numeración automática" & vbCrLf & vbCrLf & "¿Quieres seguir?", vbYesNo) = vbYes Then
        Me.AñoApunte = Year(Date)
        'Le damos a la variable vAño el valor del año actual: Las dos cifras finales
        vAño = Val(Right(Year(Date), 2))
        'Tomamos el valor del campo NumJustifica
        vAutonum = Me.NumJustifica.Value
        'Si vAutonum no es nulo, es porque ya hay valor en el NumJustifica, entonces salimos del procedimiento
        If Not IsNull(vAutonum) Then Exit Sub
        'vUltimo es igual al Número de Registros del año +1, que se sumará abajo
        vUltimo = Nz(DCount("[NumJustifica]", "[01-E Compras]", "[AñoApunte] = " & Me.AñoApunte & " AND " & "Left(NumJustifica,1) = '" & "V" & "'"), 0)
        'Si vUltimo es nulo, es porque no hay ningún NumJustifica, entonces le damos valor 0
        If IsNull(vUltimo) Then
                vUltimo = 0
        End If
        'Sumamos 1 al valor anterior
        vUltimo = vUltimo + 1
        Me.NumJustifica.Value = "V-" & vAño & "-" & Format(vUltimo, "00000")
        'Ponemos la Fecha de hoy como Fecha de la Factura. Puede Cambiarse, y si con ello cambia el trimestre lo cambiará
        Me.Fecha_Factura = Date
        Else
                'Si la respuesta a la Pregunta ha sido No
                Me.Undo
                DoCmd.GoToRecord , , acPrevious
                Exit Sub
        End If
End If
End Sub

1 Respuesta

Respuesta
1

Diego: Creo que es repetición de otra pregunta anterior tuya, en la que te comento que simplemente se debe a como funciona Access y en que eventos se repiten los mensajes.

Error triple en una ventana para crear un nuevo registro

Dale si quieres una mirada a éste otro enlace.

https://msdn.microsoft.com/es-es/library/office/jj249049.aspx 

Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas