Использование Access 2010. У меня есть две подчиненные формы from
и to
. У меня есть две кнопки в основной форме: addRecord
, которая добавляет новую запись к to
, используя значения из текущей выбранной записи from
и из главной формы, и deleteRecord
, которая удаляет текущий to
выбранная запись.
Вот код для двух кнопок:
Private Sub addRecord_Click()
Dim contactid As Long
Dim requestid As Long
Dim startDate As Date
contactid = Me.from_subform.Controls("contactID").Value
requestid = Me.ID.Value
startDate = Me.startDate.Value
With Me.to_subform.Form.RecordsetClone
.AddNew
!AEid = contactid
!requestid = requestid
!startDate = startDate
.Update
End With
Me.to_subform.Form.Requery
Me.from_subform.Form.Requery
End Sub
Private Sub deleteRecord_Click()
If Me.to_subform.Form.RecordsetClone.RecordCount = 0 Then
Exit Sub
End If
Me.to_subform.Form.Recordset.Delete
Me.to_subform.Form.Recordset.MoveNext
Me.from_subform.Form.Requery
End Sub
from
запрашивается, потому что некоторые из его полей зависят от того, есть ли соответствующая запись в to
.
Проблема в том, что когда у меня есть одна запись в to
, а затем я добавляю другую, используя addRecord
, при попытке удалить первую запись с помощью deleteRecord
я получаю следующую ошибку:
Run-time error '3021':
No current record.
Я могу выбрать любую другую запись в to
, кроме первой, и удалить ее; также, если to
пусто и я добавляю в него одну запись, то я могу удалить ее. И как только я удаляю другую запись в to
, я могу выбрать эту первую и удалить ее.
Как я могу удалить эту первую запись без необходимости сначала удалять другую?
РЕДАКТИРОВАТЬ: проверка набора записей далее в отладчике, когда я получаю ошибку No current record
, .BOF
и .EOF
оба имеют значение False, но .AbsolutePosition
равно -1.