• 締切済み

ACCESSデータベースのメモ型フィールドの文字数制限について

ACCESSデータベースのメモ型フィールドの文字数制限について VB6から、MDBメモ型フィールドにINSERT/UPDATEすると、1000バイトしか登録できません。 ACCESSのバージョンは、97です。 MDBを開いて、手で、メモ型フィールドを更新すると、1000バイト以上、登録できます。 10,000バイトほどのデータを登録したいのですが、どこを確認すればいいのでしょうか。 よろしくお願いします。

みんなの回答

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.3

環境(Acc97)がないのではっきりわかりませんが、VB6からAcc2000にADOのConnection.executeでinsert文を実行したところ4000文字程度は問題なく登録できました。(何バイトまで登録できるかは実験していません。) そもそも、アクセスに10KBのデータを登録すること自体が間違っているような気がします。 (データ数が増えていくなら、ファイルの場所と必要であれば暗号キーなどだけをdbに入れておいて、他の方法で読み出すほうが安全だと思います。)

  • mhassy
  • ベストアンサー率43% (16/37)
回答No.2

#1 再回答します。 ヒントは・・・ 「大きなバケツが使えないなら、コップで何回も水を汲む」(笑) 1Kのデータを登録できるなら、それを10個フィールド定義して、単に分割保存すれば良いのではありませんか? 単純なコード記述さえすれば、読み書き時に分割・統合できますよね。 今回はたまたま仕様が64,000文字ですけど、もしも仕様が1Kの場合や、質問者さんの環境の問題で最大が1kなんだったら、単に10個定義すれば済むと思います。 1レコードに定義するフィールドの合計サイズに制約があって、10個定義することが出来ないというのであれば仕方がありませんが、決してそうではないはずです。 御質問の原因が、 ・VB6とAccess97間の問題なのか? ・Access97の「VBA」の問題なのか? ・質問者さんの「コードの記述」の問題なのか? ・PCに発生している別の理由による二次的な現象なのか? ・それ以外の問題なのか? ・・・回答側で予測できる原因範囲が膨大な上、質問者さんも情報提供するのは困難なはずです。 出来ない原因を探って解決することも大切ですが、それは「学習する」時に行う優先順位です。 (推測ですが)現在は学習目的ではなくて、「利用が目的」だと考えます。 優先順位のトップが「使うこと」なのであれば、出来ない方法にこだわらず、出来る手段でまずは使えるものを作ることが重要ではないでしょうか? 後から改善・修正することは容易ですしね。 単純で、ごく当たり前の発想から出たヒント(?)で恐縮ですが、原因を知ることが出来ない回答側の私から提供できる、「今のところそれしかない案(笑)」です。

toco_eno
質問者

お礼

わざわざ、確認テストまでしていただいたうえに、いろいろなヒントをいただきありがとうございます。 おっしゃるとおり、原因がよくわかりませんので、他の手段に変えて、対処することにします。 ありがとうございました。

  • mhassy
  • ベストアンサー率43% (16/37)
回答No.1

>どこを確認すればいいのでしょうか。 ネット検索をすれば、結構なんでもころがっているものですよ。 (笑) 「Access97 メモ型 最大」の3語で、グーグル検索した結果です。 >VB6から・・・・登録できません。 については、御自分で検索してお調べ下さい。

参考URL:
http://support.microsoft.com/kb/824263/ja
toco_eno
質問者

補足

回答ありがとうございます。 >「Access97 メモ型 最大」の3語で、グーグル検索した結果です。 グーグル検索すると、64000文字まで可能とありますが、私の環境ですと、1000文字しか登録できません。 検索自体がうまくできてないかもしれませんが、1000文字以上登録できるようにするには、どうしたらいいかのヒントを教えていただけませんでしょうか。 よろしくお願いします。

