VBA, MS Access MS Access в примерах

Поле со Списком (ComboBox) - Пополнение справочника с подтверждением

Private Sub Combo_Surname_NotInList(NewData As String, Response As Integer)
'Событие - Значения НЕТ в списке
'--------------------------------------------------------------------
Dim rst As DAO.Recordset
Dim str As String
Dim lngRecID As Long
On Error GoTo Combo_Surname_NotInList_Err

    'Запрашиваем у пользователя разрешение на добавление новых данных с возможностью редакции
    str = InputBox("Подтвердите добавление нового значения" & vbCrLf & _
        "Фамилия", "Новое Значение Списка!", NewData)
    
    If str <> "" Then 'Если пользователь подтвердил ввод нового значения
        'lngRecID = Nz(DMax("ID", "Сотрудники"), 1) 'MAX значение ключевого поля (если не автомат)
        'Открываем таблицу "Сотрудники" и добавляем это значение
        Set rst = CurrentDb.OpenRecordset("Сотрудники", dbOpenDynaset)
        With rst
            .AddNew
            'Заполнение полей значениями
            '!ID = lngRecID  '(если не автомат)
            !Фамилия = str
            .Update
        End With

        'Сообщаем приложению что данные успешно добавлены
        Response = acDataErrAdded
    Else
        'Пользователь отменил ввод
        Response = acDataErrContinue
    End If


Combo_Surname_NotInList_Bye:
    On Error Resume Next
    rst.Close
    Set rst = Nothing
    Exit Sub

Combo_Surname_NotInList_Err:
    MsgBox "Error " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in procedure Combo_Surname_NotInList", vbCritical, "Error!"
    Resume Combo_Surname_NotInList_Bye
End Sub

Picture

Назад ToTop
L.E. 27.11.2017
Рейтинг@Mail.ru