18c0693f

Сохранение реквизитов


Как я говорил ранее, иногда информация создается при формировании документа и тогда крайне желательно, чтобы она тут же была занесена в базу данных. Эта ситуация достаточно естественно появляется при работе с нашим документом. Действительно, представьте, что появился новый заказчик, о котором нет сведений в базе данных. Тогда данные о нем, - его реквизиты естественно придется вручную занести в соответствующие поля документа. Инструментальная кнопка "Сохранить" поможет перенести эту информацию в базу данных.

Следует заметить, что решение обратной задачи по переносу данных из документа в базу данных даже проще, чем рассматриваемая ранее прямая задача, и никаких особых новинок здесь не появляется. Вот ее программное решение:

Private Sub CommandButton2_Click() 'Сохранить реквизиты заказчика CreateNewCustomer End Sub

Процедура CreateNewCustomer, решающая задачу имеет вид:

Public Sub CreateNewCustomer() 'добавление записи в базу данных Dim recExist As Boolean Dim curField As Range Dim txtField As String, txtTel As String, txtMail As String Cmd1.CommandText = "Select * From [Заказчики]" Set curField = Range("D19") 'Поле с названием организации txtField = curField.Text 'Открытие обновляемого объекта Recordset With Rst1 If Rst1.State = adStateOpen Then Rst1.Close .Open Source:=Cmd1, CursorType:=adOpenDynamic, _ LockType:=adLockOptimistic

recExist = False .MoveFirst Do While Not .EOF 'Проверка существования записи If LCase(!Название) = LCase(txtField) Then recExist = True .MoveNext Loop If Not recExist Then .AddNew !Название = txtField txtField = curField.Offset(1).Text !Адрес = txtField txtField = curField.Offset(2).Text Call Parsing(txtField, txtTel, txtMail) !Телефон = txtTel !Email = txtMail 'Запрос значений недостающих полей AddingFields.Show .Update Else MsgBox ("В базе данных уже существует" _ & " организация с таким названием!") End If End With End Sub

На три момента хочу обратить внимание:




Рис. 7.6.  Форма AddingFields, позволяющая добавить сведения о полях базы данных

При нажатии кнопки "OK" формы AddingFields текст из полей формы переносится в поля записи, после чего форма закрывается:

Private Sub CommandButton1_Click() 'Добавление полей "Город" и "Директор" в запись Rst1!Город = Me.TextBox1.Text Rst1!Директор = Me.TextBox2.Text Me.Hide End Sub

После закрытия формы управление возвращается в процедуру CreateNewCustomer, где и выполняется оператор Update, добавляющий полностью сформированную запись в таблицу "Заказчики" нашей базы данных.




Все публикации раздела