2016-05-24 8 views
4

を必要とするクエリの上に構築されたクエリのパラメータをsuppyするためにどのような順序で知っていますALL qryB UNION ALL qryC)、どのように私は、私は複雑なクエリ</p> <p>(qryA UNIONから新しいテーブルを作成したい私のVBAサブルーチンでパラメータ

strSQL = "select * into tblNew from qryComplex" 

後続の問合せ(3初期以上)が開放された形態で見出されるパラメータを(4を想定)を必要とします。

選択肢を協力することにより、それが

Set qdf = db.CreateQueryDef("", strSQL) 
qdf.Parameters(0) = Forms!frmMain.txtF1 
qdf.Parameters(1) = Forms!frmMain.txtF2 
qdf.Parameters(2) = Forms!frmMain.txtF3 
qdf.Parameters(3) = Forms!frmMain.txtF1 
qdf.Execute 

がどのように私は必要な順序が決定的である知っている、例えば働きますか?

次のクエリを掘り起こして組み合わせることなく、順序とコンテンツをどのように判断できますか?

+1

を使用してください。 'For Each prm in qdf.Parameters' ...' Debug.Print prm.Name' ... 'Next' – HansUp

+2

ありがとう!これは機能し、順序を知る必要はありません。qdf.Parametersで各prmに対して prm = Eval(prm.Name) 次のprm – Dranoel

答えて

0

アクセスはPARAMETERS句をサポートしています。これにより、パラメータの一部またはすべてが基本クエリでのみ使用されてもパラメータの順序を決定できます。すべてのパラメータに名前を付け、正しい名前とタイプを使用するようにしてください。 PARAMETERS句のあとにセミコロンを付ける必要があります。

あなたはあなたを助けるために、Accessでパラメータダイアログを使用することができますあなたのすべてのパラメータを仮定し

enter image description here

enter image description here

ショートテキストである必要があり、クエリは次のようになります。

PARAMETERS Param1 Text (255),Param2 Text (255), Param3 Text (255); 
SELECT * INTO tblNew 
    FROM qryComplex; 
0

私はVBAのパラメータを使用し、それらが配置される順序は決して問題にはなりませんでした。関係するすべてのクエリからすべてを記述するだけです。

0

は、クエリを調査するためにVBAを使用して、あなたのパラメータの順序を示すことができ、パラメータの名前ではなく、そのインデックス番号

qdf.Parameters("parameter example name 1") = Forms!frmMain.txtF1 
qdf.Parameters("parameter example name 2") = Forms!frmMain.txtF2 
qdf.Parameters("parameter example name 3") = Forms!frmMain.txtF3 
qdf.Parameters("parameter example name 4") = Forms!frmMain.txtF1 
関連する問題