複数のINSERTSQLクエリの使用を避けようとしていますが、必要な場合は使用します。簡単に使用できることを読みましたがINSERT INTO table(field) SELECT 'value' UNION ALL SELECT ...
、MS Access 2007での構文に問題があります。いくつかのバリエーションを試しましたが、機能しません。常に「構文が正しくありません」または「演算子がありません」というエラーが発生します。ALL
修飾子の有無、キーワードの有無などを試しSELECT
ました。VBAを使用してクエリを作成する方法は次のとおりです。
sql_query = "INSERT INTO " & tmp_tbl_name & " (transit)"
For Each xlCell In xlRange
sql_query = sql_query & " SELECT '" & xlCell.Value & "' "
sql_query = sql_query & "UNION"
Next xlCell
sql_query = Mid(sql_query, 1, Len(sql_query) - 6)
DoCmd.RunSQL (sql_query)
これが私が生成しているクエリの短縮されたサンプルです:
INSERT INTO tmp_tbl_2012_08_17_15_44_03 (transit)
SELECT 'L02_NA010001'
UNION
SELECT 'L13_PB010001'
UNION
SELECT 'L31_US020001'
UNION
SELECT 'L33_EX020010'
...
テーブルにはVARCHAR(255)
フィールドが1つだけあり、他のテーブルとの関係はありません(これは、いくつかの処理を行い、その一部の要素のみを保持するための一時的なテーブルです)。
どうもありがとう !