2009-07-15 6 views
0

私は時々私は、リストボックスにデータを埋めるしたい例えばコードまたはコントロールのプロパティは、MS-ACCESSの方が優れていますか?

、使用するかを選択することは本当に難しいです、あなたが選択したデータでそれを行うと、それに対するクエリを構築し、また、あなたが構築することができましたVBAコードを作成し、コントロールイベントの下に置きます。

だからどちらが良いのか、私たちが言うのはどちらが最善の選択肢があればいいでしょうか?

おかげで

+0

従来のAccessアプリケーション(Accessデータベースエンジンのバックエンドを持つExcel Userformフロントエンド)とは対照的に、フォームにアクセスすることを意味しますか?もしそうなら、コントロールをテーブルやQueryオブジェクトにバインドするのはアクセスフォームの要点の一種なので、なぜそれと戦うのですか? – onedaywhen

答えて

2

質問はこの方法を置くことができますへの最善の方法は何ですかリストボックスのコントロールソースを設定しますか?

次の質問に最適な質問:コントロールソースを静的メソッドまたは動的メソッドで宣言しますか?

スタティックは、新しいリストボックス用にVBAウィザードが生成するものです。静的はシンプルであり、あなたの必要がそうでない限り簡単です。通常のニーズは、(birgerの言っているように)低速のフォームや洗練されたフォームの自動化で問題を解決することです。

動的メソッドを使用している場合は、VBAを使用しています。アドレッシングの必要性がスピードである場合は、フォームがロードされるときにコントロールソースを設定できます。オートメーションが必要な場合は、フォームがロードされたときにアクションを実行したり、AfterUpdateやコマンドボタンの選択などのトリガーを使用したりすることがあります。

0

私はいつものクエリを使用し、ほとんどそうしない理由を考えていません。リストボックスにカスタムアイテム(「空の」など)を追加する場合や、スピードが問題になる場合は例外です。結局のところ、リストボックスに10.000以上のアイテムがある必要は全くありません。その場合は、リストボックスを埋めるカスタムイベントが適しています。

+0

[なし]や[すべて]などのカスタム項目を追加する場合でも、UNIONクエリを使用します。 –

1

コードをもっと複雑にする必要はありません。 1つの表の内容をリストボックスにバインドするだけの場合は、コントロールのプロパティを使用します。それより複雑な場合は、クエリがそれを行います。

(あなたはまた、あなたが作るより多くのコードを、あなたが維持するために持っているより多くのコードは、そうより必ずしも良いとは限りませんことを覚えておいてください。)

+0

私は頻繁にクエリの行ソースにクエリを残しますが、私は常にクエリを使用します。私は、ほとんどの場合、データをアルファベット順またはユーザー指定の順序で並べ替える必要があります。たとえば、Regular Time、Over Time、Double Timeなどです。 –

0

可能であれば、コールバック機能を使用するよりもはるかに短い開発時間です。しかし、APIコールなどを使用して決定されたドライブ、ファイル、またはその他のデータのリストを表示するような場合があります。

0

リスト/コンボボックスの行ソースに対してSelect Queryを使用する傾向があります。ファイル名のリストを最初に一時テーブルに入れてから選択する必要がある場合でも、このリストソースを使用する傾向があります。

1

すべてのSQLコードを1つの場所に保管し、可能な限りデータに「閉じる」ようにしてください。私にとっては、これは、「バックエンド」のVIEWPROCEDUREが、「フロントエンド」のデータアクセス技術を使用して呼び出されたことを意味します。テーブルの列名の1つが変更され、 'バックエンド'を使用するすべてのフロントエンドアプリケーションですべてのフォームのすべてのプロパティのすべてのコントロールを検索しなければならない場合は、すべてのフロントのすべてのオブジェクトのすべてのVBAコード

関連する問題