2016-10-12 15 views
0

私はアクセスが非常に新しく、私がやろうとしていることは非常にシンプルであるようですが、私はそれを得ることができません。MS Access-Return Record現在のレコードの下に

私は建築技術者であり、建物を設計するためのデータベースを作成しています。

My Diaphragm Analysis Tableには、「Floor_Name」、「Story_Number」、「Wall_Left」、および「Wall_Right」の各フィールドが含まれています。私は、 "Shear_Wall_incremental_Deflection"と呼ばれる別のクエリを見て、ダイアフラム解析からの入力に基づいてそこから情報を引き出す新しいクエリを書きたいと思います。 "Wall_Right"(SW01)の値を "Shear_Wall_incremental_Deflection"で対応する値を見つけて、ダイアフラム解析テーブルの "Story_Number"の代わりに "Story_Below"に対応する "Elastic_Deflection"を報告したいと思います。 「Story_Number」= 1の場合、「Story_Below」は0になり、出力は0になります。

「Wall_Left」と同じ手順ですが、一度に1ステップずつ取ります。

私はWallbuildとWalleright = Story_Belowという2つの基準を持つ式ビルダーで "DLookup"を使用する必要があると思われますが、これを試すとエラーが発生します。

「Shear_Wall_incremental_Deflection」は、SW01で始まり、ストーリー3のSWWを通り、再びストーリー2のSW01で始まり、ストーリー1まで続きます。画像内のクエリ結果の一部が、安心、3

下の物語番号の「Elastic_Deflection」の値がここにあります式ビルダでの私の試みです:

Right_Defl_in:式IIf(IsNullの([Diaphragm_Analysis ] [[Wall_Right]))、0、DLookUp( "[Elastic_Deflection_in]"、 "[Shear_Wall_incremental_Deflection]"、 "[Shear_Wall_incremental_Deflection]![Story_Below] =" & [Diaph ragm_Analysis]![Story_Number]))

私は私のすべてのDiaphragm_Analysisからのレコードのみ、それらの「Shear_Wall_incremental_Deflection」からを含める必要がありますDiaphragm_Analysis「Wall_Left」と「Wall_Right」からの参加を知っている![Shear_Walls]ここで、結合フィールドは、同じであるが、それは私が知っていることすべてについてです。

詳細情報を含めるかデータベースファイルを送信する必要があるかどうかお知らせください。

ありがとうございました。

Diaphragm Analysis (Input Table)

Shear_Wall_incremental_Deflection (Partial Image of Query)

答えて

0

私は何が不足していることは、あなたが二回Diaphragm_Analysisに参加すべきであることを、対応するElastic_Deflection値を取得するためにそれを使用するStory_Below値と第2の取得するのは初めてだと思います。 、私は別のクエリ(一つだけが、今回の参加が必要です)と「一緒にORUNION集合演算を(次のSQLが未検証であることに注意)を使用して、2つのクエリを記述しますStory_Belowがゼロである特別な場合を扱うために

SELECT swid.Floor_Name, 
     swid.Story_Number, 
     swid.Wall_Left, 
     da2.Elastic_Deflection AS Story_Below_Elastic_Deflection 
    FROM (Shear_Wall_incremental_Deflection swid 
     INNER JOIN Diaphragm_Analysis da1 
      ON da1.ShearWall = swid.Wall_Left) 
     INNER JOIN Diaphragm_Analysis da2 
      ON da2.ShearWall = swid.Wall_Left 
       AND da2.Story_Number = da1.Story_Below 
UNION 
SELECT swid.Floor_Name, 
     swid.Story_Number, 
     swid.Wall_Left, 
     0 AS Story_Below_Elastic_Deflection 
    FROM Shear_Wall_incremental_Deflection swid 
     INNER JOIN Diaphragm_Analysis da1 
      ON da1.ShearWall = swid.Wall_Left 
WHERE da1.Story_Below = 0; 

私はStory_Numberがゼロのデータがないと仮定してきました。

+0

ありがとうございました!これをAccessのSQLエディタにコピーすると、FROM句に構文エラーがあることを示します。私はSQLを本当に知っていないし、フィールドを結合するGUIの "スパイダーウェブ"の方法でやってみようとしているので、これをデバッグする最良の方法がわからない。人々はメモ帳++やそれに類する環境でSQLを書いてから、Accessにコピーしますか?私はこれについてあなたの意見を聞くことに興味があります。 – nikenned

+0

@nikenned:間違った場所にかっこがありました。あなたは正しく推測しました:私はテキストエディタでこれを書きました! – onedaywhen

+0

優秀、あなたの助けに感謝します。 – nikenned

関連する問題