Может ли кто-нибудь сказать мне, почему вдруг моя база данных Access 2010 не распознает ключевое поле в одной из моих таблиц? VBA распознает каждое другое поле, определенное в таблице? Я дважды и тройка проверил, что все написано правильно.Sudden «Ошибка компиляции: метод или элемент данных не найден»
код, где появляется ошибка компиляции:
Me.benefitID = Nz(DMax("benefitID", "tblBenefits"), 0) + 1
tblBenefits поля:
benefitID (Primary key)
benefitAnimalWelfare
benefitSafety
benefitCostSavings
benefitImprovedPractice
benefitAdministrative
benefitOther
Весь код:
Private Sub NewIdeaButton_Click()
On Error GoTo NewIdeaButton_Click_Err
'new idea boolean is true
newIdea = True
On Error Resume Next
DoCmd.GoToRecord , "", acNewRec
'assign IDs for ideaID, benefitID, statusID
Me.ideaID = Nz(DMax("ideaID", "tblIdeaDetails"), 0) + 1
Me.benefitID = Nz(DMax("benefitID", "tblBenefits"), 0) + 1
Me.statusID = Nz(DMax("statusID", "tblStatus"), 0) + 1
Me.PrintIdeaButton.Visible = False
Me.DeleteIdeaButton.Visible = False
Me.IdeaStatusFormButton.Visible = False
Me.CancelButton.Visible = True
Me.ClearListBoxButton.Visible = False
Me.AttachedLabel.Visible = False
Me.FileList.Visible = False
Me.FileList.RowSourceType = "Value List"
Me.ideaSubmitter.SetFocus
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
End If
NewIdeaButton_Click_Exit:
Me.NewIdeaButton.Visible = False
Exit Sub
NewIdeaButton_Click_Err:
MsgBox Error$
Resume NewIdeaButton_Click_Exit
End Sub
Я попытался выбрать Microsoft DAO 3.6 Object Library Reference, но я получаю «Имя конфликтует с существующей библиотекой модулей, проектов или объектов». Я прочитал, что если вы отмените выборку из библиотеки объектов Microsoft Office 14.0, она позаботится об этой ошибке. Но я не думаю, что это то, что я хочу отменить?
Я также попытался удалить связь между этой таблицей и другой, переименовав поле, сбросив первичный ключ в другое поле, он все равно не узнает это поле.
Также попробовал компактную базу данных по ремонту, но получил сообщение «Операция по сокращению и ремонту отменена. Возможно, у вас нет достаточных прав доступа к папке, в которой находится база данных. база данных расположена для компактного и ремонта. Для получения дополнительной информации обратитесь к системному администратору ». Мне удалось запустить C & R в прошлом?
Вы можете использовать вместо точки точку «Взрыв» (восклицательный знак), особенно если вы обращаетесь к полю. Моя собственная практика состоит в том, чтобы использовать точку для всего, кроме ссылки на лежащие в основе поля, и в этом случае я использую исключительно удар. И мои элементы управления всегда имеют префикс с использованием венгерской нотации, так что текстовое поле txtIdeaSubmitter.Вы можете узнать больше о ударе по сравнению с точкой: http://bytecomb.com/the-bang-exclamation-operator-in-vba/ и здесь http://www.datagnostics.com/dtips/bangdot.html и здесь http: //stackoverflow.com/questions/2923957/bang-notation-and-dot-notation-in-vba-and-ms-access – HK1