2

DAO を使用して Access データベースにデータを挿入しています。フィールドを連結すると、末尾のスペースが削除されます。末尾のスペースを保持するデータを挿入するにはどうすればよいですか?

たとえば、次のコードは、列「mytext」を作成するときに、フィールド ref および name の末尾のスペースを削除します。

INSERT INTO mytest (ref, mytext) SELECT ref, ref + name + '/' FROM mytable

mytable は、私がリンクした FoxPro 2.5 テーブルです。FoxPro テーブルの列には末尾のスペースが含まれていると想定しています。FoxPro のデータはフィールドの全幅を占有せず、FoxPro では連結演算子を含む REPLACE を実行すると、末尾のスペースが表示されます。

REPLACE ALL mytext WITH ref + name

列 "ref" および "name" は、長さ 10 の文字フィールドです。 ref = "S1" および name = "fred" の場合 - FoxPro で実行されるコマンドは、mytext を "S1" に設定し、8 つのスペース、"fred"、4 つの想定スペースを設定します。 - VB6 で実行される DAO コマンドは、mytext を "S1fred" に設定します。

4

1 に答える 1

1

[名前] が 10 であると仮定すると...

明示的にスペースを追加するとうまくいくかもしれません

INSERT INTO mytest (ref, mytext) 
SELECT ref + space(10-len(ref)), 
       ref + [name] + space(20 - (len(ref)+len([name]) ) )+'/' 
FROM mytable

ref や name の列サイズが変更された場合は、このクエリを維持する必要があります。安全のために left(ref + space(10), 10) を使用します。列サイズが変更されても、少なくとも壊れることはありません

于 2012-12-24T09:00:27.740 に答える