2017-02-13 16 views
0

Я создаю базу данных доступа, образованную из двух вещей - программного обеспечения и лицензий. Лицензии прилагаются к Программному обеспечению через их идентификатор.Доступное поле формы 2016 для ввода формы на основе предыдущего значения формы

У меня есть форма, созданная для программного обеспечения, и вы хотите создать кнопку, которая при нажатии открывается новая форма «Добавить лицензию», которая предварительно заполняет идентификатор программного обеспечения и что люди могут заполнить остальную информацию на. Я использую макросы из аналогичного шаблона Office 2016, и он постоянно падает, пытаясь поместить эту информацию в новую лицензионную форму.

Я приложил скриншот моего макроса ниже - я прошел через много итераций этого сейчас, и ошибка, которую я получаю, равна 30024, что указывает на то, что оно не может найти поле для ввода SoftwareID в вновь открытая форма. Я также установил «Control Name» на «SoftwareID», поскольку это также было предложено в другом месте, но это также не работает.

Любые предложения?

Screenshot of Macro in question

+1

Я настоятельно рекомендую преобразования кода на Visual Basic. Диагностировать будет намного легче. –

ответ

0

Я не мог заставить его работать с помощью встроенного макроса, так что я использовал VBA макросов, вместо которых работал :). Для этого (если вы не сделали этого раньше):

  • Откройте «Программное обеспечение» формы в режиме конструктора
  • Показать свойства листа (ленты -> вкладка Design)
  • Нажмите на кнопке
  • Перейдите на вкладку «Event» на странице свойств
  • Исключить «On нажмите» событие
  • правой щелкните кнопкой и выберите «Build Event»
  • Из «Выбрать Builder» попу п окно, нажмите кнопку «Code Builder»
  • Предполагая, что у вас нет каких-либо других макросов, ваш код должен выглядеть так же, как у меня с единственным отличием является названием вашей кнопки (шахта Command163)

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

Option Compare Database

Private Sub Command163_Click()

DoCmd.RunCommand acCmdSaveRecord

openFreshAddLicenseForm (Me.ID)

End Sub

Public Function openFreshAddLicenseForm (ID As Integer)

On Error GoTo Macro1_Err

DoCmd.OpenForm "Добавить лицензию"

DoCmd.GoToRecord "", acNewRec

формы! [Добавить лицензию]!SoftwareID = ID

Macro1_Exit:

Выход Функция

Macro1_Err:

MsgBox Ошибка $

Резюме Macro1_Exit

End Function

 Смежные вопросы

  • Нет связанных вопросов^_^