2017-11-30 5 views
0

私は何を求めているのか理解したいと思っています。私は、ユーザー入力に基づいて特定のタイプのInner Joinを選択するクエリを持っています。Microsoft Access 2016:条件付き内部が複数のケースに参加する

これは私が持っているものです。

クエリ:

  • qryFiltered(メインクエリ)
  • qryLand(サブ)
  • qrySea(サブ)
  • qryAllOrder(サブ)

テーブル:

  • tblLowPriority

フォーム:

:(ogLandSeaと呼ばれるオプションのグループがあります)

  • EnterWork私のメインのクエリ "qryFiltered" で

、私は、次のSQLコードを持っています

SELECT qryAllOrder.* 
 

 
FROM 
 
SWITCH 
 
(Forms!EnterWork!ogLandSea = 1, (qryAllOrder LEFT JOIN tblLowPriority ON qryAllOrder.[WORK_ORDER_NBR] = tblLowPriority.[WO]) INNER JOIN qrySea ON qryAllOrder.WORK_ORDER_NBR = qrySea.WORK_ORDER_NBR, 
 

 
Forms!EnterWork!ogLandSea = 2, (qryAllOrder LEFT JOIN tblLowPriority ON qryAllOrder.[WORK_ORDER_NBR] = tblLowPriority.[WO]) INNER JOIN qryLand ON qryAllOrder.WORK_ORDER_NBR = qryLand.WORK_ORDER_NBR) 
 

 
WHERE tblLowPriority.WO Is Null

基本的に、私が探しているのは、ユーザーがフォーム上で選択した内容に基づいて結合を選択することです。内部結合は、この入力に基づいてqrySeaまたはqryLandを選択します。私が得ているエラーは: "構文エラーFROM句で。

私はここで間違っていますか?スイッチ機能は動作しません。私はSwitch機能を使わずに2つのLandとSeaオプションを別々に試してみました。私は、ユーザー入力に基づいて内部結合を変更する方法を理解していないようです。

あなたのすべての感謝を感謝します!

+0

構文はサポートされていません。テーブルの構造、データ、テーブルのデータ、クエリの定義の詳細を共有する必要があるため、おそらく他の方法で結果を生成することができます。データベースをどこかに投稿する方が簡単かもしれません。 –

+0

1つのクエリと1つのレポートを作成し、ユーザーの選択に従ってレポートするフィルタ条件を適用します。 – June7

答えて

0

メインクエリから2つのサブクエリへの左結合を実行することで、これを実行できました。そして、私はスイッチの基準を置くにWHERE句:

WHERE (Switch([Forms]![EnterWork]![ogLandSea]=1,[qrySea]![WORK_ORDER_NBR] Is Not Null Or [qrySea]![WORK_ORDER_NBR] Is Null Or [qryLand]![WORK_ORDER_NBR] Is Not Null,[Forms]![EnterWork]![ogLandSea]=2,[qrySea]![WORK_ORDER_NBR] Is Not Null,[Forms]![EnterWork]![ogLandSea]=3,[qryLand]![WORK_ORDER_NBR] Is Not Null,[Forms]![EnterWork]![ogFN]=4,[qrySea]![WORK_ORDER_NBR] Is Null And [qryLand]![WORK_ORDER_NBR] Is Null))<>False)

は基本的に、これはそれが何をするかです:

  • オプション1:メインクエリからのすべてのレコードを表示し
  • オプション2:qrySeaにあるレコードのみを表示する
  • オプション3:qryLandにあるレコードのみを表示する
  • オプション4:qrySeaでもqryLandでもないレコードのみを表示する
関連する問題