1

SQL クエリで「動的」フィールドを作成しようとしています

INSERT INTO tblCARS (CreateField("[tblCARS]","[colors]","TEXT")) 
SELECT      avail_colors
FROM        tblSHOPS
WHERE       car_model = model_car;

これは私に同じ結果を与えるはずです

INSERT INTO tblCARS (colors) 
SELECT      avail_colors
FROM        tblSHOPS
WHERE       car_model = model_car;

フィールド [colors] が存在しないため、クエリを実行するときに [tblCARS] という既存のテーブルに追加したいと考えています。

関数CreateField()は次のようになります

Public Function CreateField(strTable As String, strField As String, strType As String) As Variant
    CreateField = Null

    If (strField <> vbNullString) And (DoesTblFieldExist(strTable, strField) = False) Then
        CurrentDb.Execute "ALTER TABLE " & strTable & " ADD COLUMN " & strField & " " & strType
    End If

    CreateField = strField
End Function

クエリを実行すると、Access で "不正な構文" (翻訳済み) というエラーが表示され、カーソルが 2 番目の括弧で停止します。

Access クエリで実行時にフィールドを作成することに成功した人はいますか?
これを完全に VBA で実行できることはわかっていますが、それが私の目標ではありません。

ヒントはありますか?

4

1 に答える 1