MS AccessのVBAスクリプトを選択:更新を組み合わせる&SQL文SQL文を作成
私は新しいテーブルSATableに2つのフィールドを導出SQLステートメントを持っている:
SQLScript = "SELECT [DATA OUTPUT TABLE].* INTO SATable"
SQLScript = SQLScript & " FROM [DATA OUTPUT TABLE]"
SQLScript = SQLScript & " WHERE ((([DATA OUTPUT TABLE].[Journal Voucher ID]) In (SELECT [DATA OUTPUT TABLE].[Journal Voucher ID]"
SQLScript = SQLScript & " FROM [DATA OUTPUT TABLE]"
SQLScript = SQLScript & " GROUP BY [DATA OUTPUT TABLE].[Journal Voucher ID]"
SQLScript = SQLScript & " HAVING (((First([DATA OUTPUT TABLE].dBranch))=" & Chr(34) & "Navy" & Chr(34) & ") AND ((Last([DATA OUTPUT TABLE].dBranch))=" & Chr(34) & "USMC" & Chr(34) & ")) OR (((First([DATA OUTPUT TABLE].dBranch))=" & Chr(34) & "USMC" & Chr(34) & ") AND ((Last([DATA OUTPUT TABLE].dBranch))=" & Chr(34) & "Navy" & Chr(34) & "));)));"
DoCmd.RunSQL SQLScript
をその後、私はその文を持っています
DoCmd.RunSQL "UPDATE SATable INNER JOIN [DATA OUTPUT TABLE] ON (SATable.[Journal Voucher ID] = [DATA OUTPUT TABLE].[Journal Voucher ID]) AND (SATable.dBranch = [DATA OUTPUT TABLE].dBranch) SET [DATA OUTPUT TABLE].[Shared Appropriations] = [SATable].[dBranch] & " & Chr(34) & " Shared Appropriation" & Chr(34) & ";"
私の目標は、SATableを削除してこのステートメントを1つのステートメントで実行することです。
私はこのような問題に苦しんでいます。答えを提供するのではなく、いくつかの説明を教えてください。
乾杯、 -E
EDIT:----------------------------------- -------------------------- データ出力表はあります
JVID dBranch SA
1 Navy N/A
2 Navy N/A
3 Navy N/A
4 Navy N/A
A USMC N/A
B USMC N/A
3 USMC N/A
4 USMC N/A
のでSATableは次のようになります。
JVID dBranch SA
3 Navy Navy SA
3 USMC USMC SA
4 Navy Navy SA
4 USMC USMC SA
次に、更新クエリによってSAフィールドが更新されます。デフォルトはN/Aです
自身の10JVID dBranch SA
1 Navy N/A
2 Navy N/A
3 Navy Navy SA
4 Navy Navy SA
A USMC N/A
B USMC N/A
3 USMC USMC SA
4 USMC USMC SA
私はSQLを少し簡略化できるかもしれないと思う。私は、あなたがサンプルデータと期待される出力を持つテーブルを表示すると助けになると思います。 –
私はデータを共有することはできませんが、目的に応じて展開します – Schalton
[データ出力テーブル]と[SATable](3番目のテーブルの結果)をワンステップで選択しますか?または、[DATA OUTPUT TABLE]に更新を適用しますか? –