は、基本的なレシピです:
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM myTable")
は、Accessでジェットデータアクセスオブジェクト(DAO)を使用していることを知っている - 詳細については、それをグーグル。
式(rs.BOF and rs.EOF) = True
は、行がないことを示します。
rs.MoveFirst
,rs.MoveNext
を使用すると、最初と次の行に移動します。 rs.MoveNext
の後にrs.EOF
を試験する。 True
の場合、最後の行はすでに処理されていました。
rs(FieldName)
は、FieldName(文字列式)という名前の列の値を返します。
rs(1)
は、2番目の列の値を返します。
完了したとき、rs.Close
。
RecordSetにアクセスし、データシートビューで表示する方法はありません。代わりに、クエリ定義オブジェクトを作成し、クエリを実行し、結果のデータシートビューを表示するためにそれを使用する必要があります:
Dim qd As QueryDef
On Error Resume Next
CurrentDb.QueryDefs.Delete "temp"
On Error GoTo 0
Set qd = db.CreateQueryDef("temp", "SELECT * FROM myTable")
DoCmd.OpenQuery "temp", acViewNormal, acEdit
データシートフォームを使用してSQLステートメントをそのRecordSourceプロパティに割り当てることはできません。なぜデータを扱うためにレコードセットを開く必要があると思いますか?そうすることは、アクセスを完全に誤っており、あなた自身のために物事をもっと困難にすることです。 –
アクセスは物事を難しくすることもできます:http://stackoverflow.com/questions/5663918/how-to-stop-ms-access-to-change-my-sql-code –