Я очень новичок в VBA, и я не могу решить эту проблему. Кажется, это должно быть легко исправить, я просто не знаю как. Я посмотрел в Интернете, но вопрос остается нерешенным.

Итак, что делает код: В основной форме есть запись. Эта запись будет скопирована в другую таблицу, нажав кнопку на форме. Перед началом копирования код сначала проверяет, был ли заполнен «OMnummer» в подчиненной форме. Если нет, появится сообщение о том, что пользователь должен заполнить подчиненную форму, и код перестанет работать.

Во-вторых, код проверяет, присутствует ли запись в другой таблице. Если это так, появится окно сообщения, и запись не будет скопирована. Если нет, запись будет скопирована в другую таблицу.

Обе части кода работают нормально по отдельности. Однако, когда я пытаюсь включить обе части в один и тот же частный саб, работает только первый. Это может быть что-то с кодом «Exit Sub» или я не использую «если» - тогда правильно.

Очень надеюсь, что вы можете мне помочь! Monika

Private Sub KnopProjectVersturen_Click()
On Error GoTo ErrProc


'This is the first part of the code checking if the subform has been filled in

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



'This is the second part of the code, checking if the record exists in the other table and then copying part of the record

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

0