Access2010でデータベースを1つ作成して、フォームのテキストボックスに文字を入力しようとすると、[引数が無効です。]のエラーメッセージが出ます。
[OK]ボタンをクリックすると、通常どおりの入力が可能になりますが、データベースを開くたびに繰り返されます。
なんなんだ?とネットで検索すると、Microsoftのサポートページがヒットしました。
現象もまったく同じです。
Access 2010 または Access 2007 SP3 でテーブル編集時に、初回のみ 引数が無効です とエラー メッセージ表示される(http://support.microsoft.com/kb/2480088/ja)(現在は404となっています)
上記ページによると原因は以下のように記されています。
この現象は、実際に画面上で確認できるテーブルのフィールド数よりも多いフィールド数分の設定情報が保持されていると認識されるために発生します。
この現象を回避するには、テーブルをXMLファイルにエクスポートし、新しいテーブルとしてインポートするとよいとのことです。
解説どおり、設定するとメッセージは出なくなりました。
Microsoftのページには、現象として以下のように記されています。
以前のバージョンのAccess で作成した Access データベースを Microsoft Access 2010 または Microsoft Office Access 2007 SP3 で開くと、テーブルへの編集操作 (追加、更新、および削除) をする際に、初回のみ以下のエラー メッセージが表示され、操作が中断されます。
また、Access2019でテーブルを操作しているときも[引数が無効です]というメッセージが表示されるようになったことがあります。
もとはAccess2003で作成されたテーブルです。
この場合も、XMLファイルへエクスポートして、インポートすることでエラーは表示されなくなりました。
Access2003以前のバージョンで作成されたデータベースを新拡張子に変換してAccess2007以降のバージョンで操作するときに、このエラーはよく出るような気がします。
-
mdbファイルをaccdbファイルに変換
Access2003で作成した[.mdb]ファイルを新拡張子である[.accdb]のファイルに変換する方法です。 新拡張子でなければ使えない ...
解決した手順を記しておきます。画像はAccess2019ですが、他のバージョンでも同じ操作です。
テーブルを[XMLファイル]としてエクスポート
[引数が無効です]のエラーが表示されるテーブルを選択します。
[外部データ]タブの[エクスポート]グループにある[XMLファイル]をクリックします。
または、テーブルで右クリックしてショートカットメニューから[エクスポート]-[XMLファイル]を選択します。
[エクスポート - XMLファイル]ウィンドウが表示されます。
[参照]ボタンをクリックして、エクスポート先のフォルダーを指定します。[OK]ボタンをクリックします。
これでエクスポートの完了です。
念のため、指定したフォルダーを開いて、XMLフィルがあるかを確認しておきます。
XMLファイルのインポート
エクスポートしたXMLファイルをインポートします。
[外部データ]タブの[インポートとリンク]グループにある[新しいデータソース]から[ファイルから]-[XMLファイル]をクリックします。
または、右クリックしてショートカットメニューの[インポート]-[XMLファイル]をクリックします。
[外部データの取り込み - XMLファイル]ウィンドウが表示されます。
[参照]ボタンをクリックして、先ほどエクスポートしたXMLファイルを指定します。[OK]ボタンをクリックします。
[XMLのインポート]ダイアログボックスが表示されます。
[インポートのオプション]で[テーブル構造とデータ]を選択して、[OK]ボタンをクリックします。
[外部データの取り込み - XMLファイル]ウィンドウの[閉じる]ボタンをクリックします。
以下のようにナビゲーションウィンドウを見ると、テーブルが追加されています。
ここでは、[T_社員1]となっています。
名前を変更して動作の確認
各テーブルの名前を変更(インポートしたテーブルを正式名に)して、動作を確認します。
名前の変更は、テーブルで右クリックすると表示されます。
参考名前の変更のショートカットキーは、[F2]キーです。
動作を確認して問題がなければ、元のテーブルを削除します。
追記Access2019で新規テーブルを作成して、その新規テーブルへ追加クエリで既存のデータを追加しようとしたときに[引数が無効です]のエラーに遭遇しました。
このときは、新規テーブルではなく、クエリの[テーブルの作成]でテーブルを作成するとうまく行きました。
テーブルの作成については、以下の記事が参考になると思います。
-
グループ化で重複レコードを削除したテーブルを作成
Accessで、1つのテーブルで重複したレコードを削除してマスターテーブルを作成する方法です。 クエリでグループ化を設定して重複レコードがな ...
参考以下は、Accessでエラーメッセージが出た時に対処した方法です。すべて解決している内容です。
-
エラーメッセージが出たときに対応して解決したこと
Access2010って、なんだかエラーメッセージが多い気がします。 以下は、私がエラーメッセージが出たときに対処した方法です。 私の環境の ...