- ベストアンサー
ACCESS引数が無効です
テキストボックスに255文字以上入力された値をクエリを用いてデータベースに書き込もうとしているのですが、「引数が無効です」というエラーが出てしまい、登録できません。 原因はなんなのでしょうか?また回避策は有るのでしょうか?どなたか教えてください!
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その書き込もうとしているフィールドがテキスト型なのでしょう。 テキスト型の上限は255文字です。97以前は確か半角で255? 2000以降だと文字数で255文字。 回避させるにはフィールドをメモ型にさせましょう。 2000ならユーザーインターフェイスからデータを入力する場合は 65,535 文字、プログラムから直接入力させる場合は 1 GBまで渡せるようです。 このあたりの制限は仕様ですのでどうしようもありません。根本的に解決するにはアクセスのような簡易データベースではなく、本物のデータベースを使うw だましだまし回避させるにはフィールドを複数に分けるなどでしょう。
その他の回答 (4)
- Gin_F
- ベストアンサー率63% (286/453)
追加です。 > 回避策は [ACC2002] レポートを Excel に出力するとメモ型フィールドの文字が切り詰められる http://support.microsoft.com/default.aspx?scid=kb;ja;294286&Product=accJPN テキスト型を使うしかないのかもしれないです。
- Gin_F
- ベストアンサー率63% (286/453)
> クエリを用いてデータベースに書き込もうとしているのですが、 > 「引数が無効です」というエラーが出てしまい、登録できません。 追加クエリ Or 更新クエリを使ってということでしょうか? メモ型の場合、いろいろ制約があるみたいなので、そのひとつかもしれないですね。 ACC: フォーマットされたメモは、255文字でのデータを切り捨てます。 http://support.microsoft.com/default.aspx?scid=kb;JA;103998&Product=accJPN こんなのもあるみたいですし。
>クエリを用いてデータベースに書き込もう この部分具体的にどのようにしてますか? マクロかモジュールでしょうか? マクロの「RunSQL/SQLの実行」は256バイト モジュールの「Docmd.Runsql」は32768バイト の制限があります。 これにひっかかっていませんか?
- g_express999
- ベストアンサー率29% (115/386)
mdbを最適化しても直りませんか?
補足
返答ありがとうございます。 でも、申し訳ございません。フィールドはメモ型なんです。。。 ちなみにアクセスのバージョンは2000です。