通知書というテーブルの構造を複製して求人というテーブルを作りました
excel vbaでSQLでデータの更新や追加を行っております。
問題なく追加できる
strSQL = "INSERT INTO 通知書([整理番号]) VALUES('1251000001020')"
adoCn.Execute strSQL 'SQLを実行して対象を追加
strSQL = "INSERT INTO 求人([整理番号]) VALUES('1251000001020')"
adoCn.Execute strSQL 'SQLを実行して対象を追加
データが登録できないので、
errTrap:
MsgBox Err.Number & ": " & Err.Description
と付け加えてみると
-2147467259:引数が無効ですというメッセージが表示されます
複製してテーブルが壊れた可能性が大きいので、何度もやり直しましたが改善しません。
こういう場合は何が原因で、対処方法はあるのでしょうか?
これだけの情報からは原因を特定するのは難しいです。
このような場合はまずは問題の切り分けをしましょう。
私なら下記のような手順をやってみます。
Accessから元テーブルと複製テーブルをデザインビューで開いて設定に違いがないか確認(データ型、インデックス設定など)
リレーションシップを開いて両者のテーブルのリレーションシップ設定に違いがないか確認
複製テーブルに手入力でデータを追加できるか確認
クエリで同様のSQLを設定して実行してみてデータ追加できるか確認
設定に、違いはありません。
accessは、倉庫として利用しているので、テーブル同士のリレーションシップの機能は利用しておりません。
複製テーブルに、手入力でデータを追加できますが、必ずではない状態です。
整理番号を手入力で追加してみた時も、エラーが出たこともありました。
確か、無効なデータですのようなメッセージが表示された気がします。
-2147467259:引数が無効ですという事なのでしょう。
フィールド数は150程度なので、まだ余裕があります。
ただ、フィールド名やデータ型の変更があったため、これ以上変更できなくなったので構造を複製しました。
今までは、複製すると変更したカウントがチャラになって続行できたのですが、
今回は、この当たりが怪しい気がしておりますが、こんなことが起こるものなのでしょうか?
[整理番号]フィールドのデータ型はテキスト型(短いテキスト)ですよね。
このエラーが追加クエリでのエラーと同じ原因の可能性はありそうですか。
念のために下記の手順を試してみてください。
データペースファイルの修復/最適化の実行
それでだめなら、
新規にデータベースファイルを作成して、そこに元ファイルからすべてのオブジェクトをインポートして、この新規ファイルで試してみる。
データペースファイルの修復/最適化では修復できませんでした。
手入力した時に出てくるエラーメッセージは、「引数が無効です」でした。
表示された後に、データは入力されています。
何が無効なのか謎ですが、キャッシュがクリアされないでゴミがたまって壊れて壊れた的な状態のような気がします。
カラムが100くらいだと、この症状が出ることはないのですが、
150近くになると、データ型やカラム名を変更していると、たびたび発生するようになります。
officeでは、ここまでだよと言われれば仕方ないのですが、
カラム数にはまだだいぶ余裕があるはずですし。
データ処理に、もっと金使えよ~という事なんでしょうか、、、、、
どうしようもないので、新しくテーブルを作って、ALTER TABLEでカラムを作り直したので、普通に処理できています。
確かなことはわかりませんが、そのまんま検索すると謎のバグが起きることがあるらしいという情報はありますね
https://www.google.com/search?q=2147467259:引数が無効です