Некоторое время назад я создал «сборную» базу данных 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
Вот изображение ошибки
Отображение окна на самом делетекстовое поле
РЕДАКТИРОВАТЬ: Вот ссылка Google Drive на базу данных.Я удалил всю личную информацию, кроме имен. GOOGLE DRIVE