Хелп из Аксесса + отсебятина :) Занести в строку значение поля с предыдущей строки. Как один из вариантов (не самый лучший, скорее как демонстрация)
silich 25.05.2001
От: silich 25.05.2001 14:42:32 rs на чтение->массив->update запросом вопрос, скорее к GardenStone :)) а как быстро загнать данные из рекордсета-на-чтение в массив?
GardenStone 25.05.2001
От: GardenStone 25.05.2001 14:52:58
Это пример показывает, как считать в массив значения поля Words из таблицы Lex2, а затем присвоить полю Words2 значение поля Words из предыдущей строки
Sub AddTable2Array()
Dim i As Integer, i2 As Integer Dim rs As Recordset, mySQL As String 'Часики DoCmd.Hourglass True
' массив по полю Words из таблицы mySQL = "SELECT Lex2.Words FROM Lex2;" Set rs = CurrentDb.OpenRecordset(mySQL) 'Определим количество записей и встаем на первую rs.MoveLast rs.MoveFirst 'Здесь передаем в массив Keywords значения таблицы Lex2 Keywords = rs.GetRows(rs.RecordCount) 'последняя строка в рекордсете не будет обрабатываться i2 = UBound(Keywords, 2) - 1 rs.Close Set rs = CurrentDb.OpenRecordset("Lex2", dbOpenDynaset)
rs.MoveFirst ' ставим индикатор '************************* SysCmd acSysCmdInitMeter, "В работе", UBound(Keywords, 2) SysCmd acSysCmdUpdateMeter, 0 '************************** With rs For i = 0 To i2
'обновляем индикатор SysCmd acSysCmdUpdateMeter, i
.Edit 'Если мы идем по записи правильно, тогда считаем '(я просто присваиваю значение следующего элемента массива) If !Words = Keywords(0, i) Then !Word2 = Keywords(0, (i + 1)) .Update rs.MoveNext Next i End With
'Удаляем индикатор SysCmd acSysCmdRemoveMeter
rs.Close '"Снимаем часики" DoCmd.Hourglass False MsgBox "Обработано записей: " & UBound(Keywords, 2) End Sub