No entiendo bien lo que pasa

Dudas sobre código
JoseraGR
Nivel 1
Mensajes: 8
Registrado: Jue Jul 30, 2020 12:45 pm

No entiendo bien lo que pasa

Mensajepor JoseraGR » Mié Nov 04, 2020 7:56 pm

Buenas

Tengo un misterio en la BD que estoy realizando que no acabo de pillar. Formulario con botón de comandos para "Nuevo Modelo" y "Salir". Utilizo el siguiente código:

Código: Seleccionar todo

 Sub cmdNuevoModelo_Click()
  'Guardamos el registro
  DoCmd.RunCommand acCmdSaveRecord
  'Llamamos al procedimiento MatriculaT_CV
  Call ReferenciaT_ModeloDigital
  'Situamos el formulario para introducir un nuevo registro
  DoCmd.RunCommand acCmdRecordsGoToNew
  'Situamos el foco del subformulario en el campo Longitud
  Forms!F_Modelo!SubFrmF_Modelo.Form!Longitud.SetFocus
  'Situamos el foco del formulario en el campo NombreModelo
  Me.NombreModelo.SetFocus
End Sub

Private Sub cmdSalirFormulario_Click()
  'Declaramos variables
  Dim Resp As Integer
  'Comprobamos que no tenemos valor nulo en el campo Categoria
  If IsNull(Me.Referencia.Value) Then
    'Se muestra mensaje de confirmación
    Resp = MsgBox("¿Quiere salir sin guardar el registro?", vbQuestion + vbYesNo + vbDefaultButton2, "SALIR")
    'Según seleccion elejida
    If Resp = vbNo Then
      'Respuesta es NO se situa el foco en el formulario
      Me.NombreModelo.SetFocus
    Else
      'Cerramos el formulario
      DoCmd.Close acForm, "F_Modelo"
    End If
  Else
    'Guardamos el registro
    DoCmd.RunCommand acCmdSaveRecord
    'Llamamos a la subrutina para comprobar la digitalizacion o no del modelo
    Call ReferenciaT_ModeloDigital
    'Cerramos el formulario
    DoCmd.Close acForm, "F_Modelo"
  End If
End Sub

Private Sub ReferenciaT_ModeloDigital()
  'Declaramos variables
  Dim vDigital As Boolean
  Dim vReferencia As String
  Dim miSql As String
  'Obtenemos el valor de la referencia del modelo
  vReferencia = Me.Referencia.Value
  'Obtener si esta digitalizado o no el material
  vDigital = Me!SubFrmF_Modelo.Form!Digital.Value
  'Segun el tipo de material
  If vDigital = True Then
    'Mostramos mensaje de indicacion obligatoria de relleno campos CV1 y DCC
    MsgBox "Al ser un modelo digitalizado es necesario rellenar los campos DECODER y CV1 en el formulario DIGITAL", vbOKOnly + vbExclamation, "MODELO DIGITALIZADO"
    'Construimos la en SQL para insertar Refenecia T_ModeloDigital
    miSql = "INSERT INTO T_ModeloDigital(Referencia) VALUES ('" & vReferencia & "')"
    'Ejecutamos la expresión de SQL
    DoCmd.RunSQL miSql
    'Abrimos el formulario F_Digital con la Referencia seleccionada
    DoCmd.OpenForm "F_Digital", acNormal, , "[Referencia] ='" & vReferencia & "'"
    'Desactivamos el boton de comando nuevo registro
    Forms!F_Digital.cmdNuevoModeloF_Digital.Enabled = False
    'Desactivamos el boton de comandos modifcar registro
    Forms!F_Digital.cmdModificarRegistroF_Digital.Enabled = False
    'Desactivamos el boton de comandos Buscar registro
    Forms!F_Digital.cmdBuscarRegistroF_Digital.Enabled = False
  End If
End Sub


Cuando pulso el botón "Salir" funciona correctamente. El Problema esta cuando pulso el botón "Nuevo Modelo", el cual hace una cosa muy pero que muy rara. Me abre el formulario F_Digital pero no me muestra la "Referencia" del modelo. y al rellenar todo menos ese campo y salir de ese formulario me da error 3314 pidiendo que lo rellene. Lo curioso es que si detengo la accion sin rellenarlo y miro la tabla T_ModeloDigital resulta que si tiene en su campo insertado la "Referencia" . Total que no atino a saber porque si funciona bien cuando pulso "Salir" mostrando la "Referencia" en el formulario, mientras que al pulsar "Nuevo Modelo" no lo hace de esa forma aunque si me inserta el campo de "Referencia" en la tabla.......... :? :? :? :? :?

Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados