突然の「引数が無効です!」を超簡単に解決する方法

LINEで送る
Pocket

突然の「引数が無効です!」を超簡単に解決する方法

おひさしぶりです!つむぎです。
さて、今回はひさびさのAccessネタを。

みなさんはAccessでつくったシステムを使っていて、突然「引数が無効です」と警告がでたことがありますか?
つむぎがシステムを制作したあるお客さまから、この件で以前下記のような連絡がありました。

「ある日突然、『引数が無効です』と警告が出るようになり、データの登録はできるけど抽出はできないし、カーソルが前後に移動できなくなりました!」

 

引数が無効です

 

そちらのお客さま、とにかくデータ登録数が膨大で1年間で15,000件ほどのデータ件数の登録があり、伺った時のデータ件数は30,000件以上になっていました。
これだけ登録していても、Accessのファイルとしての容量はそんなに大きくなっていません。
そこでふと考えたのが、30,000件のデータを保存しているテーブルのある項目の「データの型」。
いろいろな備考項目を入力する必要があると聞いていたので、わたしは「備考」という項目のデータ型を「長いテキスト型」(以前のメモ型)を採用していました。
「長いテキスト型」は64,000 文字まで保存できるので採用したのですが、ここに落とし穴が!!!
実際入力されている備考をみると、255文字くらいまでで収まっていそう。

思い切ってお客さまに
「一部のデータがなくなるかもしれないけど、いいですか?」
と了解を得て、下記の対策を実行しました。

 

「備考」のデータ型を「長いテキスト型」から「短いテキスト型」に変更!!!

テーブルの型を、「長いテキスト」から「短いテキスト」に変更♪

 

結果、超簡単になおりました。

「長いテキスト型」の場合、実際入力されているデータが255文字以内なら、64,000文字の保存領域のほとんどが使われていない状態。
未使用の領域が30,000件以上重ったことで未使用領域が増大し、突然「引数が無効です」という警告がでたという流れ。
「短いテキスト型」に変更することで、保存できる文字数は255文字になりましたが、使われていない保存領域が開放されたので警告が出なくなったと推測できます。

長年Accessを使っていてなんとなく問題解決のあたりをつけることができましたが、初めてこのエラーを見る方は面食らうのではないでしょうか?
「引数が無効です」警告は、今回のケース以外でも発生する可能性はあります。
すべての場合の解決策にはなりませんが、今回のようなケースが考えられる場合は一度「テーブル型」の確認と変更をおススメします。
以上、「引数が無効です」の解決方法の覚え書きでした♪

 

LINEで送る
Pocket

PAGE TOP