Различные отчеты с одинаковым «Click ()» работают по-разному - не могу найти почему - PullRequest
0 голосов
/ 18 апреля 2019

Некоторое время назад я создал «сборную» базу данных Access (отслеживание контактов), и, как обычно, часть кода внутри неудобна.Сейчас я пытаюсь внести некоторые изменения, добавить несколько отчетов и форм, а также пару других функций.Пока все шло хорошо, но я столкнулся с проблемой, я просто не могу обернуть голову, и мои глаза начинают скрещиваться, пытаясь выяснить, в чем дело.Оба этих отчета предназначены для открытия одних и тех же данных на основе их собственного текста.

Вот код:
rptListings - Это прекрасно работает

Private Sub Text107_Click()
On Error GoTo Text107_Click_Err

    If (IsNull(Text107)) Then
        Beep
    End If
    If (Not IsNull(Text107)) Then
        DoCmd.OpenForm "frmContactDetails", acNormal, "", "[ID]=" & Me.txtContactID, , acDialog
    End If

Text107_Click_Exit:
    Exit Sub

Text107_Click_Err:
    MsgBox Error$
    Resume Text107_Click_Exit
End Sub


rptNeedToContact - Это не работает

Private Sub txtFullName_Click()
On Error GoTo txtFullName_Click_Err

    If (IsNull(txtFullName)) Then
        Beep
    End If
    If (Not IsNull(txtFullName)) Then
        DoCmd.OpenForm "frmContactDetails", acNormal, "", "[ID]=" & Me.txtContactID, , acDialog
    End If

txtFullName_Click_Exit:
    Exit Sub

txtFullName_Click_Err:
    MsgBox Error$
    Resume txtFullName_Click_Exit

End Sub

Сама ошибка подразумевает, что что-то есть с «OnLoad»для самой формы.Итак, вот этот код:

Private Sub Form_Load()
On Error GoTo Form_Load_Err

    If (IsNull(OpenArgs)) Then
        Exit Sub
    End If
    DoCmd.GoToRecord , "", acNewRec
    If (Not CurrentProject.IsTrusted) Then
        Exit Sub
    End If
    TempVars.Add "NewData", Mid(Nz(OpenArgs), InStr(Nz(OpenArgs), "=") + 1)
    TempVars.Add "Space", InStrRev(TempVars!NewData, " ")
    On Error Resume Next
    If (TempVars!Space = 0 And TempVars!NewData <> "") Then
        [Last Name] = TempVars!NewData
    End If
    If (TempVars!Space > 0) Then
        [First Name] = Left(TempVars!NewData, TempVars!Space - 1)
        [Last Name] = Mid(TempVars!NewData, TempVars!Space + 1)
    End If
    TempVars.Remove "NewData"
    TempVars.Remove "Space"

Form_Load_Exit:
    Exit Sub

Form_Load_Err:
    MsgBox Error$
    Resume Form_Load_Exit

End Sub

Вот изображение ошибки The Error
Отображение окна на самом делетекстовое поле It's a textbox

РЕДАКТИРОВАТЬ: Вот ссылка Google Drive на базу данных.Я удалил всю личную информацию, кроме имен. GOOGLE DRIVE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...