0

以下に示すように、アクセステーブル列内の「テキスト」を見つけて新しいデータに置き換えようとしています。

これは列データ内のテキストです

Update table set column = Replace(column, 'some text', 'new data')

これはアクセス データベースでは機能しません。同じアクションを実行する別の方法はありますか?

4

1 に答える 1

0

VBA では機能しますが、SQL では WHERE 句を使用する必要がある場合があります。つまり、テキストが見つからない場合に Replace() を使用しようとしません。

Update table set column = Replace(column, 'some text', 'new data') 
WHERE column Like '*some text*'

ただし、これをテストする機会はありませんでした。

field-name を角括弧で囲むことも価値があるかもしれませんがReplace([column],、これは実際には必要ではありません。

追加あなたが発見したように、C# から Replace を使用することはできません。他の関数 (Left、Right、Mid、Trim) を使用できますが、これは非常に単純な置換 (おそらく左から) でない限り役に立ちません。それ以外の場合は、更新可能なものを取得してループし、RecordSetC# で置換を実行する必要があります。

または、Access 内からデータベースにアクセスできる場合は、クエリを作成して保存し、Access-Automation を使用してこのクエリを実行 (開く) することができます。更新可能なレコードセットを取得することをお勧めします。

于 2013-07-15T22:32:24.180 に答える