関連するQ&A

  • ACCESSデータベースにVB6(DAO)でフィールドを追加したい

    既存のACCESSデータベースのテーブルにVB6のDAOでフィールドを追加したいのですが、テーブル名.Fields.Append とかいうメソッドがあるようですが、使用方法がわからずフィールドを追加が出来ません。 具体的には、フィールド名"電話番号"で、文字型で固定文字数13を追加したいのです。 どうぞよろしくお願いします。

  • VBからのDAOでメモ型へのアクセス

    Access2000でメモ型を含むテーブルを作成し、VBからアクセスします。 テーブルへの書込みはサイズに関係なく(257バイト以上も)問題なく出来ます。257バイト以上の文字列を書き込んだ後Accessで直接テーブルの内容を確認すると、正常に書き込まれています。 が、257バイト以上の文字列の読み込みを行うと255バイトで切れてしまいます。 テキスト型は255バイトまでで、メモ型は65534バイトまでと思っていたのですが違いますか? 違っているとしたら、60000バイトは必要ありませんが1000文字(2000バイト)くらいは使いたいと思っていますので、フィールドの型と、VBからのアクセスの方法を教えてください。

  • access2010でメモ型がインポートできない

    以前のACCESS2000では出来ていたのですが、ACCESS2010(windows7)にバージョンアップしたところ、csvファイルのインポートで、メモ型のデータが255文字までしかインポートできなくなりました。 調べてみたところ、そのフィールドを、クエリなどで使用しているとキャスト(型変換)されるのでメモ型ではなくなり255文字の制限がかかる、との記述がありましたが、新しいテーブルを作成してインポートしてもできませんでしたので、別の原因かと思われます。 また、ACCESS2000のデータを、ACCESS2010の[ファイル]-[保存して発行]・・・・も行い、拡張子を.accdbにしてみましたが、やはり255文字を超えるインポートができませんでした。 インポート時の[設定]のところのフィールドの情報で、メモ型にしてあるフィールド名が表示されていないのが気になりますが。 文字列の引用符は ” にしています。 ACCESSはデータの25行目までを読み込んでデータ型を自動選択している、という記述もあり、1行目のデータに256以上の文字を入れてインポートもして見ましたが255文字で切られてしまいます。 よろしくお願いいたします。

  • 文字数制限

    FlashLite1.0でステージ上にテキストフィールドと0~9のボタンを作成し、ボタンを押すとテキストフィールドに数字が表示されます。 数字をずっと押すとフィールドから見えなくなっても数字が無限に表示されている状態なので文字数制限をつけたいと思っています。 文字数制限のスクリプトはmaxlengthがあるので使ってみたのですがうまくいきません。 どのようにすれば制限をつけられるでしょうか?

    • ベストアンサー
    • Flash
  • データベースの特定のfieldだけ削除は可能ですか?

    今VB6でSQLにて特定のaccessのレコードを抽出して数あるfieldの中の値を変更し、更新しています。 同様に数あるfieldの中の値を削除(空)にすることは可能でしょうか?

  • フォーム要素の文字数制限について

    それぞれのフォーム要素に文字数(またはバイト数)の制限ってあるんでしょうか? あるとしたら何文字ですか? maxlengthなどで指定する値や、受け取るプログラム側の制限ではなく、HTMLの仕様としての制限についてです。 特に知りたいのが、隠しフィールド(input type="hidden")の文字数制限です。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 【Access2010】 改行数および文字数の制限

    下記リンクを参考に、更新前処理とキー入力時に改行数の制限をかけました。 ※テキストボックス名「申請理由」 参考リンク → http://www.accessclub.jp/bbs3/0064/superbeg24259.html ここに、さらに1行当たりの文字数を「35」(バイト数70)という制限を追加したいのですが、どうすればよろしいでしょうか?

  • C言語でアクセスデータベースのメモ型の読み書きをしたい。

    データベース初心者です。C言語(C++)でアクセスデータベースの読み書きをしていますが、メモ型の読み書き方法が判りません。アドバイスをお願いします。 アクセス方法は、ODBC-APIを使用して <書き込み時> SQLPrepare SQLBindParameter SQLExecute <読み込み時> SQLExecDirect SQLBindCol SQLFetch の手順で行っています。 教えて欲しい内容 1.メモ型の場合、BIND時のフィールド形式指定は、何を使用するのでしょうか? 2.フィールド指定をSQL_C_CHARとして、書き込みを行うと1000文字以上に書き込むこと出来ているようですが、読み込み時に失敗します。アドバイスをお願いします。

  • [access]フィールドの中の特定の文字の数を出したい。

    アクセス(Ver.2000)のテーブルの、一つのフィールド内に 色々な文字が並んでおります。 その中の特定の文字の数を数えたいのですが、クエリで数を出す方法は? 例えば 一行目のフィールドに『abc』 二行目のフィールドに『bcc』 という二つのレコードがあったとします。 上記をクエリで、 『a』→ 1 『b』→ 2 『c』→ 3 というように各文字の数を出したいのですが、 どのような方法で出せるでしょうか? 分かる方ご教授よろしくお願いします。

  • データベースアクセスで。

    VBとAccessを使用してデータのやりとりを行っています。 Data1を貼り、DatabaseNameを設定するところまではうまくいきましたが、RecordSourceプロパティをクリックすると「データベースの形式'C:\xxx\xxx.mdb'を認識できません」と表示されてしまいます。 別DBを設定すると上記の現象がでないので、Accessが原因だとは思いますが、VBを使用する際の注意点などあるのでしょうか? 【環境】WinXP SP2 VB6.0 / Access2000です。