私はこのフォームをアクセスしています。このフォームを使用して編集できるテーブルのフロントエンドとして機能することです。それは私が次のクエリでレコードセットからフォームデータで表示するロードしたときに最初:VBAとアクセスフォームフィルタ
SELECT * FROM DATA
私は、フォームが開いたら、レコードセットのデータをフィルタリングすることができるようにしたいです。私はこれを達成するために次のVBAコードを試しました:
Private Sub Filter_Click()
If (IsNull(Me.Find_Field) Or Me.Find_Field = "") Then
rs.Close
Set rs = db.OpenRecordset("Select * from DATA ORDER BY ID)
rs.MoveFirst
LoadData (True)
Exit Sub
End If
Set rs = db.OpenRecordset("Select * from DATA WHERE ID = " & Me.Find_Field)
rs.MoveFirst
LoadData (True) ' Function that loads the data into the form
Exit Sub
私が見る通り、新しいフィルタリングされたクエリでレコードセットをリロードします。これまでのところ、問題はレコードを変更しようとすると始まります。
元々、フォームがレコードセットデータを読み込むと、データを編集することができ、編集したデータがテーブルに表示されます(これが私の望むものです)。しかし、私のフィルタを適用した後、私のコードは私にランタイムエラー '3027'を与えます:Can not Update。データボックスまたはオブジェクトは読み取り専用です。
テーブルからデータをリロードするのに、同じコードを繰り返し使用していますが、レコードセットのソースを上書きするまで問題は発生しませんでした。どのように私はこの問題を解決できますか?ありがとう