Шаг 60 - Свойство RecordsAffected

Описание
Возвращает число записей, которые были использованы при последнем вызове метода Execute.

Значение
Возвращаемое значение имеет тип Long и лежит в интервале от 0 до числа записей, которые были использованы при последнем вызове метода Execute для объекта Database или QueryDef.

Замечания
При вызове метода Execute для запуска запроса на изменение из объекта QueryDef, значением свойства RecordsAffected становится число записей, которые были удалены, обновлены или вставлены.
В рабочей области ODBCDirect свойство RecordsAffected не возвращает разумное значение в запросе SQL на удаление таблицы (DROP TABLE).

Пример
Следующая программа использует свойство RecordsAffected с запросами на изменение, выполняемыми из объектов Database и QueryDef. Для выполнения данной процедуры требуется функция RecordsAffectedOutput.

Sub RecordsAffectedX()

	Dim dbsNorthwind As Database
	Dim qdfTemp As QueryDef
	Dim strSQLChange As String
	Dim strSQLRestore As String

	Set dbsNorthwind = OpenDatabase("Борей.mdb")

	With dbsNorthwind
		' Печатает отчет о содержимом таблицы 'Сотрудники'. 
		Debug.Print "Число записей в таблице 'Сотрудники': " & 	.TableDefs!Сотрудники.RecordCount
		RecordsAffectedOutput dbsNorthwind
		' Определяет и выполняет запрос на изменение.
		strSQLChange = "UPDATE Сотрудники " & 	"SET Страна = 'Россия' " &  "WHERE Страна = 'РФ'"
		.Execute strSQLChange
		' Печатает отчет о содержимом таблицы 'Сотрудники'. 
		Debug.Print "Свойство RecordsAffected после выполнения " & "запроса из объекта Database: " & .RecordsAffected
		RecordsAffectedOutput dbsNorthwind
		' Определяет и выполняет второй запрос на изменение.
		strSQLRestore = "UPDATE Сотрудники " & SET Страна = 'Россия' " &  "WHERE Страна = 'РФ' "
		Set qdfTemp = .CreateQueryDef("", strSQLRestore)
		qdfTemp.Execute
		' Печатает отчет о содержимом таблицы 'Сотрудники'.
		Debug.Print "Свойство RecordsAffected после выполнения " & "запроса из объекта QueryDef: " & qdfTemp.RecordsAffected
		RecordsAffectedOutput dbsNorthwind
		.Close
	End With
End Sub

Function RecordsAffectedOutput(dbsNorthwind As Database)

Dim rstEmployees As Recordset

	' Открывает объект Recordset для таблицы 'Сотрудники'.
	Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники")
	With rstEmployees
		' Цикл по всем компонентам объекта Recordset.
		.MoveFirst
		Do While Not .EOF
			Debug.Print "    " & !Фамилия & ", " & !Страна
			.MoveNext
		Loop
		.Close
	End With
End Function

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 10.03.2002