|
|
|
| как это сделать через recordset? | |
|
| |
|
|
|
| rst.edit
rst![поле] = 4566
rst.update | |
|
| |
|
|
|
| Это верно, но мне надо изменять записи удовлетворяющие определенному условию, как в Where | |
|
| |
|
|
|
| вопрос звучал:
Изменение значения в поля в найденной по конкретным критериям записи
не работает!!! :((
т.е. я так понял что запись уже найдена...
Скажите тип рекордсета | |
|
| |
|
|
|
| Сначала надо найти запись, удовлетворяющую условию, а потом только обновлять(или менять значение). Вот какой вопрос.
я использую вот что
Private Sub FindAndChange()
Dim strCriteria As String
Dim rst As Recordset
On Error GoTo FindAndChangeErr
'Открытие набора записей
Set rst = CurrentDb.OpenRecordset("TableName", dbOpenDynaset)
'Установка критериев поиска
strCriteria = "TextFieldName='Значение поля'"
With rst
If .EOF = True Then GoTo FindAndChangeEnd 'Если таблица пустая то на выход...
.MoveLast 'Заполнение набора записями
.MoveFirst 'Возврат в начало
'Поиск
.FindFirst strCriteria
If Not rst.NoMatch Then 'Если искомое найдено
'Вкл режим редактирования
.Edit
'Изменение значения поля
!CurrFieldName = 3.62
.Update 'Сохранение
Else
MsgBox "По указанным критериям запись не найдена!", vbInformation
End If
End With
FindAndChangeEnd:
On Error Resume Next
rst.Close
Set rst = Nothing
Exit Sub
FindAndChangeErr:
MsgBox "Процедура [...] привела к ошибке:" & vbCrLf & _
Err.Description & vbCrLf & " Err#" & Err.Number, vbCritical
Resume FindAndChangeEnd
End Sub
Но здесь изменяется только 1 запись, а у меня таких записей как минимум 2, вот и надо переделать, но у меня не выходит - Access виснет | |
|
| |
|
|
|
| Нужно подолжить поиск
Help по FindNext
Но лучше все же использовать SQL | |
|
| |