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