• 締切済み

Accessクロス集計で列数が多い場合の処理方法

商品情報のデータベースになるものを作成したいです。 関連会社から商品情報に関するテキストファイルを頂きました。 テキストファイルは、在庫情報だけや、カテゴリ情報だけ、成分情報と注意事項、などが入力されたファイルが複数あり、それぞれ商品番号も併せてタブ区切りで入力されています。 それらをAccess2003にインポートし、商品番号を主キーにし、必要項目をリレーションシップで1つのテーブルにまとめました。 1商品の情報は複数のフィールドから成り立っています。 が、設定に無理があるのか、とあるテキストファイル(hoge.txt 100MB)がうまく処理できず、1つの商品番号に対して複数行レコードができてしまうという結果になりました。 ▼作業環境は以下の通りです OS:Windws7 使用ソフト:Access2003 必要に迫られAccess2003の使用をしておりますが、知識は無いに等しく、検索でやりたい事を調べ、理解できた事だけ利用している素人です。 今回データベースを作成する為に、やりたい事を調べてみたらリレーションシップの存在と、クロス集計の存在を知ったので、扱い方が間違っているかも知れません。 【複数テキストファイルの必要項目をリレーションシップで1つのテーブルにまとめた際の現状】 商品番号,商品名,内容量,商品説明 A11111,美白ローション,内容量:100ml,商品説明,○○○○ A11111,美白ローション,内容量:100ml,使用上の注意,△△△ A11111,美白ローション,内容量:100ml,成分,□□□□ F22222,洗顔フォーム,内容量:80g,商品説明,◆◆◆ F22222,洗顔フォーム,内容量:80g,含有成分,▼▼▼▼ これはリレーションシップの方法が間違っているのでしょうか? 「hoge.txt」自体の配列が問題なのかもと思い、「hoge.txt」を別途クロス集計でデータの並べ替えをするも、列数が多いため並べ替えもままならない状況です。 (並べ替えようとすると2000列を超えるようでエラーが出ます) 【「hoge.txt」だけを別途Accessへインポートした際の現状】 商品番号,配番,項目,項目の説明 A11111,1,商品説明,○○○○ A11111,30,使用上の注意,△△△ A11111,50,成分,□□□□ F22222,1,商品説明,◆◆◆ F22222,2,含有成分,▼▼▼▼ これらが500000行ほど続いています。 項目の種類は2000を超えるようです。 下記のように、クロス集計で「hoge.txt」を理想のかたちにできれば問題ないと思うのですが、その為に何をしたらいいか、また、何を調べたらいいのか教えていただけたら幸いです。 【「hoge.txt」のクロス集計理想】 商品番号,商品説明,使用上の注意,成分,含有成分,…他、項目2000以上 A11111,○○○○,△△△,□□□□, , F22222,◆◆◆, , ,▼▼▼▼ また、1商品1レコード(複数のフィールドから成り立つ)が実現したとして 必要な範囲の商品情報だけを取り出す方法が現状わかりません。 必要な範囲が商品番号で連番であれば良いのですが、そうではない為。 「hoge.txt」他、テキストファイルは、商品情報が全て入った状態で頂いております。 例えば外部ファイルに必要な範囲の商品番号を入力し、それをインポートしてフィルタにかけるなど、何か方法はないものでしょうか? 関連会社に商品情報の抽出方法を聞いているのですが 1.(他の会社は)Accessで処理しているようだが、方法までは分からない 2.テキストファイルを商品番号で検索し、必要な情報を一つづつ拾う 3.専門の業者に委託する と、いう返答でした。 情報が複雑で申し訳ありませんが、何卒ご教授よろしくお願い致します。 ただ、申し訳ないのですが、Accessに関して素人なのと、私以外の者も 作業する事を考えるとVBAなどはなるべく使わない方法で考えております。

みんなの回答

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.28

>やっとサブフォームが作れない理由がわかりました。 前進です 最終的には仕様、仕様内容の2つのテーブルを追加して 添付のようなテーブル構成が良いかと 各テーブルの主キーはオートナンバー形式のIDで統一します リレーションは全て 1:∞になったら正解です サブフォーム付のフォームは  1側のテーブルを主フォーム  ∞側のテーブルをサブフォーム とします。 下記の2つのテーブルを作成して下さい 尚.フォーム名を仕様登録、仕様登録サブとします。フォームの一覧が隣に   クエリは作らず、テーブルだけでやって下さい   クエリーは便利ですが目的の判明出来ない物になりなります。 仕様(テーブル) ・ID ・商品ID 数値型にして商品Mをルックアップ 仕様内容(テーブル) ・ID ・仕様ID   数値型 ・成分ID   数値型にして成分をルックアップ ・ブランドID 数値型にしてブランドをルックアップ ・カテゴリID 数値型にしてカテゴリをルックアップ 誤字、当て字の多い説明文によくついてきてくれましたね 次回からは http://okwave.jp/qa/q8742682.html

lotus2014
質問者

お礼

こんにちは。 新規Qの補足とお礼を使ってしまったので、一端こちらに本日のご報告をさせていただきます。 商品マスタと商品組合せの2つのテーブルでフォームを作りました。 Accessを開いた時に現れるメニュー画面上の[商品登録]ボタンをクリックすると、フォームの商品マスタが現れます。 その他に、仕様と使用内容の2つのテーブルでフォームを作りました。 リレーションは添付いただきました写真のようになっております。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.27

