Описание
Копирует текущую запись из обновляемого объекта Recordset в буфер копирования для последующего изменения.
наборЗаписей.Edit
Параметры
наборЗаписей
Представляет открытый обновляемый объект Recordset, который содержит подлежащую изменению запись.
Замечания
После вызова метода Edit все изменения, внесенные в поля текущей записи, помещаются в буфер копирования. После того как все необходимые изменения будут внесены, следует вызвать метод Update для сохранения изменений.
После вызова метода Edit текущая запись остается текущей.
Если после изменения записи перейти к следующей записи без вызова метода Update, то все внесенные изменения будут отменены без предупреждения. Кроме того, все изменения записи будут потеряны без предупреждения, если закрыть наборЗаписей или завершить процедуру, в которой описан объект Recordset, а также родительский объект Database или Connection.
Вызов метода Edit приводит к возникновению ошибки в следующих случаях:
Пример
Следующая программа использует метод Edit для замены текущих данных, соответствующих указанному имени. Для выполнения этой процедуры требуется процедура EditName.
Sub EditX() Dim dbsNorthwind As Database Dim rstEmployees As Recordset Dim strOldFirst As String Dim strOldLast As String Dim strFirstName As String Dim strLastName As String Set dbsNorthwind = OpenDatabase("Борей.mdb") Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники", dbOpenDynaset) ' Сохраняет исходные данные. strOldFirst = rstEmployees!Имя strOldLast = rstEmployees!Фамилия ' Принимает новые данные для записи. strFirstName = Trim(InputBox( "Введите имя:")) strLastName = Trim(InputBox( "Введите фамилию:")) ' Продолжает выполнение, если данные введены в оба поля. If strFirstName <> "" and strLastName <> "" Then ' Обновляет запись новыми данными. EditName rstEmployees, strFirstName, strLastName With rstEmployees ' Отображает новые и старые данные. Debug.Print "Старые данные: " & strOldFirst & " " & strOldLast Debug.Print "Новые данные: " & !Имя & " " & !Фамилия ' Восстанавливает исходные данные, измененные ' только для демонстрации. .Edit !Имя = strOldFirst !Фамилия = strOldLast .Update End With Else Debug.Print "Необходимо ввести строковое значение для имени и фамилии!" End If rstEmployees.Close dbsNorthwind.Close End Sub Sub EditName(rstTemp As Recordset, strFirst As String, strLast As String) ' Вносит изменения в запись и устанавливает закладку, ' чтобы оставить запись текущей. With rstTemp .Edit !Имя = strFirst !Фамилия = strLast .Update .Bookmark = .LastModified End With End Sub