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

Пополнение списка с подтверждением (DAO)

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


Простой вариант:

Private Sub Device_NotInList(NewData As String, Response As Integer)
Dim ctl As Control
   
     With CurrentDb.OpenRecordset("select * from Device")
        .AddNew
        !Наименование = NewData
        .Update
    End With
    Response = acDataErrAdded
End Sub
Назад ToTop
L.E. 21.09.2023
Рейтинг@Mail.ru