>クエリやテーブルなど、コマンドボタンにどんな命令(?)を持たせたらよいのか分からずまだ作成しておりません。 命令を持たせないまま、まず作成だけしてしまってもよいのでしょうか?  コマンドボタンは次何をするかを順次促がしてくれます、この中でフォーム等を選択するステップ  が入っているので目的物が作った後です。 > フォームが一つできたらこれを開くコマンドボタンをメニューフォームに配置します この設定をしたつもりでしたが、[商品登録]コマンドボタンをクリックしても何もおきないという事は設定を間違えてるのでしょうか? ちゃんと設定できていればクリック時に変化があるのでしょうか。  一旦メニューを閉じて再度開いたときに有効になります。  ファイルが開いたときメニュー画面になるならファイルを閉じて開くも可能です  コマンドボタンの作成手順にミスがありました。  コマンドボタンに変化がない時はボタンをDELで削除して次の手順で作成して下さい。 【開いているメニューを右クリック】⇒【デザインビュー】⇒【ボタン】  ⇒【フォームの操作】⇒【フォームを開く】⇒【次へ】  ⇒【メニュー以外のフォーム】⇒【次へ】⇒【次へ】  ⇒【文字列へスイッチ】⇒【フォーを開くを商品登録等に変更】  ⇒【次へ】⇒【コマンドxxを選んだフォーム名と同じ名前に変更】 ⇒【完了】 他の質問は後になりますが、関連会社から商品情報について次の件補足願います 1.テキストファイルの1行目は見出し行ですか 2.在庫情報も商品番号、在庫情報の2項目ですか(在庫情報には 商品番号、日付、在庫数) 3.成分情報と注意事項、これは一つのファイルor二つのファイル?  一つファイルのときは区切り記号(スペース、コンマ、等)はありますか

lotus2014
質問者

お礼

