トップ回答者
Access 128フィールドの値を変更して更新するとエラー

質問
-
Accessのフォーラムが見つかりませんでしたので
こちらに投稿させて頂きます。.NET Framework 3.5で、OleDbConnection接続し
Accessのレコードを更新する処理があります。128フィールドの値を変更してOleDbDataAdapterのUpdateメソッドを実行したところ、
「定義されているフィールドが多すぎます。」のエラーとなりました。下記URLでは、Access2000の制限事項として
「Microsoft Jet データベース エンジンの更新クエリは127フィールドまで」
とありますがこれは全バージョンのAccessに言えることなのでしょうか?
Microsoft公式文献があれば教えてください
(実行環境のAccessは2007です)Acc 2000:「が多すぎますフィールド定義」エラー メッセージ更新クエリで
support.microsoft.com/kb/199076/ja
上記URLの解決方法として更新クエリの分割が記載されていますが、
現在OleDbCommandBuilderで更新クエリを自動生成しているため、
根幹を見直すことになりかねません。一度に128フィールドを超えるフィールドの値変更があるような場合、
皆様どのようにされているのでしょうか。
ご教授ください。
回答
-
h.hirahara さん、こんにちは
フォーラム オペレーターの星 睦美です。今回はコミュニティからの返信が集まりにくいようですので、関連した情報を私からもご紹介させていただきますね。
Access のテーブル、クエリーのフィールド数の仕様はAccess 2000 と2007 のバージョンでは同じであり、
Access 2007 向けにもAccess 2000 のサポート情報を参考にできると思いますので、サポート情報に書かれている更新クエリを分割して、ひとつのクエリで扱うフィールド数が127個以内にした複数の更新クエリを実行する方法や
Visual Basic for Applications で、recordset を使用してフィールドを更新する方法をご検討いただければと思います。
(参考情報)
・Access 2007 の仕様:
http://office.microsoft.com/ja-jp/access-help/HA010030739.aspx・Access の仕様制限:(Access 2000)
・Visual Basic for Applications フォーラム
http://hp.vector.co.jp/authors/VA014071/tips/spec_ac.html日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美
- 回答としてマーク h.hirahara 2013年8月19日 7:50
すべての返信
-
h.hirahara さん、こんにちは
フォーラム オペレーターの星 睦美です。今回はコミュニティからの返信が集まりにくいようですので、関連した情報を私からもご紹介させていただきますね。
Access のテーブル、クエリーのフィールド数の仕様はAccess 2000 と2007 のバージョンでは同じであり、
Access 2007 向けにもAccess 2000 のサポート情報を参考にできると思いますので、サポート情報に書かれている更新クエリを分割して、ひとつのクエリで扱うフィールド数が127個以内にした複数の更新クエリを実行する方法や
Visual Basic for Applications で、recordset を使用してフィールドを更新する方法をご検討いただければと思います。
(参考情報)
・Access 2007 の仕様:
http://office.microsoft.com/ja-jp/access-help/HA010030739.aspx・Access の仕様制限:(Access 2000)
・Visual Basic for Applications フォーラム
http://hp.vector.co.jp/authors/VA014071/tips/spec_ac.html日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美
- 回答としてマーク h.hirahara 2013年8月19日 7:50