問題タブ [memo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
796 参照

sql - MS Access メモ フィールドが切り捨てられました

この問題はおなじみのように聞こえますが、このフォーラムや他の場所で見つけた同様の質問にひねりを加えているため、最後まで読んでください。Access 2010 を使用して簡単なアプリを作成し、別のシステムで実行するコードを作成しています。その一環として、ユーザーごとのレコード数を 1 つのレコードに変換し、すべてのユーザー エントリをカンマで区切ります。説明のために、ここに私の入力のサンプルを示します。

そして、私はこの形式でそれを必要としています:

これまでのところ、とてもおなじみです。2008 年に Allen Brown によって投稿されたコード ( http://allenbrowne.com/func-concat.html ) を使用しましたが、問題が発生しました。コードは問題なく動作します。デバッグすると、出力文字列 ("strOut") に、予想どおり、1 人のユーザーのすべての MBR が含まれていることがわかります。この文字列の長さが 7,000 文字を超える場合があります。そこで、ここでもいくつかの素晴らしいアドバイスに従って、MBR_LIST フィールドを MEMO に設定してテーブルを作成し、Allen の関数を次のように実行します。

(メモ: クエリは、メモ型フィールドでグループ化を行うことを避けるために作成されています。これは、メモ型フィールドを切り捨てることが知られています)

それでも、これを行った後、テーブルの MBR_LIST フィールドには 320 文字 (?) しか表示されません。

この投稿で提案されているように、空の行を追加しようとしました: MS Access Create Table is Truncating Memo Fieldですが、成功しませんでした - フィールドはまだ 320 文字に切り捨てられます:

最後の手段として、MID() を使用して、SELECT ステートメントでそれぞれ 300 文字 (Mbr_1 から Mbr_20) の「チャンク」を 20 個作成し、それらをすべて正常に戻しました。次に、これを別の SELECT にラップし、これらのチャンクを (Mbr_1 & Mbr_2 & ... & Mbr_20) AS Mbr_LIST として連結して、320 文字を取得しました。

関数によって作成された完全な文字列を挿入/表示する理由と方法はありますか?

ありがとう、部族