Добавление новой записи в форму с помощью оператора if else, который вы также можете редактировать - PullRequest
0 голосов
/ 16 января 2020

Я только предполагаю, что это правильное кодирование запросов VBA для Access. Я C# разработчик, поэтому, пожалуйста, потерпите меня. В настоящее время у меня есть таблица и форма, и у меня есть процедура обработки события, которая, если вы щелкнете в поле внутри формы, вы сможете отредактировать указанную c запись. Он закроется, сохранится и обновится, когда я нажму кнопку закрытия формы. Но теперь у меня есть проблема, когда я могу добавить новую запись, нажав на поле без данных, но оно отправляет синтаксическую ошибку. Я предполагаю, что это происходит потому, что используемый мной код запроса VBA ищет его для редактирования, а не для добавления новой записи. Я могу нажать X в окне сообщения и все еще ввести новую запись. Я думаю об этом, чтобы добавить заявление IF ELSE. Могу ли я не делать это так? Если что-то нужно отредактировать, я могу. Или я должен внести изменения в другом месте? Я также прочитал, что я могу отредактировать окно сообщения, чтобы сказать, чтобы добавить новую запись, Нажмите X в углу и продолжайте добавлять новую запись. Это тоже мысль.

If Me.CurrentRecord = "CalibrationKey" Then
DoCmd.OpenForm "Calibration Detail", , , "[CalibrationKey]= " & Me.[CalibrationKey], acFormEdit, acDialog
Else: DoCmd.OpenForm "Calibration Detail", , , "[CalibrationKey]= " & Me.[CalibrationKey], acFormAdd, acDialog
End If
End Sub```

1 Ответ

1 голос
/ 16 января 2020

Поле с данными или без данных является полем в форме? Если это так, то ваш код должен быть помещен в событие onclick поля (поля). Сделайте калибровочный ключ именем поля, по которому щелкнули

Также измените код следующим образом

Если не IsNull (CalibrationKey.value), то DoCmd.OpenForm "Детализация калибровки",,, "[CalibrationKey] =" & Me. [CalibrationKey], acFormEdit, acDialog Else: DoCmd.OpenForm "Детализация калибровки",,, "[CalibrationKey] =" & Me. [CalibrationKey], acFormAdd, acDialog End If End Sub```

...