回答ありがとうございます。 やはり本日もAccessに触る時間があまり持てませんでした… > コマンドボタンは次何をするかを順次促がしてくれます、この中でフォーム等を選択するステップ 仰る通りなのですが、例えば回答No.22にあるように > これに日付等のテキストボックス、フォーム、クエリー、フォーム、レポート等の呼び出しボックスを配置しますが まだレポート自体がなかったり、クエリも未完成だったりするので、どんな命令を持たせればよいのか分かりません… > 一旦メニューを閉じて再度開いたときに有効になります。 一旦メニューを閉じて再度開いた時にメニュー画面が現れます。 メニュー上にある[商品登録]コマンドボタンはクリックしても何もおきないです。 > コマンドボタンに変化がない時はボタンをDELで削除して次の手順で作成して下さい。 【メニュー以外のフォーム】が選択できない為、選択できず先に進めなくなりました。 ちなみに、メニュー以外にフォームはありません。 他にどんなフォームを作成すればよいか、探る時間が本日はありませんでしたので、また明日探ってみようと思います。 こちらがうまく設定できれば[商品登録]コマンドボタンを押したときにイベントが起きるようになるという事でしょうか。 > 1.テキストファイルの1行目は見出し行ですか いいえ、いきなり情報が入っています。 > 2.在庫情報も商品番号、在庫情報の2項目ですか(在庫情報には 商品番号、日付、在庫数) いいえ、在庫情報としての単独の「.txt」データ自体がありません。 複数の「.txt」データがあり、そのうちの商品マスタらしき「.txt」のフィールドに含まれた状態でなら在庫情報は存在しますが、フラグのような「1」か「0」です。(在庫というよりは廃盤情報) また、フラグを拾い上げるような「.txt」データはありません。 > 3.成分情報と注意事項、これは一つのファイルor二つのファイル? > 一つファイルのときは区切り記号(スペース、コンマ、等)はありますか これは1つのファイルです。 「.txt」データをテキストエディタで開いた時にカンマやスペースが見られない為、区切り記号はタブとしています。 ここでもう一度情報を整理しますね。 関連会社から商品情報に関する複数の「.txt」ファイルを頂きました。(商品は十万件以上あります) この「.txt」ファイルには、商品に関する情報が記載されており、それぞれが関連し合ったファイルです。 これらをAccessへインポートして適切に関連を持たせ、最終的にはアップロード用に「.csv」として出力させたい為、リレーションされた内容が横1行に吐き出されるようにしたいです。 ▼商品情報に関する「.txt」について ・商品マスタ.txt(商品に関する主要情報) ・ブランド.txt(ブランドのリスト) ・メーカー.txt(製造メーカーのリスト) ・カテゴリ.txt(カテゴリのリスト) ・カテゴリ関連.txt(カテゴリ間の関連が記載) ・説明.txt(商品に関する説明) ・成分.txt(成分の内容が記載) ・成分関連.txt(商品マスタと成分の関連が記載) ▼「.txt」のフィールドについて 【商品マスタ.txt】 商品コード(文字列) 商品名(文字列) メーカーコード(文字列) ブランドコード(文字列) 成分コード(文字列) 販売価格(数値) 廃盤フラグ(数値) 更新日(数値) 【ブランド.txt】 ブランドコード(文字列) ブランド名(文字列) 【メーカー.txt】 メーカーコード(文字列) メーカー名(文字列) 【カテゴリ.txt】 カテゴリコード(文字列) カテゴリ名(文字列) 親カテゴリ(文字列) 成分フラグ(数値) 階層(数値) 【カテゴリ関連.txt】 大分類コード(数値) 中分類コード(数値) 小分類コード(数値) 成分コード(数値) 【説明.txt】 商品コード(文字列) 配番(数値) 項目(文字列) 項目の説明(文字列) 【成分.txt】 成分コード(文字列) 成分名(文字列) 成分説明(文字列) 【成分関連.txt】 商品コード(文字列) 成分コード(文字列) ▼「.txt」データの他に3種類、「.txt」データに関する説明ファイルがあります。 ・商品情報.xls(「.txt」データの説明をセルを活用し、表示例の描写とコメント) ・関連図.ppt(「.txt」データの関連性を示した図(恐らく主キーと、リレーション) ・定義.xls(「.txt」データの取り扱いに関する説明。「.txt」のフィールドに対する属性と最大桁数とフラグの内容) 困っているのは「説明.txt」データをAccessにインポートした時、下の例のように縦に情報を展開している為、横1列に情報が並ばない事です。 商品番号/配番/項目/項目の説明 A0000001/1000/注意/高温多湿の…(長文) A0000001/2000/説明/大人気です…(長文) C0000003/1000/注意/高温多湿の…(長文) C0000003/3000/規格/100ml う~ん…なんだか具体的に書きすぎて人任せになっている雰囲気がムンムンです^^;

lotus2014
質問者

補足

こんばんは。 やっとサブフォームが作れない理由がわかりました。 > 先ず主テーブルのフィールドを選び、 商品マスタと、そのフィールドを選択しこの時点で[次へ]ボタンを押していました。 次へを押さずに商品組合せを選ぶのですね。 どこにも[次へ]なんて書いてないのになぜか次へ進んでサブフォームになるテーブルを選ぶものだと解釈していました。 お恥ずかしい… 本日はここまでしか触れませんでしたので、明日、これを開くフォームの作成に取り掛かります! が、明日でこのQも4週間経ってしまう為、取り急ぎ新規Qを立てましたので、気力がありましたらまた宜しくお願い致します。 http://okwave.jp/qa/q8742682.html

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.26

関連会社から商品情報に関するテキストファイルを頂きました。 テキストファイルは、在庫情報だけや、カテゴリ情報だけ、成分情報と注意事項、などが入力されたファイルが複数あり、それぞれ商品番号も併せてタブ区切りで入力されています。 1商品の情報は複数のフィールドから成り立っています。 http://www.microsoft.com/japan/office/previous/xp/suminaka/access/sousa/1/sousa1_24_1.htm 関連会社から商品情報は上記サイトのリレーションシップとよく似てますね 取引先マスタ:商品の情報 地区マスタ :在庫情報 業種マスタ ;カテゴリ情報 担当者マスタ:成分情報と注意事項 部署マスタ と読み替えればれば正にそのものですね ご理解頂ければ空のACCESSを開きテキストデータのインストールから始めましょう 各テキストファイルの先頭行が項目名で、タブ区切りということで これからの手順はACCESS2010の操作を記述したものです、 1.CSVデータのインポート  【外部データ】⇒【テキストファイル】⇒【参照】⇒【ドライブ】⇒【フォルダ】  ⇒【CSVファイルの一つ】⇒【OK】⇒【開く】⇒【OK】  ⇒【区切り記号付きでフィールドが区切られているをONにする】⇒【次へ】  ⇒【フィールド区切り記号をタブに】⇒ 【先頭行をフィールド名として使うをON】  ⇒【次へ】⇒【次へ】⇒【次へ】⇒【完了】⇒【閉じる】 他のテキストファイルも同様の手順でインポートします。 2.商品マスタテーブルに各テーブルとリレーション対象の数値型フィールドを追加します ブランドID カテゴリID 成分と注意事項ID 3.その他 ※成分情報と注意事項は商品番号、成分、注意事項 の3つで構成されていて 、注意事項の無いものは省かれているのではないでしょうか 出かけますので 追加した各IDの入力は商品番号を頼りに、設定するのですが次になります。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.25

こちらのページを参考にやってみました。 http://www.microsoft.com/japan/office/previous/xp/suminaka/access/sousa/1/sousa1_24_1.htm テーブル/クエリ では【テーブル:商品組合せ】 選択可能なフィールド では【全て】 と設定し、(7)(ページ中腹辺りです)まで進むのですが 8.「サブフォームがあるフォーム」の方がオンとなっているのを確認((9))します。 が、現れないのです。 今までの設定も確認してみたのですが、おかしなところはなかったように思います。 ※ただ単純におかしなところに気づけていない可能性もありますが… ----------------------------------------------------------------------  この課題は担当者の得意先一覧といった感じですね  課題のリーレーション図はセットしましたか? 出来ませんね!  図は1:∞のリレーションですね  このような設定をするには、1:∞の1側のフィールドをテーブル設定で主キーにします    >フォームを開いたとき基準日を開いた日の日付にして基準日変更RTNを実行 >する為の記述という事ですよね。なので設定していないのですが、 >これも設定するべきでしたでしょうか?  仰る通りです。ただVBAは難しい事ではなく、一人がVBAを組み込めば他の人が楽になります。  日々発生する売り上げデータのようなものは月報、年報作成のときに役立ちます。  期初日、期末日も必要ですね 次のサイトはVBAの使用例付の説明でっす。 http://www.geocities.jp/cbc_vbnet/top/nyumon.html 仕様明細テーブルの、 > 仕様ID(数値型、仕様テーブルをルックアップ) > 成分ID(数値型 成分テーブルをルックアップ) > ブランドID(数値型 ブランドテーブルをルックアップ) > 備考ID(数値型 備考テーブルをルックアップ) >○テーブルをルックアップとありますが、それぞれテーブルを作っておき、各テーブルをルックアップすればよいのでしょうか? その通りです。これをすると仕様明細テーブルと成分テーブルが1:∞により一つの商品に複数の成分が登録できます。 >こちらのQもあと1週間で自動的に締められてしまうようですし、  大丈夫です。  次の回答で貴女の最初の質問が解決します。 >更に新規Qを立てようと思います。  このQが解決すると、新規Qはフォームの作成法とシステム化となるでしょう  1.ルックアップで検索出来るようになったが商品数が多いため検索の絞り込みと、プルダウンリストの並び替え  2.クエリー、フォーム、レポートを開くメニューの作り方  3.コマンドボックスの背景色をフォームを開く、レポートの印刷その他で色分けしたい   このQは回答が出ない(VBA組み込み)ため長持ちします。1~2週間後に答えましょう  http://okwave.jp/qa/q8733543.html  良い方が答えて下さいましたね!  この方を今後「ゴリさん」と呼びます。  このゴリさんPCの知識、活用は自分より遥かに上の方です。  大抵1~2回のお答えで終わられますが、今回はあなたのお礼での反応が良かったのですね  現時点で4回も、驚きです。

lotus2014
質問者

お礼

回答ありがとうございます。 本日は仕事が立て込んでいた為、ほとんどAccessに触る時間が持てませんでした。 仕様、仕様明細、成分、ブランド、備考テーブルを新たに作成しルックアップまで設定しております。 > このQが解決すると、新規Qはフォームの作成法とシステム化となるでしょう ひぇ~、先は長いですね。 軽々しくとんでもない質問をしてしまったようですね^^; > 良い方が答えて下さいましたね! そのような方から回答頂いていたとは! chayamatiさんを始め、回答下さった方々は私にとっては素晴らしい「先生」です。 本当に用語も何も知らない素人が要領を得ない質問をしているのに、皆様その意図を汲み取り、答えやヒントを与えて下さるのでとても感謝しています^^ 申し訳ありませんが、回答No.26で説明頂いた内容は明日、設定させていただきますね。

lotus2014
質問者

補足

こんばんは。 回答No.18から少しずつ躓いてる感が否めないので、もう一度戻って設定している最中になります。 > ACCESSのファイルを開くと一つのホームを設定できます。 現在Accessを開くと、以下のメニューフォームが開くよう設定されています。 メニュー [商品登録]←コマンドボタンで、現在はクリックしても何もおきない 基準日:[2014/09/02]←テキストボックスで、現在は本日の日付が表示されています 開始日付:[  ]←テキストボックスで、現在は空欄 終了日:[  ]←テキストボックスで、現在は空欄 月初日:[  ]←テキストボックスで、現在は空欄 月末日:[  ]←テキストボックスで、現在は空欄 ※基準日の規定値をdate()としてあります > このメニューにコマンドボタンを必要なだけ貼り付けて、テーブル、クエリー、フォーム、レポートを開く設定が簡単にできます。 クエリやテーブルなど、コマンドボタンにどんな命令(?)を持たせたらよいのか分からずまだ作成しておりません。 命令を持たせないまま、まず作成だけしてしまってもよいのでしょうか? > フォームを開いたとき基準日を開いた日の日付にして基準日変更RTNを実行 記述して頂いたVBAの入力場所ですが、どこに記述すればよいか検索中です。 これかな?と、思う箇所があり試してみたのはこちらですが、うまくいきませんでした↓ 基準日に対して非連結となっているテキストボックスを右クリックすると「イベントのビルド」と表示があり、そのうちの「コードビルダ」にVBAが記述できそうなスペースがありましたので試しに記述してみましたところ、コンパイルエラーと返ってきてしまいました。 そして回答No.22のこちら > フォームが一つできたらこれを開くコマンドボタンをメニューフォームに配置します > これも次の順にマウスクリックです > 【開いているメニューを右クリック】⇒【デザインビュー】⇒【ボタン】⇒【フォーム面】 > ⇒【フォームの操作】⇒【文字列】⇒【フォーを開くを商品登録等に変更】⇒【フォームを開く】⇒【次へ】 > ⇒【メニュー以外のフォーム】⇒【完了】 この設定をしたつもりでしたが、[商品登録]コマンドボタンをクリックしても何もおきないという事は設定を間違えてるのでしょうか? ちゃんと設定できていればクリック時に変化があるのでしょうか。 教えて頂いている身で申し訳ないのですが、本日も仕事が立て込んでおり全然進まなかったです。 明日も恐らく仕事にかかりきりになる事と思います。 時間を見つけて試してみますが、この時点で間違えている解釈や設定などありましたらヒントなど頂けるとありがたいです><

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.24

こちらのページを参考にやってみました。 http://www.microsoft.com/japan/office/previous/xp/suminaka/access/sousa/1/sousa1_24_1.htm テーブル/クエリ では【テーブル:商品組合せ】 選択可能なフィールド では【全て】 と設定し、(7)(ページ中腹辺りです)まで進むのですが 8.「サブフォームがあるフォーム」の方がオンとなっているのを確認((9))します。 が、現れないのです。 今までの設定も確認してみたのですが、おかしなところはなかったように思います。 ※ただ単純におかしなところに気づけていない可能性もありますが… ----------------------------------------------------------------------  この課題は担当者の得意先一覧といった感じですね  課題のリーレーション図はセットしましたか? 出来ませんね!  図は1:∞のリレーションですね  このような設定をするには、1:∞の1側のフィールドをテーブル設定で主キーにします    >フォームを開いたとき基準日を開いた日の日付にして基準日変更RTNを実行 >する為の記述という事ですよね。なので設定していないのですが、 >これも設定するべきでしたでしょうか?  仰る通りです。ただVBAは難しい事ではなく、一人がVBAを組み込めば他の人が楽になります。  日々発生する売り上げデータのようなものは月報、年報作成のときに役立ちます。  期初日、期末日も必要ですね 次のサイトはVBAの使用例付の説明でっす。 http://www.geocities.jp/cbc_vbnet/top/nyumon.html 仕様明細テーブルの、 > 仕様ID(数値型、仕様テーブルをルックアップ) > 成分ID(数値型 成分テーブルをルックアップ) > ブランドID(数値型 ブランドテーブルをルックアップ) > 備考ID(数値型 備考テーブルをルックアップ) >○テーブルをルックアップとありますが、それぞれテーブルを作っておき、各テーブルをルックアップすればよいのでしょうか? その通りです。これをすると仕様明細テーブルと成分テーブルが1:∞により一つの商品に複数の成分が登録できます。 >こちらのQもあと1週間で自動的に締められてしまうようですし、  大丈夫です。  次の回答で貴女の最初の質問が解決します。 >更に新規Qを立てようと思います。  このQが解決すると、新規Qはフォームの作成法とシステム化となるでしょう  1.ルックアップで検索出来るようになったが商品数が多いため検索の絞り込みと、プルダウンリストの並び替え  2.クエリー、フォーム、レポートを開くメニューの作り方  3.コマンドボックスの背景色をフォームを開く、レポートの印刷その他で色分けしたい   このQは回答が出ない(VBA組み込み)ため長持ちします。1~2週間後に答えましょう

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.23

> ところで、これは現段階では設定しないのですよね? フォームの作成ウィザードの事かと思い、試してはみたのですがサブテーブルを作成するかどうかの選択がなかった為、飛ばしてしまいました。 もう一度やってみてください フォームに最初のテーブル、サブフォームにリレーションのついたもう一つのテーブルが必要です フォームウィザードの最初の画面のテーブル/クエリーの窓繰り返しできますので 【主フォームの対象とするテーブル】⇒【必要なフィールド】 ⇒【サブフォーの対象とる主フォームにリレーションのついたテーブル】 ⇒【必要なフィールド】⇒【次へ】 この先はウィザードに注意深く進んで下さい 新規にテーブルを作成して下さい ・仕様 ID(オートナンバー)  商品MID(商品Mの主キーと同じデータ型、商品マスタをルックアップ) ・仕様明細 ID(オートナンバー)  仕様ID(数値型、仕様テーブルをルックアップ)  成分ID(数値型 成分テーブルをルックアップ)  ブランドID(数値型 ブランドテーブルをルックアップ)  備考ID(数値型 備考テーブルをルックアップ)  その他商品コードと内容だけのテキストも追加可能です この二つのテーブルで再挑戦して下さい 出来ると各商品に複数の成分を登録できます。 新規のQ拝見しましたが、このような内容は飛躍しますので 今迄通りこのQで楽しみます。 今日PC環境の無い大阪へ行きます。週明けに対応します。

lotus2014
質問者

お礼

回答ありがとうございます。 ネットだけのやりとりで、それも基本をしらない初心者の話なのでとても内容がつかみづらいかと存じます。 本当に毎回ありがとうございます^^ > もう一度やってみてください こちらのページを参考にやってみました。 http://www.microsoft.com/japan/office/previous/xp/suminaka/access/sousa/1/sousa1_24_1.htm テーブル/クエリ では【テーブル:商品組合せ】 選択可能なフィールド では【全て】 と設定し、(7)(ページ中腹辺りです)まで進むのですが 8.「サブフォームがあるフォーム」の方がオンとなっているのを確認((9))します。 が、現れないのです。 今までの設定も確認してみたのですが、おかしなところはなかったように思います。 ※ただ単純におかしなところに気づけていない可能性もありますが… 1つ思うのは、回答No.18でのVBAの記述ですが、こちらは フォームを開いたとき基準日を開いた日の日付にして基準日変更RTNを実行 する為の記述という事ですよね。なので設定していないのですが、これも設定するべきでしたでしょうか? 仕様明細テーブルの、 > 仕様ID(数値型、仕様テーブルをルックアップ) > 成分ID(数値型 成分テーブルをルックアップ) > ブランドID(数値型 ブランドテーブルをルックアップ) > 備考ID(数値型 備考テーブルをルックアップ) ○○テーブルをルックアップとありますが、それぞれテーブルを作っておき、各テーブルをルックアップすればよいのでしょうか? > 新規のQ拝見しましたが、このような内容は飛躍しますので今迄通りこのQで楽しみます。 Accessに関する質問で自分で返答できる内容が思い浮かばず、関連する質問をしてみたのですが新規Qでは回答がでてしまいました… こちらのQもあと1週間で自動的に締められてしまうようですし、更に新規Qを立てようと思います。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.22

ttp://www.moug.net/tech/acopr/0120003.html >こちらの解説によると、先にフォームをつくっておく必要があるようですね。 >先に適当なフォームを作ろうと思うのですが、フォーム自体の作成経験がありません。 フォーム作成の説明に入りますが、こちらACCESS2010ですので、どうなりますか不安です 先ずメニューフォームを作成しましょう 【作成】⇒【空白のフォーム】⇒【ラベルツールをフォーム上にドラッグ】⇒【「メニュー」と入力】 ⇒【フォームの右上の閉じるボタン】⇒【はい】⇒【フォーム名を「メニュー」に変更】⇒【OK】 これでメニューフォームが出来ました。 これに日付等のテキストボックス、フォーム、クエリー、フォーム、レポート等の呼び出しボックス を配置しますが、とりあえず、探し当てられたURLを参考に[起動時の設定]でこのメニューを適用して ファイルを一旦閉じ、再びファイルを開いて期待通りか確認して下さい。 >試しに先に適当なフォームを作ろうと、ウィザードから作成してみると、 >最初にテーブル又はクエリを選択する箇所、選択可能なフィールドが出てくるのですが 1つのフォームの主テーブルまたはクエリは一つです (参照用テーブルも使うことがありますがこれはあくまで参照用です) (ルックアップ設定されている参照用のテーブル不要です) リレーションシップを設定されているテーブル 先ず主テーブルのフィールドを選び、次にサブテーブルのフィールヅドを選びます ウィザードを1ステップ進めるとサブフォーム作成するかどうかでハイとすると 主フォームとサブフォーム2つのフォームが作成されます イイエとするとリレーションで一つのテーブルとして一つのフォームになります エクセルで体験済みと思いますが、主テーブル部分がすべてのサブテーブルにつくので 入力用ではありません。 ※オートナンバー形式のIDはお任せですので省きます >・新しく基準日、開始日付、終了日、月初日、月末日等用のテーブルを作成 >・既存のテーブルにこれらを追加 >どちらかだとは思うのですが、ここで挫折してしまいました  どちらも必要ありません  メニューフォームにテキストボックス配置して抽出のキーとしたりします。  通常テーブルのフィールド名が表示されますが、  こちらのボックスには非連結と表示されます。 フォームが一つできたらこれを開くコマンドボタンをメニューフォームに配置します これも次の順にマウスクリックです 【開いているメニューを右クリック】⇒【デザインビュー】⇒【ボタン】⇒【フォーム面】  ⇒【フォームの操作】⇒【文字列】⇒【フォーを開くを商品登録等に変更】⇒【フォームを開く】⇒【次へ】  ⇒【メニュー以外のフォーム】⇒【完了】

lotus2014
質問者

お礼

回答ありがとうございます。 > ファイルを一旦閉じ、再びファイルを開いて期待通りか確認して下さい。 ここまで上手くできた為、続けて↓を設定しました。 > 【開いているメニューを右クリック】⇒【デザインビュー】⇒【ボタン】 少々表示が違うようでとまどいましたが、なんとかそれらしきものを設定しました。 > 先ず主テーブルのフィールドを選び、次にサブテーブルのフィールヅドを選びます > ウィザードを1ステップ進めるとサブフォーム作成するかどうかでハイとすると > 主フォームとサブフォーム2つのフォームが作成されます > イイエとするとリレーションで一つのテーブルとして一つのフォームになります ところで、これは現段階では設定しないのですよね? フォームの作成ウィザードの事かと思い、試してはみたのですがサブテーブルを作成するかどうかの選択がなかった為、飛ばしてしまいました。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.21

>遠慮なく新規に質問を立てさせて頂きますのでよろしくお願い致します。 > 「Access2003 起動時開くフォーム」をキーワドで検索で 了解しました。 まだ間に合いますか。 このキーワードでは直ぐ解決して締めるることになります。 姑息な事と思いますが テーブルの設計での注意点程度 内容もシンプルにして、詳しい内容はお礼、補足でしてはと思います。 テーブルのプロパティーは沢山ありますが、お勧めのものとお勧め理由を教えていただけませんか 「Accessクロス集計で列数が多い場合の処理方法」 は質問内容が長く補足、お礼に辿り着くまでスクロールが必要です。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.20

>> 成分、注意事項は改行が入っていませんか? >ざっと見たところでは改行は入っておりません。 上記は質問No.15のお礼のコメントです 組合せ名をコメントにして改行を入れたテーブルをテキスト形式にしてエキスポートしたものです これをACCESSにインポートすると改行をレコードの区切りとするため 本来3個のレコードが7個のレコードになります。 これがfogeの不規な則並びの原因の一つになります --------------------------------------------------------- "ID","組合せ名","商品ID1","商品ID2","商品ID3" 1,"組合せ名10 組合せ名11 組合せ名12 組合せ名13 組合せ名14",5,5,7 2,"組合せ2",6,6,8 3,"新製品",8,9,10

lotus2014
質問者

お礼

http://okwave.jp/qa/q8733543.html こちらに新規に質問を立てさせて頂きましたのでよろしくお願い致します。 > 組合せ名をコメントにして改行を入れたテーブルをテキスト形式にしてエキスポートしたものです 特筆しなかった事で申し訳ないのですが、関連会社からいただいた物の中には、他に「商品情報説明.xls」と「関連図.ppt」がございまして、 「商品情報説明.xls」の説明でも↓このような形でセルを使っておられましたので、おそらく改行区切りというわけではなさそうです。 商品番号/配番/項目/項目の説明 A0000001/1000/注意/高温多湿の…(長文) A0000001/2000/説明/大人気です…(長文) B0000002/3000/規格/35g C0000003/1000/注意/高温多湿の…(長文) C0000003/3000/規格/100ml

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.19

よくついてきてくれますね ! 他の人のアドバイスを受けられない 二人だけの世界になってしまいましたね 嬉しいですが 同じ質問は許されませんので一度締めて、新規にQしませんか 変な遠慮は無用です。 >ファイル(F)を開いたらオプションが見当たりませんでした。 「Access2003 起動時開くフォーム」をキーワドで検索で http://www.moug.net/tech/acopr/0120003.html がヒットしました

lotus2014
質問者

お礼

いえ、こちらこそ、大変ありがたく思っております。 また、マンツーマン授業みたいで楽しませていただいております。 途中でも、もし飽きたり何かありましたら回答は辞めてしまわれても構いませんので、その時までよろしくお願い致します^^ では、回答No.20にお返事を書きましたら、 遠慮なく新規に質問を立てさせて頂きますのでよろしくお願い致します。 > 「Access2003 起動時開くフォーム」をキーワドで検索で ありがとうございます。 私のほうも「カレントデータベース」や「Access オプション」、「Access2003 ファイル(F) 中身」などと検索してみたのですがなかなかコレだ!というのが見つからなくて困っていたのですが、探し方が悪かったようですね^^; 後ほど試してみますね。

lotus2014
質問者

補足

http://www.moug.net/tech/acopr/0120003.html こちらの解説によると、先にフォームをつくっておく必要があるようですね。 先に適当なフォームを作ろうと思うのですが、フォーム自体の作成経験がありません。 > そのほか基準日、開始日付、終了日、月初日、月末日等のテキストボックスも配置します 試しに先に適当なフォームを作ろうと、ウィザードから作成してみると、最初にテーブル又はクエリを選択する箇所、選択可能なフィールドが出てくるのですが ・新しく基準日、開始日付、終了日、月初日、月末日等用のテーブルを作成 ・既存のテーブルにこれらを追加 どちらかだとは思うのですが、ここで挫折してしまいました^^;

関連するQ&A

  • 重複データを省いて集計する方法について

    お世話になります。 現在、重複データを省いて集計する方法を考えているのですが、実現できておりません。 実現できるSQLをご存知の方、いらっしゃいましたら情報を頂けますでしょうか。 # 私の使用しているのは、PostgreSQL8.3となります。 実現したい内容は、以下となります。  ・テーブルAからID単位で人数を集計。 ※但しファイル名が同じ場合は、1つとして集計する。   group by句でID,ファイルをグループ化してみたのですが、うまくいきません。    【テーブルA】    ID  ファイル  人数    0001 aaa.txt  3    0001 aaa.txt  3    0001 aaa.txt  3    0001 bbb.txt  3    0001 bbb.txt  3    0001 bbb.txt  3    0000 ccc.txt  3    0000 ccc.txt  3    0000 ccc.txt  3 欲しい結果は、以下となります。     ID  集計    0000 3    0001 6 お手数お掛け致しますが、ご教示のほどよろしくお願い致します。

  • accessの集計について

    アクセスにデータを取り込んで、必要なデータを抽出するクエリ(集計_サブ[添付図1])を作りました。 左から、店舗No・日付・商品情報・金額です。 それを元に、集計をして店舗別で、商品毎に月前半・後半と集計をしたいです。[添付図2] クロス集計で出来そうな気がしますが、店舗別、商品別にして半月毎に集計する事は可能でしょうか? もしくはvba使わないと不可能でしょうか?

  • エクセル2000での集計方法

    エクセル2000を使用しております。 現在シ-トに下記の表があります。同じ項目を集計してその集計部分だけを印刷したいのです。 例)  商品番号 売上数量 売上単価 売上金額 原価単価 原価売上     A000001   100    1000     100000     500     50000 普通に集計しますと単価も足されてしまいます。よく解っていなくて申し訳ありませんが集計して表示も出来るようにするにはどうすれば良いのでしょうか?

  • excelでの集計方法

    質問させてください。 excel2007で次のような表を集計しています。 111   A商品 30g 111   A商品 20g 111   A商品 20g 112   A商品 20g 113   B商品 20g 条件としては、 「商品名・内容量(g)が同じ ただし、左の番号が同じものは、”1”とカウントする」 よって A商品 30g→1 A商品 20g→2 B商品 20g→1 としたいのです。 宜しくお願いします。

  • Access2000 集計とレポートの方法について

    私の知識では何ともならず、日々苦労しておりますので、お助け頂きたく宜しくお願い致します。 Access2000のテーブルには売り上げ実績として 日付、担当者、商品大区分、商品小区分、在庫 (Date、text、text、text、数値) がデータとして登録されています。例としては、 2008/01/01,担当者A,食品,商品A,135 2008/01/01,担当者B,食品,商品A,90 2008/01/01,担当者C,食品,商品A,30 2008/01/01,担当者A,食品,商品B,175 2008/01/01,担当者A,食品,商品A,80 2008/01/01,担当者C,食品,商品B,30 2008/01/01,担当者A,食品,商品B,230 2008/01/01,担当者D,食品,商品C,330 2008/01/01,担当者A,食品,商品C,30 2008/01/03,担当者B,食品,商品A,30 2008/01/03,担当者A,食品,商品A,30 のようなデータとなっています。 これらの登録されたデータを日付期間を指定し、集計すると 2008/01/01~2008/01/03,担当者=6名(2008/01/01=4名、2008/01/03=2名) 食品,商品A,395 食品,商品B,430 食品,商品C,360 となり、これらの内容を本社の端末に入力します。 しかしながら、本社の端末に入力するには制約があります。 制約は、1画面あたり 1) 1画面あたり、最大15行の登録が可能(ただし在庫数は1行あたり最大99まで) 2) 1画面あたり、集計期間の担当者合計は最大99まで 3) 1画面あたり、15行分の商品数合計は最大999まで 4) 1画面毎に、入力した最大15行の商品数合計の入力をする必要があります。 となっています。 上記例では担当者数も商品大区分も商品小区分も少ないのですが、実際には約1000アイテムあり、本社への報告は集計期間の指示があった時に随時実行する必要があります。 つまり、上記例の場合で出力したいのは、 期間:2008/01/01~2008/01/03 集計期間の担当者合計=6名 食品,商品A,99 食品,商品A,99 食品,商品A,99 食品,商品A,98 食品,商品B,99 食品,商品B,99 食品,商品B,99 食品,商品B,99 食品,商品B,34 食品,商品C,99 食品,商品C,75 ・・・15行には達していないが、在庫数最大値999を超えたので改ページ?改セクション? →商品合計=999を表示 改ページ?改セクション?で 食品,商品C,24 食品,商品C,99 食品,商品C,63 →商品合計=186を表示 とする必要があります。 また、集計期間内に担当者の合計が99名を超えた場合の計算にも、どうすればいいのか・・・私の知識不足が多すぎます・・・ お分かり頂きにくいかも知れませんが、最終的に集計を上記のような仕様にして各行項目と合計値をプリントアウトしたいと思います。(今は適当な在庫数と行数で区切る手作業をしています) 手作業では余りにも大変なので、入力用の資料を作成できるように御教示いただけますよう宜しくお願い致します。

  • EXCEL(エクセル)の集計方法について。

    EXCEL(エクセル)の集計方法について。 仕事が進まず、大変困っています。 列A~Zまでに複数の項目があります。 ピボットを使い、表を作ります。 縦にA~Cの項目「名称」、「型式」、「単価」をとります。 横にD~Eの項目、「受注番号」、「項」をとります。 そして、Fの項目「個数」の集計をします。 しかし横が入り切れませんでした。 「受注番号」、「項」を基準にデータを三つに分け、ピボットで作成しましたが、それでは縦の行がバラバラになってしまいます。 縦の行は全く同じものをそれぞれの表では使いたいのです。 そういう表は作れますか?なるべく関数は使いたくありません。(データが何千行とあるので重くなります) 初心者なので、説明が分かりづらく、申し訳ございません。 アドレスをお願いします。

  • エクセルを使った毎月の営業成績を集計する方法

    毎月、3店舗から商品毎の前月の日別営業成績が送られてきます。(遠隔地でありフォルダの共有はできていない。) 今は本店でエクセルにて集計用ファイルを作成し、各店から送られてきたエクセルファイルを一旦自分のパソコンに保存し、データをリンクさせて各店の営業成績を取得・集計しています。 具体的には、本店で「H21集計データ6月分」というファイル名で、行(縦)で日付、列(横)で各店(ABC店)ごと商品abc・・・という内容で、日別で商品毎に販売数量を入れて営業実績表を作成しています。 数字の入力方法は、(1)本店作成「集計ファイル6月分」の6月1日のA店a商品のセルを選択しそこに、A店から送られてきた「A店実績6月分」ファイルの1日のa商品のセルの数字をリンクさせる。(2)本店作成ファイルの(1)で選択したセルを下に伸ばしてコピーし、2日以降の数字をA店作成ファイルから取り込めるようにする。(3)bc・・・商品と繰り返し、A店が終わればBC店を同様に繰り返し、集計ファイルが完成。(4)月が変わる毎に同じ作業を百回以上繰り返す。 この作業に毎月相当な時間がかかり、肩がこる次第です。 そこで質問です。 本店作成のファイルのシート最上部に「○」月分と表示していますが、「○」のセルに7を入力したら、7月の各店各商品の数字が集計ファイルに反映されるような数式の入れ方を教えてほしいです。 例えば本店集計ファイルのセルA1に「7」を入力したら、集計ファイルのA店a商品の各日ごとのセルに、「A店実績7月分」のファイルから数字を取り込み、本店集計ファイルのセルA1に「8」を入力したら、集計ファイルのA店a商品の各日ごとのセルに、「A店実績8月分」のファイルから数字を取り込むというように集計ファイルを作り込みたいと思っています。 長く、下手な説明で申し訳ないですが(画像等で作業内容を表示できたらよいのですが)、よろしくお願いします。

  • アクセスのデータ集計方法(名寄せ)がわかりません。

    アクセスのデータ集計方法に関する質問で、あるソフトの構造がどうしてもわからなくて質問させて頂きました。 1)ソフトの概要 ソフトはアクセスとエクセルで構成されていて、プログラムはVBAをしようしています。「元データ」(以下に詳細説明)をソフトに読み込んでアクセスで集計し、エクセルでグラフを出力する分析用ソフトです。エクセルのグラフは元々作ってあり、アクセスでデータを集計したものをエクセルのセルにリンクする形式のようです。 2)元データとは 元データとは、Aさん~Eさんがある時点でE・F・Gの3つのお店で商品を購入した際の履歴データで、人物ごとに年齢・品目・金額等のデータが1行で表示されています。従って、AさんがE店・F店で商品を購入している場合は、データが2行で表示されています。分析するには、2行データを1行データにするために「名寄せ」をする必要があります。 3)質問 (1)複数レコードを1つのレコードに集計する(名寄せ)にはどうすればよいのか。 (2)品目と金額から、品目ごとの平均金額を出したい場合など、あるデータとあるデータを選んできて集計させるのは、「クエリ」という機能を使うのでしょうか。 (3)上記との関連ですが、例えば国がホームページ上で公開している複数の既存統計をソフトに読み込んで必要データだけを取り出して集計し、エクセルで作ってあるグラフにデータをリンクさせてグラフを出すようなソフトを作ることは可能なのでしょうか。 情報処理が専門ではないので、わかりにくくて申し訳ないです。 大変困っております、よろしくお願いします。

  • エクセル よい集計方法ないでしょうか?

    エクセル よい集計方法ないでしょうか? 順番の小さい方から、同じ種類ごとにまとめて1行でリストを作る仕事があります。 今は手作業で書式通りに変更しているのですが、 関数やマクロをつかって、間違いのないよう正しい指定書式通りに集計できるよい方がないでしょうか? 元の資料 A列(番号)|B列(種類)|C列(個数)|    1    |丸     |1個     |   2    |三角    |1個     |  3    |三角     |1個     |   4-9   |三角    |6個     |    10    |丸     |1個     | 作成したい資料  A列(番号)|B列(種類)|C列(個数)|    1    |丸     |1個     |    2-9  |三角    |8個     |     10    |丸     |1個     | 商品を受入れた順番毎に種類と個数が登録されています。 番号は”商品受入日順”と決まっているので、種類別に番号を振ることはできません。 最終的に番号順/種類順で何個の商品があるのかを集計する必要あります。 これも指定の書式で社外に出すために変更できません。 元資料は1商品に対して1行ではなく、5行目のように、 「4~9番として 三角の商品を 6個受入」と1行にまとめられています。 ピボットを使って、と何回か段階を経て作業することも考えたのですが・・・。 なんとか、うまく処理できるアイデアをいただければと思います。 よろしくお願いします!! ちなみに、自分はマクロは記憶させるマクロのみつかえるレベルです。

  • Accessのクエリによる集計が出来ない

    Accessのクエリによる集計が出来ない kamuycikapです。 OKWaveで様々な方のアドバイスを頂きながら、慣れないAccessと悪戦苦闘しております。 一昨日、計算したい表を作成する為にOKWaveに質問を載せました。 http://okwave.jp/qa/q5549286.html 無事に上記のアドバイスでリレーションのオプション設定を行い、集計計算したいクエリの結果を表示することが出来ました。 その表を元にして 下記の質問でアドバイス頂いた方法による集計を行おうとしたのですが、集計出来なくて困っています。 http://okwave.jp/qa/q5544785.html データベースの構成とキーは以下のとおりです。 --ここから <データベース構造:リレーションシップ> リレーションシップとテーブルの構成は下記の通りです。 -->がリレーションシップです。 Kがキーになります。 ■テーブルA      ■テーブルB    ■テーブルC    ■テーブルD K納品書コード --> K納品書コード --> K納品書コード  --> K納品書コード 仕入数          K商品コード  --> K商品コード   --> K商品コード                             K商品連番    --> K商品連番                             出品数量        K出品連番                             商品名           発送個数                             色             発送日付                             サイズ                             売値 ※テーブルCからテーブルDへのリレーションオプションを「’テーブルC’の全レコードと’テーブルD’の同じ 結合フィールドのレコードだけを含める。」としています。 <作りたいデータ> 納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量、発送個数、出品在庫数、倉庫在庫 <クエリ> ○グループ  納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量 ○合計(集計)  発送個数 ○出品在庫数(演算)  [出品数量]-[発送個数] ○倉庫在庫(演算)  [仕入数]-[発送個数] <データ状況> テーブルCのデータは約300レコードありますが、そのうち20件ほどしか商品が発送されていない為、テーブルDのデータは20件しかありません。 <望む結果> テーブルCのデータが全て表示され、紐つけられたテーブルDのデータがが存在する場合は、発送個数を表示し出品在個数を演算する。 演算した出品在個数を利用して、倉庫在庫も演算する。 <クエリの実行結果> テーブルCのデータが全て表示され、テーブルDに紐つけられたレコードも表示されるが、テーブルDに入力されている20件のデータが商品連番(テーブルCのフィールド)ごとに集計されない。 --ここまで <目的> お店に出品された商品は、日を分けて少しずつ売れていきます。(一日で全部売れることもありますが....) 従って、出品された商品(テーブルCのデータ)に対して売れていく数(テーブルDの複数のレコード)のデータがぶら下がっている形になります。 このようなデータベースですので、出品した商品が何個売れたかを計算する為には、商品に対する売れた個数を集計(合計)しなければなりません。 <結果> テーブルCの商品連番ごとの発送個数を集計したいのですが、テーブルDの出品連番ごとの集計になっている様子です。 <頂きたいアドバイス> 上記のデータベースとクエリで、テーブルCの商品連番に紐ついたテーブルDに格納されている発送個数の合計値を集計するための方法 以上、識者の方のアドバイスをお願い致します。

専門家に質問してみよう