• 締切済み

Accessのフィールド数が255しかない=業務では使えない?

DBはもっぱら社外に出していたのですが、カスタマイズの問題から、自分でやろうと思い立ち、Accessでまずは売上明細書を作り始めております。 順調に進んでいくと、なんとフィールド数が255しかないことが分かって、ふとした疑問が沸きましたので、質問させてください。 ・フィールド数255というのは、明細書にとってはあまりにも少ない(品名/数量/単価/金額/備考だけで5つも取られる)。 これはやはり本格的な業務レベルでは使えないということでしょうか? ・AccessはDBですが、一度に複数の人間(5人以上)が使っても耐えますでしょうか? 質問が馬鹿すぎて自分でも笑えますが、ググってもなかなかよい答えが見つからなかったので、質問させてください。 どうぞ宜しくお願いします。

みんなの回答

  • gatt_mk
  • ベストアンサー率29% (356/1220)
回答No.7

>DB、Accessに関しては、他アプリと比べても若干情報量が少ないので、とても参考になりました。 ACCESSに関するサイトはかなりたくさんあります。いくつか参考になりそうなものをあげておきます。他の方の質問や回答を読むだけでもかなり勉強になります。上級者向けのサイトもありますが、そうしたサイトの内容が理解できるようになれば上級者の仲間入りです。 http://www.naboki.net/access/ http://www.ruriplus.com/msaccess/bbs.asp http://www.f3.dion.ne.jp/~element/msaccess/index.html http://www7.big.or.jp/~pinball/

check-t
質問者

お礼

何度もご丁寧に!頭が下がりますm(__)m 記載頂いたURLも、ひとつひとつ参考にさせて頂きます。 Accessで情報量が少ないとか言ってたら、SQLはもっと大変ですよね。がんばります。 ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.6

皆さんの仰るとおりですね。特に、No.5さんが言うように、テーブルの正規化やリレーションシップについて勉強してください。 >簡単に言えば、前工程、中工程、加工の明細がその一枚に入っており・・・ であるならば、少なくとも1つのテーブルを3つに分けられますよね?前工程テーブル、中工程テーブル、加工テーブル見たいな感じで。 そうすれば、255でも十分収まるはずですよね?

check-t
質問者

お礼

おっしゃる通りです。 リレーションシップ、今まさに手こずりながらトライしています。 皆さん本当に親切ですね。DB、Accessに関しては、他アプリと比べても若干情報量が少ないので、とても参考になりました。 本当にありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • gatt_mk
  • ベストアンサー率29% (356/1220)
回答No.5

>簡単に言えば、前工程、中工程、加工の明細がその一枚に入っており、 それらの項目にそれぞれオプション項目が付いているので、 あっという間にフィールド数255になった→あれ?という感じなのです。 とのことですが、ACCESSに限らずRDBを利用したデータベース構築に際しては、一般的に1つのテーブルにすべての項目を持たせるようなことはしません。テーブルの正規化やリレーションシップについて勉強されたほうがよろしいかと思います。 テーブルの構造を理解して作成しないと根本的な間違いをしたまま作業をすすめる事になってしまいます。

check-t
質問者

お礼

>一般的に1つのテーブルにすべての項目を持たせるようなことはしません。 ありがとうございます。リレーションシップですね。 これまでは、例えば‥ 加工費A 数量A 単価A 金額A 備考A 加工費B 数量B 単価B 金額B 備考B 加工費C 数量C 単価C 金額C 備考C‥ とやっていたので、すぐにフィールドが埋まってしまっていましたが、 リレーションを使って、もっと上手く作れるようにします。 何度もご回答、ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
noname#60992
noname#60992
回答No.4

