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 de Jacinto Trillo Jareño
1
