-1

Microsoft Access で VBA マクロを作成できません。私がやろうとしているのは、SQL を使用して出力テーブルを作成することですが、同時に複数の列に書き込みたいと考えています。

これにより、1 つの列に必要なすべての値が得られます。

Docmd.RunSQL “INSERT INTO Output (TargetCol1) SELECT [Field1] FROM [Table1] WHERE [Criteria1] = ‘Value’ GROUP BY Field1”

これを複数回実行して、他の列に必要な値を取得しようとすると。INSERT INTO はデータを新しいレコードとして書き込むため、次のように空白スペースが残ります。

Field1----Field2
Value----<Null>
Value----<Null>
Value----<Null>
<Null>----Value
<Null>----Value

私が欲しいのは:

Field1----Field2
Value---- Value
Value---- Value
Value----<Null>

変数を作成し、ネストされたステートメントを作成しようとしましたが、作成したものを実行しようとすると、最初の行に「コンパイル エラー、オブジェクトが必要です」が表示されます。

Set x = Docmd.RunSQL “INSERT INTO Output (TargetCol1) SELECT [Field1] FROM [Table1] WHERE      [Criteria1] = ‘Value’ GROUP BY Field1”
Set y = Docmd.RunSQL “INSERT INTO Output (TargetCol2) SELECT [Field2] FROM [Table1] WHERE  [Criteria2] = ‘Value’ GROUP BY Field2”
Docmd.runsql “INSERT INTO Output (TargetCol1, TargetCol2) Values (x,y)”
4

1 に答える 1

2

なぜだめですか:

INSERT INTO Output (TargetCol1,TargetCol2) SELECT [Field1,Field2] FROM [Table1]  [Criteria1] = 'Value'"

Set はオブジェクトに使用されますが、 にはありませんSet x = Docmd.RunSQL。順序はテーブルには関係ありません。

クエリを設定する最も簡単な方法は、クエリ デザイン ウィンドウを使用することです。クエリの作成をガイドし、SQL ビューに切り替えて SQL を取得できます。

RunSQL を使用しないことをお勧めします: DoCmd.SetWarnings と CurrentDB.Execute の違いは何ですか

于 2012-09-10T12:23:29.573 に答える