プロが教えるわが家の防犯対策術!

フィールドに「メイン/大根 人参 きぬさや/副菜/ほうれん草 しらす」
と あるとして、レポートで出力するときには

メイン
 大根 人参 きぬさや
副菜
 ほうれん草 しらす

と 出したいのですがどうすればいいのでしょうか?
(ちなみに、この入力方法は変えられないとして)
(桐のデータなんです)

ついでといっちゃなんなんですが、クエリで式を作って、プロパティで書式を「標準」にしたのですが、カンマがつかないのはどうしてなんでしょう?

A 回答 (3件)

Access2000からの新機能ですがReplace関数を使えば出来そうですね。



下記と同様にコントロールソースに
=Replace([元のフィールド名],"/",chr(13) & chr(10))
として下さい。
chr(13) & chr(10)で改行コードに置き換えています。
    • good
    • 0

すみません、誤植があったので再投稿です。




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;''")
としてみては?

この回答への補足

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

補足日時:2001/09/06 16:44
    • good
    • 0

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","")
としてみては?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す