• ベストアンサー

accessで強制改行文字みたいのはあるの?

フィールドに「メイン/大根 人参 きぬさや/副菜/ほうれん草 しらす」 と あるとして、レポートで出力するときには メイン  大根 人参 きぬさや 副菜  ほうれん草 しらす と 出したいのですがどうすればいいのでしょうか? (ちなみに、この入力方法は変えられないとして) (桐のデータなんです) ついでといっちゃなんなんですが、クエリで式を作って、プロパティで書式を「標準」にしたのですが、カンマがつかないのはどうしてなんでしょう?

質問者が選んだベストアンサー

  • ベストアンサー
noname#1296
noname#1296
回答No.3

Access2000からの新機能ですがReplace関数を使えば出来そうですね。 下記と同様にコントロールソースに =Replace([元のフィールド名],"/",chr(13) & chr(10)) として下さい。 chr(13) & chr(10)で改行コードに置き換えています。

その他の回答 (2)

noname#1296
noname#1296
回答No.2

すみません、誤植があったので再投稿です。 VBA内で書く場合は、 元のフィールドを一文字ずつチェックして、スラッシュをvbCRLFに置き換えれば出来ますよ。 Function RepMoji(strMoji As String) As String Dim intCNT As String RepMoji = "" For intCNT = 1 To Len(strMoji) if Mid$(strMoji,intCNT,1)="/" Then RepMoji=RepMoji & vbCRLF Else RepMoji=RepMoji & Mid$(strMoji,intCNT,1) End If Next End Function これで新しいコントロールボックスのコントロールソ ースに「=RepMoji(元のフィールド名)」とすれば、表示されるはずです。 元のフィールドは非表示にして置いておかないとダメ ですが。 書式の件はわかりませんが常にカンマ編集したいので したら Format(式,"#,##0.00;-#,##0.00;0.00;''") としてみては?

konkisin
質問者

補足

早速の回答ありがとうございます。 ちなみにVBAを使わないでやる方法はあるのでしょうか?

noname#1296
noname#1296
回答No.1

VBA内で書く場合は、 元のフィールドを一文字ずつチェックして、スラッシュをvbCRLFに置き換えれば出来ますよ。 Function RepMoji(strMoji As Strin) As String Dim intCNT As String RepMoji = "" For intCNT = 1 To Len(strMoji) if Mid$(strMoji,intCNT,1)="/" Then RepMoji=RepMoji & vbCRLF Else RepMoji=RepMoji & Mid$(strMoji,intCNT,1) End If Next End Function これで新しいコントロールボックスのコントロールソ ースに「=RepMoji(元のフィールド名)」 とすれば、表示されるはずです。 元のフィールドは非表示にして置いておかないとダメ ですが。 書式の件はわかりませんが常にカンマ編集したいので したら Format(式,"#,##0.00;-#,##0.00","0.00","") としてみては?

関連するQ&A