コードを使用してAccessテーブルの「行ソース」の値を変更したいと思います。このようにして、ユーザーが列のコンボボックスで選択できるものをフィルタリングできます。
3 に答える
Dave DuPlantis の回答に沿って、さまざまな Microsoft Access MVP による Access Web からの「The Evils of Lookup Fields in Tables」を読みたいと思うかもしれません。
これがオプションかどうかはわかりませんが、テーブルとフィルタリングオプションを分離し、データの入力と変更を行うフォームを設定し、コードを使用してコンボボックスの行ソースを設定することをお勧めします。フォーム。すでに見てきたように、Accessはテーブルを単なるテーブル以上のものとして扱う機会を提供しますが、それは主にGUIの目的のためです。舞台裏では、Accessはデータ入力のためにフォームを操作することを好みます。
テーブル方式を追求する必要がある場合は、ここで参照されているMSナレッジベースの記事を参照してみてください。(kbの記事はこことここにあります。)これらはAccess 97を参照しており、関連性がなくなっている可能性があることに注意してください。Access tabledefで、これらのプロパティへの最近の参照を見つけることができませんでした。
あなたの質問はかなり混乱しています。「RowSource」は、リスト ボックスまたはコンボ ボックスのプロパティです。テーブルには RowSource がありませんが、Remou が指摘するように、Access ではテーブル内にフィールドを定義して、関連するテーブルから値を検索するコンボ ボックスを表示することができます。このコンボ ボックスは行ソースを持っているので、おそらくそれはあなたの言いたいことですが、それは単にひどい考えです。
テーブル デザインで定義するコンボ ボックスはユーザー インターフェイス オブジェクトであり、UI はテーブル定義には属しません。あらゆる種類の問題を引き起こすだけでなく、ルックアップ フィールドの定義を無効にする他のテーブルへの変更によって、テーブル自体が破損する可能性があることを意味します。
ユーザー インターフェース コントロールはユーザー インターフェース オブジェクトに属します。つまり、それらはフォームにのみ配置する必要があります (または、最低レベルでは、保存されたクエリに配置する必要があります)。
ユーザーのフィルタリングは、やはりユーザー インターフェイスの問題であり、テーブルの設計とは関係ありません。