アクセスはあまり大きなDBには向いていません。 一度に5人以上で使われるのは、処理速度が極端に遅くなる恐れがあります。 No3の方もおっしゃっておられますが、排他制御がいまいちというのもちょっと問題です。 さらに、mdbが突然壊れてしまったり、テーブルの削除などを頻繁に行うとdbcompact を頻繁に行わなければいけなかったり、業務用のDBとしては、物足りない部分が多いです。  ただし、とっつきやすい。 価格が安い。 簡単にSQL Serverにアップサイズできる。 などを考えると、あながち捨てたものでもないと思います。  本格的な業務レベルで使うというのが、どの程度の処理内容なのかが問題です。 一時間に数十件の処理なのか、数百件の処理なのか、このあたりがアクセスが使えるかどうかの判断基準になると思います。

check-t
質問者

お礼

具体的なご回答、ありがとうございます。 >とっつきやすい。価格が安い。簡単にSQL Serverにアップサイズできる。 >などを考えると、あながち捨てたものでもないと思います。 そうですね、私もDB入門にはAccessがいいのではないかと思っております。 Accessの次はSQLかと思うと、少し気の長い話になりますが、自社の利便を考えると、やるべきかなと思っております。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • gatt_mk
  • ベストアンサー率29% (356/1220)
回答No.3

>・フィールド数255というのは、明細書にとってはあまりにも少ない(品名/数量/単価/金額/備考だけで5つも取られる)。 何故フィールド数が255というのが少ないと考えられたのでしょうか?数量/単価/金額/備考の5つがあれば少なくとも明細は作れますよね。フィールド数が255というのは1テーブルあたりということだと思いますが、確認されていますか? テーブルはフィールドとレコードで構成されています。1件のレコードに関してフィールドは255ということです。レコードは数万件持っても問題はありません。レコードというのは納品書の1明細に相当するものです。五件の注文があれば1伝票あたり5明細(5レコード)になるということです。 注文が増えるほどレコードが増えていくということです。 注文が増えてもフィールド(明細の項目)が増えるということは通常ありません。 >AccessはDBですが、一度に複数の人間(5人以上)が使っても耐えますでしょうか? どのように使うかによります。Excelのように同じファイルを同時に開くような使い方をしたらあっという間に壊れると思います。ネットワーク上で共有するにはそうした作成方法があります。 但しそうした場合でも同じレコードを同時に操作する場合などはかなり注意が必要です。(ACCESSは排他制御に関してはかなり弱いです)

check-t
質問者

お礼

こちらもご丁寧にありがとうございます。 >何故フィールド数が255というのが少ないと考えられたのでしょうか? >数量/単価/金額/備考の5つがあれば少なくとも明細は作れますよね。 はい、その通りなのですが、その5つのフィールドが、50ほどあるのです。 簡単に言えば、前工程、中工程、加工の明細がその一枚に入っており、 それらの項目にそれぞれオプション項目が付いているので、 あっという間にフィールド数255になった→あれ?という感じなのです。 >Excelのように同じファイルを同時に開くような使い方をしたらあっという間に壊れると思います。 このあたりも慎重に行きたいと思います。実務に使うものなので、 検証にも重きを置くことになりそうです。(検証って遊んでるように見られませんか?) >ACCESSは排他制御に関してはかなり弱いです はっきり分かったので、MySQLを視野に入れた動きをしたいと思います。 しかしDBって便利なだけに面白いですね。がんばります。

全文を見る
すると、全ての回答が全文表示されます。
  • Bubuca
  • ベストアンサー率59% (531/896)
回答No.2

こんばんは エクセルやファイルメーカーはよく触るのですが、アクセスはよく知りませ ん。アクセスもデータベースですから、レコードとフィールドで構成されて いると思うんです。エクセルならば行と列に当たるかと思います。 エクセルでも1シートで約3万2千行(レコード)の255列(フィール ド)で全部のセルの数は800万を超えます。 アクセスの255フィールドとは1レコードあたりではないでしょうか。 レコード数の最大はわかりませんがエクセルよりも少ないことはないでしょう。 レコード数が数万を超えるようになると処理速度はマシンの性能と処理手順 の手際によってかなり影響を受けるかもしれませんが、データベースを謳っ ているソフトですから、業務に使えないはずはないと思います。 いままでいろいろなデータベースを作ってきましたが、あまり大きい場合に はリレーションを使って別ファイルにしてしまうこともあるので、1レコー ドで255フィールドを超えるようなものは見たことがありません。

