Access 2010を使用しています。from
とto
の2つのサブフォームがあります。メインフォームにはaddRecord
という2つのボタンがあり、from
の現在選択されているレコードとメインフォームからの値を使ってto
に新しいレコードを追加します。deleteRecord
はto
の現在選択されているレコードを削除します。そのフィールドの一部が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
で一つのレコードを持っている場合ということです、そして、私は私がdeleteRecord
との最初のレコードを削除しようとすると、私は次のエラーを取得する、addRecord
を使用して別のものを追加します。私は
Run-time error '3021':
No current record.
最初のもの以外にto
の他のレコードを選択して削除することができます。また、to
が空で、それに単一のレコードを追加すると、それを削除できます。そして、私がto
の別のレコードを削除すると、その最初のレコードを選択して削除することができます。
最初に他のレコードを削除しなくても、最初のレコードを削除するにはどうすればよいですか?
編集:私はNo current record
エラーを取得する場合、デバッガでさらにレコードを調べ、.BOF
と.EOF
は両方ともFalseのですが、.AbsolutePosition
は-1です。
このアプローチの問題は、私が使用して 'to'サブフォームで選択したレコードからcontactIDを取得しようとすることです: ' long'としてcontactIDを暗く 'contactID = Me.to_subform.Form.RecordsetClone contactID! ' 「現在のレコードがありません」というエラーが表示されます。 – sigil