3

バインドされたフォームがあります。フォームのデータソースは、パラメーターを使用したクエリです。フォームが読み込まれる前にvbaでパラメータを設定することは可能ですか?パラメータのポップアップは、form_openイベントの前でもポップアップします:/

私は代替案を知っています..パラメータを使用して独自のクエリ文字列を作成するか、querydefsのSQLを操作します。しかし、私はそれらが好きではありません。

現時点では、設計時にバインドされていないフォームを使用し、実行時にそれらをパラメータークエリにバインドします。しかし、設計時にバインドされていないフォームを持つことはそれほど便利ではありません。

誰かアイデア?

ご挨拶

エギ

4

2 に答える 2

4

あなたが言った:

現時点では、設計時にバインドされていないフォームを使用し、実行時にそれらをパラメータークエリにバインドします。しかし、設計時にバインドされていないフォームを持つことはそれほど便利ではありません。

1つの代替方法は、「ダミー」のRecordSourceを使用して、設計時にバインドされたフォームを作成し、実行時にパラメータークエリを使用してRecordSourceを更新することです。

ダミークエリの例は次のようになります。

SELECT 1 AS EmployeeID, 'John' AS FirstName, 'Doe' AS LastName, #1/1/1980# AS DoB

これにより、[フィールドリスト]ボックスにフィールド、、、、が入力さEmployeeIDれます。明らかに、ダミーのクエリフィールド名には、実行時のフィールド名を反映させる必要があります。FirstNameLastNameDoB

これにより、ロード時にパラメータポップアップが表示される問題も回避されます。

于 2012-04-04T15:40:10.237 に答える
0

実際、ここでの基本的な解決策は、使用するSQLを変更せずに、単にパラメーターを削除することです。アクセスフォームにはwhere句があります。これらは、まさにこの問題を解決するように設計されています。これは、パラメータを使用したクエリが不要であり、フォームやレポートのSQLを変更する必要がないことを意味します。

フォームを開くときにwhere句を渡すだけです。

したがって、クエリ文字列を作成する代替手段は必要ありません。また、querydefのSQLを操作する代替手段も必要ありません。また、フォームのデータソースを変更する必要はありません。

また、クエリからパラメータを削除すると、フォーム、レポート、エクスポートルーチン、およびあらゆる種類の用途でクエリを自由に使用できます。

于 2012-04-05T09:13:34.017 に答える