Как внести данные из полей формы в нужную нам таблицу ценой лишь одного щелчка.
Можно создать новую форму с помощью Мастера форм, указав при этом таблицу, которая служит источником данных, далее подбирая под себя более удобный вид, сможем просматривать содержимое таблицы, с помощью формы и соответсвенно сможем вносить необходимые изменения в существующие данные или же добавлять новые.
Но как быть в случае, если мы хотим сделать отдельную форму лишь для добавления данных, без просмотра существующих?
Для этого создаем в конструкторе форму с необходимыми нам полями и оформляем ее как вам нравится
А добавлять данные будем в строки таблицы с необходимыми нам столбцами.
Мы помним, что форма никак не связана с таблицей, у нее есть поля которые существуют сами по себе. Поэтому для того чтобы добавить данные из формы в таблицу, нужна кнопка (в нашем примере, который видно на скриншоте, это кнопка ОК), по клику которой выполнялось бы необходимое нам событие.
При просмотре формы в режиме конструктора, кликаем правой кнопкой мыши, по созданной нами, кнопочке ОК и с выпадающего списка выбираем пункт Обработка событий..., далее Программы. В результате клика откроется Visual Basic с полем для указания необходимых свойств или событий, которые будут происходить по клику кнопки ОК
Private Sub OK_Click()
End Sub
Собственно здесь мы и будем прописывать, то что заставит работать нашу задумку. И так, приведем несколько примеров.
Пример 1 - Добавление только одного значения поля в один столбец таблицы
все остальные столбцы в таблице будут пустыми, если они есть)
Private Sub OK_Click()
Dim strSQL As String
strSQL = " Insert Into Test(Номер) values ('" & Me.Number_NN & "') "
CurrentProject.Connection.Execute (strSQL)
MsgBox ("Добавлено!")
End Sub
Test(Номер) - Название таблицы (Название столбца в таблице) - место куда нужно вставить необходимую информацию
Number_NN - Название поля в форме - значение, которое нам необходимо вставить в таблицу
MsgBox ("Добавлено!") - Всплывающее окошко с текстом Добавлено! - в принципе, необязательный элемент, но он помогает донести информацию до пользователя, что добавление данных через форму в таблицу выполнено успешно, если же его не будет, то пользователь не будет знать добавил данные он или нет и поэтому будет нажимать еще несколько раз, а значит только дублировать данные.
Пример 2 - когда нужно добавить в таблицу одной записью значения нескольких полей формы
Private Sub OK_Click()
Dim strSQL As String
strSQL = " Insert Into Test(Номер, Дата, Описание) values ('" & Me.Number_NN & "', '" & Me.Date_NN & "', '" & Me.Opisanie & "');"
CurrentProject.Connection.Execute (strSQL)
MsgBox ("Добавлено!")
End If
End Sub
Test(Номер, Дата, Описание) - Название таблицы (Название первого необходимого столбца, название необходимого второго столбца, Название третьего необходимого столбца) - таким образом указываем адрес куда нужно добавить данные из полей формы
Number_NN, Date_NN, Opisanie - Названия полей формы из которых берем данные - указывать в таком же логическом порядке как и соответствующие столбцы таблицы
Пример 3 - Аналог второго варианта, только другой вариант записи.
Private Sub OK_Click()
Dim rs As dao.Recordset
Set rs = CurrentDb.OpenRecordset("Test", dbOpenDynaset)
rs.AddNew
rs!Номер = Me!Number_NN
rs!Дата = Me!Date_NN
rs!Описание = Me!Opisanie
rs.Update
rs.Close
Set rs = Nothing
End Sub
Test - название таблицы, с которой будет работать сценарий - таблица куда нужно записать данные из формы
AddNew - процедура для создание новой строки в таблице с пустыми записями
Номер, Дата, Описание - название столбцов в таблице, которым присваиваются значения из формы.
Number_NN, Date_NN, Opisanie - название полей из формы значения которые будут присвоены новой записи в таблице - источник данных
Как вариант, еще встречал такой способ, но фактически он почти ничем не отличается от второго способа.
Пример 4 - использует ту же процедуру Insert Into, что и Пример 2.
Private Sub OK_Click()
Dim dbs As Database
Set dbs = OpenDatabase("D:\Documents and Settings\Admin\Рабочий стол\MyDataBase.mdb")
dbs.Execute " INSERT INTO Test " _
& "(Номер, Дата, Описание) VALUES " _
& "('" & Me.Number_NN & "', '" & Me.Date_NN & "', '" & Me.Opisanie & "');"
dbs.Close
End Sub
D:\Documents and Settings\Admin\Рабочий стол\MyDataBase.mdb - путь размещения базы данных, в которой находится таблица, для внесения необходимых данных.
Test - название таблицы, в которую будут добавлены новые данные.
Номер, Дата, Описание - наименования столбцов таблицы, в ячейки которых будут добавлены новые данные.
Number_NN, Date_NN, Opisanie - название полей из формы значения которые будут присвоены новой записи в таблице - источник данных
Удачи