#525 メモ型フィールドにSQLで改行コードを保存するには? VBA

メモ型フィールドにSQL文を使って改行コードを保存したい場合、つまりそのフィールドに保存する文字列の中に改行を入れたい場合、まず次のようなコードが思い浮かぶと思います。


Dim dbs As Database
Dim strSQL As String
Dim strMemo As String

Set dbs = CurrentDb
strMemo = "備考の1行目" & vbCrLf & "備考の2行目"
strSQL = "INSERT INTO 仕入先 (備考) VALUES (" & strMemo & ")"
dbs.Execute strSQL


この場合、プログラム上の”SQL文自体(strSQL変数に代入された文字列)”が改行されるだけで、レコードとして挿入されるデータの文字列内(strMemo変数に代入された文字列)は改行されない結果となり、Executeメソッドの部分でエラーとなってしまいます。

そこでこのようなときは、次のように、改行コード(vbCrLf)も含めたデータの文字列全体をさらに「"(ダブルクォーテーション)」で囲みます。・・・・VBAの書き方としては文字列の範囲を示すためにも「"」を使いますので、「"」を4つ連ねた書き方になります。


Dim dbs As Database
Dim strSQL As String
Dim strMemo As String

Set dbs = CurrentDb
strMemo = """" & "備考の1行目" & vbCrLf & "備考の2行目" & """"
strSQL = "INSERT INTO 仕入先 (備考) VALUES (" & strMemo & ")"
dbs.Execute strSQL

| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved