専門家の交換所とteck republicで利用可能ないくつかの資料があり 、combobox.recordset プロパティを使用して Access フォームにコンボボックスを作成する方法について説明しています。
これらのコントロールには、通常、コントロールの「rowsource」プロパティに「SELECT *」文字列が入力され、アプリのクライアント側で使用可能なテーブルまたはクエリを参照します。サーバー側のデータをコンボボックスに表示する必要がある場合は、一時的なローカル テーブルを作成し、要求されたレコードをインポートします。これは、特に大きなテーブルでは時間がかかります。
レコードセットを使用してコンボボックス コントロールに入力できるようにすると、ユーザーはサーバー側からデータを直接表示できます。
前の 2 つの例に触発されて、次のようなコードを書きました。
Dim rsPersonne as ADODB.recordset
Set rsPersonne = New ADODB.Recordset
Set rsPersonne.ActiveConnection = connexionActive
rsPersonne.CursorType = adOpenDynamic
rsPersonne.LockType = adLockPessimistic
rsPersonne.CursorLocation = adUseClient
rsPersonne.Open "SELECT id_Personne, nomPersonne FROM Tbl_Personne"
fc().Controls("id_Personne").Recordset = rsPersonne
どこ:
- connexionActive: データベース サーバーへの永続的な ADO 接続です。
- fc(): 現在の/アクティブなフォームです
- controls("id_Personne"): 会社のスタッフ リストを入力するコンボボックス コントロールです。
- 2003年版アクセス
残念ながら、うまくいきません!
デバッグ モードでは、要求された列とデータを使用してレコードセットが適切に作成され、コンボ ボックス コントロールに適切に関連付けられていることを確認できます。残念ながら、フォームを表示すると、レコードのない空のコンボボックスが表示され続けます! どんな助けでも大歓迎です。
編集:
このレコードセット プロパティは、標準のコントロール オブジェクトではなく、特定のコンボボックス オブジェクトで実際に使用できます。数日前に発見して非常に驚きました。コンボボックスのコールバック関数を使用するか、コンボボックスの「addItem」メソッドを使用してリストを作成しようとしました。これらはすべて時間がかかります。