Я поддерживаю приложение, которое работает в течение последних 3 лет. Он был полностью разработан в MS Access и написан в VBA.Действие Openform было отменено в коде VBA MS-Access
Внезапно приложение сталкивается с упомянутой ошибки в следующих строках:
DoCmd.OpenForm FormName:="frmNewPeerGroup", View:=acNormal, windowmode:=acWindowNormal, OpenArgs:=5
FrmNewPeerGroup код
Private Sub Form_Open(Cancel As Integer) Dim lDept As Long, lDiv As Long lType = OpenArgs 'Supplied by caller lAssmtVer = 1 'Current sName = "" sDescription = "" dtCreatedDate = Format(Now(), "dd/mm/yyyy") sCreatedBy = UCase(userPerms.NTLoginName) lSupervisorID = userPerms.userID lTeam = 0 With cmbBxType .RowSourceType = "Value List" .RowSource = GetValueListDict(pgType) .Value = lType .Enabled = (OpenArgs = 1) End With With cmbBxVersion .RowSourceType = "Value List" .RowSource = GetValueListDict(pgAssmtType) .Value = lAssmtVer End With mgLogoDesc.Visible = False txtBxCreatedDate.Value = dtCreatedDate txtBxCreatedBy.Value = sCreatedBy If OpenArgs = 5 Then lTeam = oActiveAssmt.TeamID lDept = GetParentID(aTeams(), CInt(lTeam)) lDiv = GetParentID(aDepts(), CInt(lDept)) With cmbBxDivision .RowSourceType = "Value List" .RowSource = GetValueListArray(aDivs()) .Value = lDiv .Enabled = False End With With cmbBxDepartment .RowSourceType = "Value List" .RowSource = GetValueListArray(aDepts()) .Value = lDept .Enabled = False End With With cmbBxTeam .RowSourceType = "Value List" .RowSource = GetValueListArray(aTeams()) .Value = lTeam .Enabled = False End With Else With cmbBxDivision .RowSourceType = "Value List" .RowSource = GetValueListArray(aDivs()) .Enabled = False End With cmbBxDepartment.Enabled = False cmbBxTeam.Enabled = False End If End Sub
Многие экземпляры команды DoCmd.OpenForm
дают ошибку в окне сообщения, говоря:
The expression On Click you entered as the event property setting produced the following error: The OpenForm action was canceled. - The expression may not result in the name of macro, the name of a user-defined function, or [Event procedure]. - There may have been an error evaluating the function, event, or macro.
Это ошибка messag я получаю.
Моя проблема: тот же код работал около 3 лет, но неожиданно некоторые обновления для Microsoft или Office могут вызвать проблемы с этим кодом.
Неужели кто-нибудь сталкивался с этой ошибкой в последние недели? Пожалуйста, дайте мне знать, что еще мы можем сделать, чтобы повторить эту работу.
Я добавил несколько заметок в свой ответ. – Fionnuala
Добавьте обработчик ошибок в событие OnOpen формы, это, скорее всего, станет более ясным, где проблема. –
Кроме того, я никогда не писал такого кода. Это выглядит катастрофой для меня, как если бы это было написано беженцем из VB, который не имеет понятия о кодировании VBA. –