Microsoft Access 掲示板

SQL更新の記述(SET部) / 1

4 コメント
views
4 フォロー
1

SQL内の文字列リテラルは引用符("または')で囲む必要があります。
つまり、下記のようなSQLになります。

UPDATE [T発注Sub] INNER JOIN [Q一括変更用チェックON分] 
         ON [T発注Sub].[発注明細ID] = [Q一括変更用チェックON分].[発注明細ID] 
       SET [T発注Sub].[備考・MEMO] = [T発注Sub].[備考・MEMO] & ' 田中 さんへ直送';

※tyokusou の中身が 田中 の場合

このSQLをVBA内に記述する場合は、VBAとしての文字列リテラルにする必要があるので、引用符(")で囲む必要があります。

Dim sSQL As String
sSQL = "UPDATE [T発注Sub] INNER JOIN [Q一括変更用チェックON分] " & _
       "ON [T発注Sub].[発注明細ID] = [Q一括変更用チェックON分].[発注明細ID] " & _
       "SET [T発注Sub].[備考・MEMO] = [T発注Sub].[備考・MEMO] & ' 田中 さんへ直送';"

変数部分は文字列リテラルの外に出す必要がありますので、下記のようになります。

Dim sSQL As String, tyokusou As String
tyokusou = "田中"
sSQL = "UPDATE [T発注Sub] INNER JOIN [Q一括変更用チェックON分] " & _
       "ON [T発注Sub].[発注明細ID] = [Q一括変更用チェックON分].[発注明細ID] " & _
       "SET [T発注Sub].[備考・MEMO] = [T発注Sub].[備考・MEMO] & ' " & tyokusou & " さんへ直送';"

下記を一読しておくと理解が深まると思います。

Access上のコード内で引用符(")と単引用符(')の使い分けについて - hatena chips

通報 ...