MyTetra Share
Делитесь знаниями!
Время создания: 16.03.2019 23:43
Текстовые метки: DAO.Recordset, DAO, Recordset
Раздел: !Закладки - VBA - Access

life-prog.ru

Dim rs As DAO.Recordset

2-3 минуты


Set db = CurrentDb

Set rs = db.OpenRecordset("Товары")

With rs

.MoveFirst

Me![Стоимость кофе] = 0

Do While .EOF = False

If .Fields("Марка") Like "Кофе*" Then Me![“Стоимость кофе”] = _

Me![“Стоимость кофе”] + .Fields("Стоимость товара")

.MoveNext

Loop

End Wtth

End Sub

Рис. 2.5. Форма “Товары”

Пример 2. Найти и вывести на экран номер группы с максимальным количеством студентов и средним баллом в группе более 4,7 в таблице "Группа".

Private Sub Поиск_Номер_Группы()

Dim db As Database

Dim rs As DAO.Recordset, max As Single, n As Variant

Set db = CurrentDb

Set rs = db.OpenRecordset("ГРУППА")

With rs

.MoveFirst

max = .Fields(1)

.MoveNext

Do While .EOF = False

If .Fields(1) > max And .Fields(2) > 4.7 Then max = .Fields(1): n = .Bookmark

.MoveNext

Loop

.Bookmark = n

MsgBox "Количество студентов - " & max & Chr(13) & "Номер группы - " & _

.Fields(0)

End With

End Sub

Пример 3.Используя библиотеку ADO в окне модуля создать процедуру для заполнения данными поле “Среднее” таблицы “Урожайность” (рис. 2.6).


Рис.2.6. Структура таблицы “Урожайность”

Public Sub Расчет_ADO()

Dim connection As New ADODB.connection 'Если база днных текущая, то

'эту строку можно не писать

'Если базу данных нужно открыть на диске, то после этой строки нужно писать

'Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0";Data Sourse=путь к файлу"

Dim rs As New ADODB.Recordset

Dim s As Double, i As Integer, n As Long

With rs

.Open "Урожайность", CurrentProject.connection, adOpenKeyset, adLockOptimistic

.MoveFirst

Do While .EOF = False

s = 0: n = 0



For i = 1 To .Fields.Count - 2

s = s + .Fields(i): n = n + 1

Next i

s = s / n

.Fields(5) = s

.MoveNext

Loop

End With

End Sub


Так же в этом разделе:
 
MyTetra Share v.0.53
Яндекс индекс цитирования