check-t
質問者

お礼

ありがとうございます。 エクセルで帳票はよく作るのですが、DB化することはなく、あくまで実伝票のデザイン→エクセルに移行でよかったのです。 その考えをそのままAccessに持ってきて、フォームでデザイン→フィールドをどんどん埋め込み→フィールド足りない‥。となってしまったという浅はかさです‥。 >いままでいろいろなデータベースを作ってきましたが、 >あまり大きい場合にはリレーションを使って別ファイルにしてしまうこともあるので、 これを一度実行してみようかと思っております。 大変参考になりました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
noname#25358
noname#25358
回答No.1

 プロのプログラマーやっております。  特殊技術に関する特別なデータテーブルならともかく、単なる明細書で255項目は多すぎです。  アクセスの仕様ではなく、テーブルの設計に問題があると思われます。 (そんなに多くの項目がある明細書を、本当にお客さんにペラで見せるのですか? 項目分類もページ分けもせずに? ということです)  正規化するなどの方法で減らせないか検討してみてください。  Access に使われている JET エンジンは信頼性に関しては一般事務程度に使える程度に確保されています。  ですが、圧倒的に重いので、何人もの人間が同時にアクセスしにくるようなシステムには向かないでしょう。  もしお金の問題が絡むなら、せめて MySQL を候補に入れた方がいいです。

check-t
質問者

お礼

ご回答ありがとうございます。 >特殊技術に関する特別なデータテーブルならともかく 今回の場合、これに該当するかもしれません。 随分昔からの明細書で、書く人によって項目が変わるので、その数フィールドが必要で、 かといってその明細書を改稿するにも、レガシーな方が多く、 使いやすさから言っても現行のものをそのままDB化したものを希望されています。。 >そんなに多くの項目がある明細書を、本当にお客さんにペラで見せるのですか? はい‥。見た目は普通のどこにでもあるA4明細書です。 ただ他と違うのは、オプション欄があるので、オプションがない時は空白部が多いことぐらいですね。 オプション欄を別シートで‥、ということも前述の理由でできなさそうです。。 >もしお金の問題が絡むなら、せめて MySQL を候補に入れた方がいいです。 近いうちに、社内の売上一覧も作成することになると思うので、AccessでDBの基本を身に着け、MySQL等検討したいと思います。 貴重なご意見、参考になりました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • -(マイナス)をとって正の数にしたい。

    MS_ACCESS2000を使っています。 数量  売上 -2 4000 2 4000 たとえば、上記のようなテーブルで、 単価を出したい場合、単純に 売上/数量  このようにやってしまうと、 単価のところがマイナス表示になって うまくありません。 関数かなにかで、なにかよい方法はありませんでしょうか。

  • Accessのフォームでの合計欄を二つにわけたい

    テーブル1;売上明細T フィールド名;売上明細番号、商品コード、数量、摘要 テーブル2;商品T フィールド名;商品コード、商品名、単価 クエリで売上明細と商品Tをつなぎ、下記のように表示します。 商品コード 商品名 摘要  数量  単価 明細計                  (数量*販売単価) 001    物件1  作業代  1  500 500 002    物件2  作業代  2  400 800 051    物件51  作業代  1  500 500 051    物件51  交通費  1  350 350  上記クエリを元にフォームを作成(帳票形式)して、 テキストボックスで課税対象計(作業代計)と、非課税対象計(交通費計) のボックスをもちたいのですが可能でしょうか? 最終的には、売上伝票フォームに売上明細フォームをサブフォームで 取り込み、売上伝票上で合計金額を表示させたいと思っています。 よろしくお願いします。

  • アクセス・ファイルメーカーを使っての枝番処理

    はじめまして。データベースソフトに外部CSVファイルを取り込んで伝票処理を行いたく思っています。 取り込むCSVファイルには 伝票番号 枝番 品名 数量 123456  1  ○○  2 123456  2  △△  5 123456  3  ■■  9 123457  1  ◎◎  3 123457  2  ※※  6 ~~~~~~~~~~~~~~ このような感じのCSVデータをデータベースソフトに取り込みたいのですが、一つのレコードに同一伝票番号のデータを多段にして枝番フィールド順に取り込む事は可能でしょうか? 伝票番号 123456 品名1  数量 単価 金額 品名2  数量 単価 金額 品名3  数量 単価 金額 品名4  数量 単価 金額 ~~~~~~~~~~~~ 品名10 数量 単価 金額 ------------------------- 合計      合計金額 こんな感じで表示されたいです。 お知恵を貸してください。

  • アクセス初心者です

    納品書を元に仕入帳を作ってみたいと思うのですが テーブルとフォームは何となくわかったのですがクエリーでつまずいてしまいました 例 納品書 月日 A商店 伝票ナンバー 商品コード 品名 金額  入数 単価 数量 金額 売値  これを元に仕入帳を作りたいと思います 仕入帳 A商店、B商店、C商店に分けて 品名 金額 数量 単価 金額が出るように 又納品書は商品コードを入れただけで品名、金額、入数、単価が出るようにしたいのですが 納品書はテーブル、フォームは作りました 商品マスタも作りました 

  • アクセスのクエリの作り方

    初心者なので教えてくださいませんか? アクセスでテーブルを複数作成して、それをクエリで結合するときに、どのテーブルからどのフィールドを選べばいいのかわかりません。 例えば・・・ 売上テーブル:NO 売上日 商品コード 数量 商品テーブル:商品コード 商品名 単価 この二つのテーブルを結合するクエリを作ります。 NO 売上日 商品コード 商品名 単価 数量 上記のフィールドを使用したいのですが、このとき、商品コードをどちらのテーブルのを使ったらよいのでしょう。 その判断は何からしたらよいのでしょうか。 うまく説明できているかわかりませんが、よろしくお願いします。

  • アクセス クエリ・集計・計算方法について

    アクセスの集計機能を使用して、品名毎の数量の合計と金額の合計を算出しようとしていますが、 思うようにできません。どなたか教えてください。 クエリのフィールドを左から・・・ (1)年月: Format([日付],"yyyy/mm")(集計:グループ化) (2)品名(集計:グループ化) (3)品名のカウント(集計機能:カウント) (4)単価(集計:グループ化) (5)金額: [単価]*[品名のカウント](集計:グループ化) このような形でクエリを実行していますが、すべての注文が1つだけなら問題ないのですが、実際には品名には数量が掛けられている場合もあり、現在設定しているクエリ設定では正しい数量の合計と金額の合計を出すことができません。どうか集計方法をご教授いただけないでしょうか。よろしくお願いします。 ■現在のテーブルの設計とリレーションを明記します。 【A】顧客テーブル (1)顧客ID (2)発注コード (3)氏名 【B】商品テーブル (1)商品ID (2)品名 (3)単価 【C】注文テーブル (1)注文ID (2)日付 (3)顧客ID 【D】注文明細テーブル (1)注文明細ID (2)注文ID (3)商品ID (4)数量 リレーション 【A】(1)-【C】(3) 【B】(1)-【D】(3) 【C】(1)-【D】(2)

  • Access2000・レポートのグループフッターについて教えて下さい。

     Access2000レポートのグループフッターにて、下記のように出力したいのですが 上手くいきません。    品名 数量  単価    金額    A   10  @100  1,000円    A   20  @100  2,000円    A   30  @100  3,000円 合計 A   60個 @100  6,000円 グループフッターにて、合計欄の品名(A)と単価(@100)をテーブルから出力 をしようとすると次のようになってしまいます。    品名 数量  単価    金額    A   10  @100  1,000円 合計 A   60個 @100  6,000円 2件目以降の明細が出力されずに、合計行が出力されてしまいます。 どのように設定をすれば、上手く出力されるのでしょうか。 以上、宜しくお願い致します。

  • Accessで複数テーブルのJoin

    次のようなテーブル(T1~T4)とクエリ(Q1~Q2)があります。 クエリの表で囲っているものはAccessのQBEを表しています。 その下はAccessが自動生成したSQLです。 Accessがある場合はいいのですが、ない場合、いきなりSQLを 書かないといけないわけですが、どのような順番に並べていって いいのか整理がつきません。 4つ以上になるとさっぱりです。 何かヒントをいただけませんでしょうか? T1:売上表[売上No、日付、顧客CD] T2:顧客表[顧客CD、顧客名] T3:売上明細[ID、売上No、連番、商品CD、数量] T4:商品表[商品CD、商品名、単価] Q1: ┌────────────────┐ │日付 │ 商品名│単価 │数量 │ ├────────────────│ │売上表│商品表│商品表│売上明細│ └────────────────┘ SELECT 売上表.日付, 商品表.商品名, 商品表.単価, 売上明細.数量 FROM 商品表 INNER JOIN (売上表 INNER JOIN 売上明細 ON 売上表.売上No = 売上明細.売上No) ON 商品表.商品CD = 売上明細.商品CD; Q2: ┌────────────────────┐ │日付 │ 顧客名│商品名│単価 │数量 │ ├────────────────────│ │売上表│顧客表│商品表│商品表│売上明細│ └────────────────────┘ SELECT 売上表.日付, 顧客表.顧客名, 商品表.商品名, 商品表.単価, 売上明細.数量 FROM (商品表 INNER JOIN (売上表 INNER JOIN 売上明細 ON 売上表.売上No = 売上明細.売上No) ON 商品表.商品CD = 売上明細.商品CD) INNER JOIN 顧客表 ON 売上表.顧客CD = 顧客表.顧客CD;

  • accessのレポートで困ってます。

    受注伝票を印刷するためのレポートを作っていますが 複数商品を購入した際に購入商品を全て表示させる方法が分かりません。 Access2002で受注管理のテンプレートを 自分なりにカスタマイズして使っています。 受注に関するテーブルは3つあります。 関連するフィールドは下記の通りになっています。 【受注】  受注ID … key   【商品】  商品ID … key  商品名  単価 【受注明細】  受注明細ID … key  受注ID … 受注テーブルの受注IDと一対多  商品ID … 商品テーブルの商品IDと一対多  数量  単価 レポートには、複数商品を購入した場合に 全ての商品名と購入数、価格を表示させたいと思います。 どうぞよろしくお願いいたします。

  • ACCESSでクエリの式の内容を一覧にしたい

    ACCESSの質問です。初心者です。 ひとつのクエリにフィールドが200以上あり、その中に式がたくさん(私にとっては・・・)あります。 式の内容を変更したりメンテするのに、クエリの内容をすべて一覧で見る方法か、または、EXCEL等に吐き出して見る方法はありますでしょうか? 現在、クエリのフィールド名と式の内容を1フィールド毎にEXCELに貼り付けて管理しています。 たとえば・・・ (1)ID (2)数量 (3)単価 (4)売上:数量*単価 (5)消費税:数量*単価*0.05    ・    ・ といった具合にクエリの内容が延々と200以上続いています。実際には複数の条件式が入ったりして、もっと複雑な計算をしています。 これを、一覧の形で見るか、またはEXCEL等に吐き出した形で見たいのです。 どなたか教えてください。 よろしくお願いします。

専門家に質問してみよう