Access VBAの質問です Aとゆう現場があるとします A【現場】にはBとゆう【元請】がありその下にCとゆう【1次会社】があります。 続いて2次下請けに複数の会社、DやEやFとゆう【2次会社】・・・と続きます テーブルは ①現場リスト(現場ID・現場名・現場略名・職長コード・元請コード・住所) ②現場順位設定リスト(現場コード・現場順位コード・会社コード) ③現場順位リスト(現場順位ID・現場順位) ⑤安全書類リスト(安全書類ID・書類種類1・書類種類2) ⑪名簿リスト(名簿ID・氏名) ㉒取引先リスト(取引先ID・会社名) リレーションを設定は ①現場ID=②現場コード ①職長コード=⑪名簿ID ①元請コード=㉒取引先ID ②現場順位コード=③現場順位ID ②会社コード=㉒_1.取引先ID AS 1次 ⑤安全書類リスト=①現場ID そして帳票フォームに【現場ID】【現場名】【現場略名】【元請名】【1次会社】【職長名】【住所】【書類種類1】【書類種類2】を表示しています。 ※元請の会社と1次下請けの会社は㉒取引先リストを個々にリレーションしています 2次下請け3次下請け・・・も同じです そこで検索して条件に合う現場を表示させています。 ここまで出来たのですが、さらに検索をする時に現在は1次会社を入力すれば該当の現場が表示されるのですが【1次会社】ではなく元請より下の施工会社全て含めて検索をかけたいのです。 フォームには1次会社しか表示させていない為、SQLのWHERE区で"WHERE gj.現場順位コード) = 1 "としています。 2次会社・3次会社・・・と表示させる事も考えたのですが、そうすると現場名が重複してしまいそれも断念しました。 さらに関係する会社を全て㉒取引先リストにしているので複雑になってます。 'SQL文 strSQL = "SELECT gn.現場ID, gn.現場名, gn.現場略名, tk.会社名, gj.現場順位コード, MS_22_取引先リスト_1.会社名 AS 1次, " strSQL = strSQL & "mb.氏名, [gn]![現場住所都道府県] & [gn]![現場住所市区町村] & [gn]![現場住所番地] & [gn]![現場住所アパート] AS 住所, " strSQL = strSQL & "Nz(an.書類種類1,0) as 書類種類1,Nz(an.書類種類2,0) as 書類種類2 " strSQL = strSQL & "FROM ((((MS_01_現場リスト gn " strSQL = strSQL & "LEFT JOIN MS_22_取引先リスト tk ON gn.元請コード = tk.取引先ID) " strSQL = strSQL & "LEFT JOIN MS_02_現場順位設定リスト gj ON gn.現場ID = gj.現場コード) " strSQL = strSQL & "LEFT JOIN MS_22_取引先リスト AS MS_22_取引先リスト_1 ON gj.会社コード = MS_22_取引先リスト_1.取引先ID) " strSQL = strSQL & "LEFT JOIN MS_11_名簿リスト mb ON gn.職長コード = mb.名簿ID) " strSQL = strSQL & "LEFT JOIN MS_05_安全書類リスト an ON gn.現場ID = an.安全書類ID " strSQL = strSQL & "WHERE (((gj.現場順位コード) = 1)) " strSQL = strSQL & "ORDER BY gn.現場ID DESC" ’検索用のSQL文 If IsNull(Me.txt現場ID検索) = False Then strSQL = strSQL & " And gn.現場ID Like '*" & Me.txt現場ID検索 & "*'" End If If IsNull(Me.txt現場名検索) = False Then strSQL = strSQL & " And (gn.現場名 Like '*" & Me.txt現場名検索 & "*'" strSQL = strSQL & " Or gn.現場略名 Like '*" & Me.txt現場名検索 & "*')" End If If IsNull(Me.txt元請検索) = False Then strSQL = strSQL & " And tk.会社名 Like '*" & Me.txt元請検索 & "*'" End If ↓追記に続きます
Microsoft Access