1)データセットフォームは、DAOレコードセットオブジェクトまたはADOレコードセットオブジェクトにのみバインドできます。RecordSourceを設定することにより、それらをDAOレコードセットオブジェクトに暗黙的にバインドするか、#2に示すようにコードで手動でバインドすることができます。コードを使用してのみADOレコードセットにバインドできます。そうすると、フィルタリングや並べ替えなど、データセットのデフォルトオプションの一部が機能しなくなります。
2)これは過度に単純化されていることはわかっていますが...フォームのロードイベントで:Set Me.Recordset = rs(rsはレコードセットオブジェクトです)
3)多くのグリッドコントロールのように、行オブジェクトとデータを挿入するデータシートをループすることはできません。
4)グリッドコントロールやリストビューコントロールなどのMicrosoftのActiveXコントロールを使用できます。
これを実現できる1つの方法は、「製造されたADOレコードセット」を使用してから、フォームをそのレコードセットにバインドすることです。これは、私が#1と#2でレイアウトしたオプションを使用することになります。
いずれの場合も、アクセスデータセットフォームは、多くのグリッドコントロールのように、データを表示するのに十分なセル/列を動的に追加および構成しません。つまり、事前にフォームに十分なテキストボックスを用意してから、コードを使用してそれらをDAOまたはADOレコードセットのフィールドにバインドする必要があります。不要な列は、コードを使用して非表示にする必要があります。ラベルのキャプションは、適切な列ヘッダーを作成するためにコードを使用して入力する必要があります。つまり、データシートビューは実際には非常に強力ですが、グリッドコントロールではありません。
.NETを使用したことがある場合は、探しているものを提供するアドインまたはdllを作成するのはおそらくかなり簡単です(簡単ではありませんが)。唯一の問題は、.NETのDataGridViewをDAOまたはADOレコードセットにバインドできないため、DAOまたはADOレコードセットを取得し、そのレコードセットをADO.NETDataTableに「変換」するコードを作成する必要があることです。または、データベースとクエリの情報を取得し、それを使用して目的のデータを取得することで、.NETフォームがデータアクセスを実行するように作成することもできます。
Edit1
以下のコメントに応えて、ここにいくつかのサンプルコードがあります。以下のコメントでは行っていない、明示的なレコードセットオブジェクトを作成する必要があると思います。
Option Compare Database
Option Explicit
Private Sub Form_Load()
Dim db As DAO.Database
Set db = OpenDatabase("E:\Access\Testdb.mdb")
Dim rs As DAO.Recordset
Set rs = db.OpenRecordset("Select * from tblMarket", dbOpenSnapshot)
Set Me.Market1.Form.Recordset = rs
Set rs = Nothing
End Sub