こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Accessでわからない事があります

Accessをつかってデータベースを作っています。
テーブルもいくつか作り、それぞれの入力フォームやレポートもつくりました。しかしもとのテーブルに追加したいフィールドがあるのですが、エラーメッセージ「定義されているフィールドが多すぎます」とでて、新しいフィールドを保存できません。ただ、別名で保存する事は出来ます。しかし別名で保存すると、クエリやレポートやらをもう一度作り直さないといけません。(少なくとも今の私のAccessに対する知識ではそれしか出来ないと思われます。)別名では保存できて、もとのテーブルで保存できないのは、なにか設定を変えればいいのでは?と思っているのですが、どなたか教えてください。結構な大作なので、もう一度テーブルの段階から作り直すのはやや気がめいってしまいます。どなたか助けてください。宜しくお願いします。

投稿日時 - 2006-08-28 13:33:34

QNo.2367617

暇なときに回答ください

質問者が選んだベストアンサー

そのメッセージが出るということは、テーブル設計が間違っています。

AccessはExcelのように、自由にフィールドを増やす事が出来ません。
テーブル設計をしっかりやっておかないと、今回のような事になります。

データベースは、一度設計してテーブルを作成したらよほどの事がない限りフィールドレイアウトに変更は加えません。
使用しているデータベースは最適化されていない状態のようですので、最適化を行い、テーブルの再作成を行う以外方法はないと思います。

さて、最適化の方法ですが、該当テーブルのフィールドの中で、コードで一意に指定できる項目はありませんか?
データベースの教科書などの例では、得意先、仕入先、社員名、商品など、再利用可能なフィールドを一意になるコードをつけて別テーブルを作成し、メインテーブルには「得意先コード」「商品コード」だけを持つようにします。
得意先テーブルなどには、得意先コード、連絡先、住所、担当者や商品コード、商品名、仕入先、仕入れ価格などを保管しておきます。
こうすれば、得意先コード1つで様々な情報が利用できます。

1フィールドが1日のデータで、1レコードに1ヵ月分のデータを持っているのなら、1日を1レコードとなるように設計変更をするのも一つの回答です。この場合、フォームやレポートに影響が出ますが、仕方ないです。


面倒くさい作業ですが、データベース設計で楽をしたぶん…と、思ってと諦めてください(^^;

因みに、データベースをAccessからOracleやSQLServerにしても、フィールド数の上限があることには変わりないので、同じ問題にぶち当たります。

投稿日時 - 2006-08-28 14:36:43

お礼

返事が大変遅くなり申し訳ありません。
結局テーブルを細切れにして作り直しました。
フィールドが多すぎた(300くらい?)が原因かと勝手に思っております。
とりあえず、使えるようにはなりました。
ありがとうございました。

投稿日時 - 2006-09-16 09:19:49

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.7

文字数がディフォルトの255文字のまま、多くの文字型フィールドを作成しているとか...

投稿日時 - 2006-08-29 12:11:55

お礼

ありがとうございました。
なんとか解決できました。ありがとうございました。

投稿日時 - 2006-09-16 09:20:45

ANo.6

具体的にフィールド数はどれ位なのでしょう・・・
最適化とか、
新規MDBを作成して全部インポートしてみるとか。

めちゃフィールド数が多いときは、
正規化も検討されては?
[ACC] データベースの正規化の基礎
http://support.microsoft.com/default.aspx?scid=kb;ja;100139

投稿日時 - 2006-08-29 00:18:56

お礼

最適化してみたのですが、なんとなくうまくいかなかったような気がします。。。。
なんとか今は使えるようになりました。ありがとうございました。

投稿日時 - 2006-09-16 09:21:48

ANo.5

#1です

> 別名で保存→元のデータを削除→別名のデータを元のと同じ名前に直す

記載している手順で、問題ないと思ったのですが・・・
何が、うまく動作しなかったのでしょうか?

リレーションが、動作していないのは何となくわかるのですが・・・

投稿日時 - 2006-08-28 16:34:36

お礼

まさしくリレーションがうまくいってないといった感じでした。かといって、なんで良くなったのかわかってないのですが。これではまた同じミスをしてしまうかもしれまんね。どうもありがとうございました。

投稿日時 - 2006-09-16 09:23:19

ANo.4

再検討とは、一からデーブル設計を見直すということです。
いわゆる正規化しないと、後日、にっちもさっちもいかなくなります。

投稿日時 - 2006-08-28 14:42:16

お礼

結局、一から設計しなおしました。ありがとうございました。

投稿日時 - 2006-09-16 09:24:00

ANo.2

少なくともテーブル設計でエラーが出るのであれば再検討がお勧めです。「ともかく、別名で保存したらOKなのでGO!」は、ちと・・・。

投稿日時 - 2006-08-28 13:53:37

お礼

再検討しても分からないので質問させていただきました。「別名で保存してOK」でないので困っています。

投稿日時 - 2006-08-28 14:22:57

ANo.1

別名で保存できるのなら、別名で保存して、オリジナル削除、別名で保存したものを、名前変更でオリジナルの名前にすれば、大丈夫なのでは?

投稿日時 - 2006-08-28 13:46:08

お礼

一度やってみましたが(別名で保存→元のデータを削除→別名のデータを元のと同じ名前に直す)、上手くいきませんでした。もしこの手順で間違っている所があれば教えてください。また他の方法があるなら、教えてください。宜しくお願いします。

投稿日時 - 2006-08-28 14:25:40

あなたにオススメの質問