Control de campos obligatorios

Con el fin de controlar que los campos obligatorios en un formulario sean diligenciados por los usuarios, en el evento antes de catualizar del formulario coloque el siguiente código:
Private Sub Form_BeforeUpdate(Cancel As Integer)
  If Nz(Me.Nit, "") = "" Then
        MsgBox "Debe ingresar el Nit de la empresa", vbCritical, "Campo Obligatorio"
        Me.Nit.SetFocus
        Cancel = True
     Else
      If Nz(Me.Empresa, "") = "" Then
         MsgBox "Debe ingresar el nombre de la empresa", vbCritical, "Campo Obligatorio"
         Me.Empresa.SetFocus
         Cancel = True
        Else
        If Nz(Me.Direccion, "") = "" Then
           Cancel = True
           MsgBox "Debe ingresar la dirección de la empresa", vbCritical, "Campo Obligatorio"
           Me.Direccion.SetFocus
          Else
            If Nz(Me.Ciudad, "") = "" Then
               Cancel = True
               MsgBox "Debe ingresar la ciudad donde se encuentra ubicada la empresa", vbCritical, "Campo Obligatorio"
               Me.Ciudad.SetFocus
            End If
        End If
      End If
  End If
End Sub
Mi problema se genera al momento de adicionar un nuevo registro y el usuario no ha diligenciado alguno de estos campos, pues al dar click en el botón adicionar nuevo registro, el cual tiene el siguiente código (aclaro que no si esta bien o no la forma de adicionar un nuevo registro):
Private Sub Comando16_Click()
  DoCmd. RunCommand acCmdSaveRecord
  DoCmd. GoToRecord acDataForm, "Datos Empresa", acNewRec
End Sub
El programa me informa el campo que hace falta diligenciar, pero al momento de dar click el cuadro de dialogo que me informa el campo que falta, el programa se aborta indicándome que se ha generado el error 2105 y al dar click en depurar se sobre ilumina la linea: DoCmd. RunCommand acCmdSaveRecord
Podrías ayudarme con esto

1 respuesta

Respuesta
1
HE
Hola hay varios problemas
Te sugeriría que chequearas campo por campo pero es más restrictivo
Lo otro es que el evento before esta bien al botón solo ponle
    Me. Recordset. AddNew
Para agregar uno nuevo
a ver que tal va
Podrías explicarme cual es la diferencia entre las instrucciones me. Recorset.adnew y DoCmd.GoToRecord acDataForm, "Pagos", acNewRec
Una usa el recordset y la otra el from pero en realidad solo es más corta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas