使用Access 2010.我有兩個子表單from
和to
。我在主窗體上有兩個按鈕addRecord
,它使用from
的當前所選記錄和主窗體中的值爲to
添加一條新記錄,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
都是假的,但.AbsolutePosition
爲-1。
這種方法的問題是,當我試圖從選擇的記錄在'to'子窗體使用來獲取的ContactID: '暗淡的ContactID如long' '的ContactID = Me.to_subform.Form.RecordsetClone的ContactID ' 我得到相同的'沒有當前記錄'的錯誤。 – sigil 2012-02-10 00:44:05