Soy muy nuevo en VBA y parece que no puedo resolver este problema. Parece que debería ser un problema fácil de solucionar, simplemente no sé cómo.
Entonces, qué hace el código: en la forma principal es un registro. Este registro se copiará en otra tabla presionando un botón en el formulario. Antes de que comience la copia, el código verifica primero si el 'OMnummer' se ha completado en el subformulario. Si no, aparece un cuadro de mensaje que dice que el usuario debe completar el subformulario y el código deja de ejecutarse.
En segundo lugar, el código verifica si el registro ya está presente en la otra tabla. Si es así, aparece un cuadro de mensaje y el registro no se copiará. De lo contrario, el registro se copiará en la otra tabla.
Ambas piezas de código funcionan bien por separado. Sin embargo, cuando trato de incluir ambas piezas en el mismo submarino privado, solo funciona la primera. Puede ser algo con el código 'Exit Sub' o no estoy usando el If - Then correcto.
¡Espero que me pueda ayudar! Monika
Private Sub KnopProjectVersturen_Click()
On Error GoTo ErrProc
If IsNull(Me!Subform_OMnummers.Form!Omnr) Then
If MsgBox("Vul het OMnummer in. Je kan het project niet exporteren zonder OMnummer.") Then
Exit Sub
DoCmd.OpenQuery "Qry_Depo_ControleAanwezig"
If DCount("Deponering.projectnummer", "Qry_Depo_ControleAanwezig") = 0 Then
DoCmd.SetWarnings False
DoCmd.OpenQuery "Qry_projectnaarDepot"
DoCmd.OpenQuery "Qry_ToevoegProjectDepot"
DoCmd.OpenForm "Depot_uitvoer", , , "[Projectnummer] = '" & Me![Projectnummer] & "' And [subID]=[subID]"
Me.Status = 8
DoCmd.Close acQuery, ("Qry_Depo_ControleAanwezig")
DoCmd.SetWarnings True
Else
MsgBox "Dit project bestaat al in de Depot_Uitvoer, verander de status in het projectformulier", vbInformation, "Example"
DoCmd.Close acQuery, ("Qry_Depo_ControleAanwezig")
End If
End If
End If
'Als er fouten zijn laat deze code een messagebox zien met het nummer en de melding.
ExitProc:
Exit Sub
ErrProc:
Select Case Err.Number
Case Else
MsgBox Err.Number & "--" & Err.Description
Resume ExitProc
End Select
End Sub
fuente
Respuestas:
No hay condición para esa
if
fórmula con el cuadro de mensaje. PruébaloO no use el
if
en la línea del cuadro de mensajefuente
end if
en el primer fragmento de código. necesitas cerrarlos a los dos, simplemente no incluí el primero allí, así que no lo cerré. Edité para incluirlo, en caso de que desee solicitar al usuario.No estoy tan seguro ... pero puedes probar esto ...
fuente
IF
bloque ... Entonces, no olvides hacer una marca verde debajo del signo de