1

文字間隔を使用するには、MSAccessのレポートのフィールドにリッチテキスト形式を使用する必要があります。レポートで、フィールドのプロパティのテキスト形式をプレーンテキストからリッチテキストに変更しようとすると、「入力した設定はこのプロパティに対して無効です」というエラーが発生します。これは、フィールドがメモデータ型ではないためだと思います(明らかに、RTFをサポートする唯一のデータ型です)。これは「 XXXX_XXXX 」の形式です。ここで、*と_はリテラル文字であり、Xは0から9までの数字を表します。

コンテキストの場合:このDBのワークフローは、IDを指定するときに、リンクされたテーブルをクエリし、クエリ結果に基づいてレポートを生成し、それをPDFに出力する単一のフォームを持つことです。

フィールドの制御ソースは、クエリ結果のフィールドです。

すべて正常に動作しますが、このフィールドをRTFに設定できる必要があります。違いが生じる場合、フォントはTrueTypeフォントです。基本的に、フィールドの高さを固定し、幅全体に水平に伸ばしたいと思います。つまり、CSSでは、大まかに「最大高さ:30px、幅:100%」と定義されます。

私が試したこと:

クエリデザインビューで、フィールドのテキスト形式をリッチテキストに設定します。レポートデザインビューでフィールドのテキスト形式を設定すると、引き続きエラーが発生します。

他のアイデアは、フィールドをメモデータ型に明示的に変換することです(255を超えるものは暗黙的にこの型に変換されます)が、SQl [MS SQL ServerではCONVERT([fieldname] 、 文章)]

カスタムフォーマットの作成は役に立ちますか?それがまだ平文であるからではないと思います。

ヘルプとコメントを事前に感謝します。

4

3 に答える 3

3

基になる列がリッチテキスト列(メモ)でない限り、BOUNDテキストボックスをリッチテキストに変更することはできません。ただし、簡単な回避策は、バインドされていないテキストボックスをレポートに配置することです。プロパティシートでテキストをリッチテキストに設定するだけです(この場合も、コードを使用してこの値を変更する必要はありません)。フォームにテキストボックスを配置したら、レコードごとに起動する「detail-format」フォームで、次のコードを実行できます。

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

    Me.MyTextBox = "<div><font face=Arial size=4 color=Blue>" & _
                   "<strong>My Blue Bold Text</strong></font></div>"

End Sub

したがって、上記のコードの他の列から値を取得できますが、レポートでは、任意の列を参照するための対応するバインドされたコントロールが必要であることに注意してください。フォームにはこの要件がありません。

于 2009-11-05T15:55:37.983 に答える
2

提案されたアイデアの1つに対処するためだけに:

他のアイデアは、フィールドをメモデータ型に明示的に変換することです(255を超えるものは暗黙的にこの型に変換されます)が、SQl [MS SQL ServerではCONVERT([fieldname] 、 文章)]

残念ながら、AccessDatabaseEngineは標準SQLのCAST()関数をサポートしていません:(

Access Database Engineは式サービスをVBA5ライブラリと共有しているため(VBA6ではないのはなぜですか?-誰が知っていますか?!)、ほとんどのVBAキャスト関数を使用できますが、残念ながらデータ型間のマッピングは適切ではありません。関連する唯一の関数はCStr()(にキャストString)ですが、その結果がさまざまなAccess Database Engineテキストデータ型(可変長VARCHAR、固定長CHAR、Unicode圧縮の有無にかかわらず)にどのように強制されるかMEMOは、残念ながら文書化されていません。

例外が1つあります。AccessDatabaseEngineには独自のCDEC()(キャスト先DECIMAL)関数がありますが、残念ながら、常に完全に壊れています。

于 2009-11-05T11:12:21.557 に答える
-3

テキストフィールドをテーブルの最後のフィールドにしてみてください。テーブルごとにメモフィールドを1つしか持てず、メモフィールドは最後のフィールドでなければならないことをどこかで思い出しているようです。

于 2009-11-05T00:18:19.323 に答える