#forms #ms-access
Вопрос:
Я создаю форму в MS Access 16.0. При нажатии кнопки значение из текстового поля («dummy_text_box») должно быть добавлено в качестве новой записи в таблицу Dummy_Table. Я попытался добавить обратный вызов к кнопке, но я не знаю, как добавить значение в таблицу.
В SQL команда должна выглядеть примерно так: «ВСТАВИТЬ В ЗНАЧЕНИЯ Dummy_Table (Dummy_Column) (<value_of_dummy_text_box>)
Пожалуйста, смотрите рисунок. Извините за сообщение типа «покажите мне код, пожалуйста», но, несмотря на обширные поиски в Интернете по этой теме, я не нашел фрагмента кода для выполнения этой простой операции.
Комментарии:
1. Привяжите форму к таблице, и кнопка вам не понадобится. Кроме того, найдите руководство или учебник «Начиная с Microsoft Access» или аналогичный.
2. Да, почему вы не используете связанную форму? В противном случае одним из способов создания записи является код VBA, подобный
CurrentDb.Execute "INSERT INTO Dummy_table(Dummy_Column) VALUES('" amp; Me.tbxDummy amp; "')"
. Не имеет ничего общего с построителем выражений.3. @June7 Из моего понимания *) связанная форма предназначена только для сопоставления одной таблицы с формой. Я немного упростил проблему, которую пытаюсь решить, на самом деле у меня есть несколько полей ввода (поле со списком, текстовые поля, флажки), которые, в свою очередь, относятся к разным таблицам. Я предполагаю, что смогу решить эту конкретную проблему, создав представление, которое ссылается на несколько таблиц. *) iaccessworld.com/the-difference-of-bound-and-unbound-form
4. Когда я пытаюсь создать форму из одной таблицы, тип элемента управления становится не полем со списком, а полем со списком. Когда я меняю поле списка на поле со списком, отображается только первое значение в таблице (также при расширении раскрывающегося меню). Кроме того, как только я выбрал Конструктор выражений в качестве события для кнопки, я не могу изменить функцию обратного вызова, поэтому мне приходится удалить ее и начать все сначала. Мне еще предстоит найти учебник, который поможет мне понять наиболее логичный рабочий процесс при создании форм в MS Access. Я думаю, что вместо этого я мог бы создать графический интерфейс на Python, но это было бы похоже на поражение
5. Форма обычно вводит/редактирует данные для одной таблицы. Схемы форм/подформ используются для ввода данных нескольких таблиц связанных записей. Я НИКОГДА не использовал конструктор выражений в свойстве события (на самом деле вообще никогда не использовал этот конструктор). Я (редко) устанавливаю событие для вызова пользовательской функции VBA, но я вручную создаю ссылку на функцию, просто введя свойство event. У меня нет проблем с редактированием кода VBA указанной функции. Поле не будет автоматически настроено как поле со списком или поле со списком в форме, если оно не разработано как таковое в таблице.
Ответ №1:
Используйте конструктор кода (имя кнопки-Command0):
Option Compare Database
Private Sub Command0_Click()
DoCmd.RunSQL "INSERT INTO [Dummy_Table](Dummy_Column) VALUES ('" amp; TextBox.Value amp; "')"
End Sub