1

Access 2010 で、バックエンド データベースのプレーン テキスト フィールドに「リッチテキスト」データを入力できるフロントエンド フォームとバックエンド テーブルを何らかの方法で構成しました。

テーブル フィールドは、255 文字の長さのテキスト フィールドとして定義されます。フィールド内のデータを直接表示すると、次のような形式になります。<div>&nbsp;P2 &nbsp;&nbsp;</div>これは、Access の "リッチ テキスト" フィールドに期待するものです。

このテーブル フィールドにバインドされたフィールドは、テキスト形式のプレーン テキスト (!) のテキスト ボックスです。それに関連付けられている検証またはコードはありません。このフィールドにテキストを入力または編集するときに、テキストの書式を適用できます。

多くの点で、これは非常に便利です。長さが 255 文字に制限されているリッチ テキスト フィールドがあります。ただし、並べ替えとフィルタリングは、基になる HTML マークアップを表示するため、許可されていません。他にも欠点があると確信しています。

しかし、私のユーザーはそれを気に入っており、アプリケーションの他の場所でも同じ機能を求めていました...そして、私はそれをどのように行ったのかわかりません. この特定のデータに対して、メモ フィールドとプレーン テキスト フィールドを試していて、この結果につながる一連の変更に出くわしたのではないかと思います。

テーブルと対応するフォーム フィールドのカット ペーストと名前の変更を試みましたが、成功しませんでした。

同様の状況の説明を広範囲にグーグル検索しましたが、成功しませんでした。

私が達成したことを再現する方法はありますか?

4

3 に答える 3

2

テキスト ボックスがリッチ テキスト メモ フィールドにバインドされているフォームがある場合、そのテキスト ボックスに検証規則を設定して、50 文字以下に制限することができます。

検証ルールを表示するテキスト ボックス プロパティ シート

ただし、その長さの制限は、表示される文字だけでなく、マークアップ タグの文字も含めたすべての文字の合計数に基づきます。イミディエイト ウィンドウからのこの例を参照してください。

? DLookup("memo_field", "tblFoo", "id =1")
<div>a <strong>b </strong>c</div>
? Len(DLookup("memo_field", "tblFoo", "id =1"))
 33 

マークアップ文字を長さ制限から除外する場合は、次のPlainText()関数を使用します。

? PlainText(DLookup("memo_field", "tblFoo", "id =1"))
a b c
? Len(PlainText(DLookup("memo_field", "tblFoo", "id =1")))
 5 

その場合、Validation Rule プロパティは次のようになります。

=(Len(PlainText([txtMemo_field]))<=50)

そのメモ フィールドのフィルター条件を使用してソース データをクエリすると、格納されているすべての文字 (マークアップ タグを含む) が評価されます。フィルター条件でマークアップ タグを無視する場合は、次のPlainText()関数を使用します。

SELECT *
FROM YourTable
WHERE PlainText(memo_field) = "a b c";
于 2013-01-02T18:09:26.733 に答える
1

小さなコードで文字数を制限できます。1つの例は次のとおりです。

Private Sub txtText_KeyPress(KeyAscii As Integer)
    If Me.txtText.SelStart >= 254 Then
        KeyAscii = 0
    End If
End Sub

ただし、リッチテキストを含む文字数についてはテストしていません。

于 2013-01-02T15:23:38.507 に答える
1

バックエンド データベースのプレーン テキスト フィールドに「リッチテキスト」データを入力できるようにするフロントエンド フォームとバックエンド テーブルをどのように構成するかを考え出しました。

フロントエンド データベースを、関連するフィールドがリッチ テキスト フィールドとして設定されたテスト バックエンドにリンクし、関連するフォームを作成/編集しました (フィールド フォーマットをリッチ テキストとして)。次に、バックエンド フィールドがプレーン テキストであることを除いて、まったく同じ構造を持つ運用データベースに再リンクしました。

お勧めしませんが、効果はあります。

于 2013-12-02T13:54:52.833 に答える