アクセスで悩んでいる初心者のためのVBAの使い方

このQ&Aのポイント
  • アクセスで受注テーブルと仕様テーブルを結合する方法について教えてください。
  • 出荷の梱包を10台ごとに分ける方法について教えてください。
  • 受注テーブルと仕様テーブルのリレーションについて説明してください。
回答を見る
  • ベストアンサー

アクセス

アクセスで悩んでいます。VBAがまだ分からない初心者です。 受注テーブルに…受注ID(オートナンバー)、納期、注文書番号、品名、仕様、台数(1台~40台口で注文あり) 仕様テーブルに…仕様ID(オートナンバー)、仕様品目 受注テーブルの仕様と仕様テーブルのIDでリレーションしてあります。 出荷の梱包が10台以下なので、10台分割して看板が必要です。 方法がまったく分からないのですが、ユニオンクエリで試した所… SELECT*, "10/" & 台数 As ロット数 FROM 受注テーブル WHERE 台数 >= 台数\10 UNION ALLSELECT *, (台数 Mod 10) & "/" & 台数 FROM 受注テーブル WHERE 台数 Mod 10; 上記の結果が… 受注ID 1…1台 1/1,10/1      2…20台 10/20      3…6台 6/6,10/6      4…16台 6/16,10/16 5…18台 8/18,10/18 6…40台 10/40 7…30台 10/30    となってしまいました。 本当は… 受注ID 1…1台 1      2…20台 10/20,10/20 3…6台 6 4…16台 6/16,10/16 5…18台 8/18,10/18 6…40台 10/40,10/40,10/40,10/40 7…30台 10/30,10/30,10/30     となって欲しです。 方法、式…どうしたらいいですか。

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

  • ベストアンサー
noname#235001
noname#235001
回答No.1

>WHERE 台数 >= 台数\10 これは  WHERE 台数 >= 10 と同義で、10個以上で1個しか取り出せません。 UNIONより前を(台数\10)個分に増やすには、抽出条件を>=20、>=30、・・・と変更した選択クエリをUNIONで数珠つなぎにしていかなければなりません。 クエリじゃなく、一時作業テーブルに(台数 MOD 10)と(台数\10)個分の(10/台数)を繰り返し追加するVBAを作成すると楽。

coco--chanel
質問者

お礼

回答ありがとうございます。やはり…VBAで設定するしかないのですね…。 本当に初心者ですいません。 >クエリじゃなくて一時作業テーブルで というのはモジュールを開きVBAを作成ということで良いのでしょうか。 どういったVBAを作成すればいいでしょうか。 ずうずうしいお願いで申し訳ありません。

関連するQ&A

  • アクセス クロス集計の列フィールド名変更

    こんにちは。 質問です。 受注テーブル・・・受注ID(オートナンバー)/納期/台数/金額/大分類 大分類テーブル・・・大分類ID(オートナンバー)/大分類 大分類テーブルのIDと受注テーブルの大分類は一対多のリレーションになっています。 (本を見ながら作成したので、そもそもリレーションの必要性がはっきり把握していないのかもしれません) 納期を月単位でフォーマットして、クロス集計を作りました。 行・・・納期(月単位) 列・・・大分類 値・・・金額 行は1つしか選択できなかったので、行に納期、列に大分類としました。大分類は6種類あります。 集計の結果で列フィールドが大分類IDになっています。数値(オートナンバー)だと分かりづらいので、どうしても大分類名で表示したいのですがどうしたらよいでしょか?

  • Access リレーションが分かりません。

    こんにちは、Access初心者です。 現在の受注テーブルをIDベースでCSVでエクスポートするシステムを追加しようと思っているのですがイメージがわきません。 同じデータベースにCSVテーブルを新規で追加し受注テーブルのIDとCSVテーブルの受注IDを一対多でリレーションをしました。(受注テーブルにはデータが入っていますがCSVは新規です。) 受注テーブル ID:オートナンバー 納期:日付 品番:テキスト 数量:数値 CSVテーブル ID:オートナンバー 状況:テキスト...未と済をコンボボックスで選択式 受注ID:数値 メインフォームでCSVテーブルの状況ベース、受注テーブルの納期ベースでデータを抽出 サブフォームで上記条件のデータが見れるように作ろうとしました。 ですが、サブフォームクエリの段階でデータが新規入力レコードしか表示されてきません。 どうしたら、受注テーブルの一つ一つのレコードにCSVテーブルのレコードが結びつけられますか。 ど素人ですみません。

  • Access 一対一リレーションの編集

    こんにちは 現在、Accessと他のソフトとの連携をするために奮闘しています。。。知恵をお貸下さい。 Accessには元々受注テーブルがあります。 主キーID:オートナンバー 受注日:日付型 納期:日付型 図番:テキスト型 数量:数値 単価:数値 とあり、データがすでに存在しています。他のソフトへエクスポートを継続的に行うにあたって 新規にテーブルを作成し、一対一リレーションをしようとしています。 新規テーブルは 主キーID:オートナンバー 取引先コード:テキスト型 担当者コート:テキスト型 区分コード:テキスト型 実出荷日:日付型 エクスポート状況:数値 そして、受注テーブルと新規テーブルのIDを一対一でリレーションしクエリを作成し、エクスポートしようと思っています。 その際、新規テーブルの方はデータが空なのでクエリ結果が得られないと思うのですが。。。 どうやって既存の受注テーブルと一つ一つのレコードを繋げる事が出来ますか❓ 編集方法をどなたか教えて下さい。 素人ですみません。

  • Access クエリ実行すると意図しないパラメータ

    Access の集計方法で困っています。 型番別に使用する数を把握するためです。 仕様数/台数は、標準は1台に1個仕様ですが、たまに2個以上仕様だったりするので用意したフィールドです。 ID(主キー):オートナンバー型 型番:テキスト型 仕様数/台数:数値型 上記テーブルがあるとします。(特に型番マスターデーブルを作成してリレーションしている訳ではないです。1つのテーブルです。) クエリですべてのフィールドを追加→集計(グループ化)→[型番]の集計行をカウントにしました。 その後、[型番のカウント]と[仕様数/台数]を演算する列フィールドを挿入しました。 クエリ実行をすると意図しない、"パラメーター入力?[型番のカウント]"メッセージが出ます。 原因は何でしょうか?素人ですみません。 又、他にもっと違う集計方法がありますでしょうか?

  • accessデータ活用法

    編集方法で悩んでおります。 受注テーブル ID オートNo. 品名 テキスト 数量 数値 品名テーブル ID オートNo. 品名 テキスト とあるとします。 テーブル同士は、リレーションはされておらず、 受注フォームのリストボックスのコントロールソースに品名テーブルが参照されています。 今回、品名を分類コードで仕訳したいのですが... せっかく品名が入力されているのでそれを引用したいです。 そこで、 (1)新たに分類テーブルを作成し組込む (2)品名テーブルの行を増やし、分類コードのフィールド追加 (3)品名を置換えや条件分岐関数で分類コードに変換 ちなみに、品名/分類は10種類以内です。 (1)(2)はいろいろ試しましたが、受注テーブルの既存データのクエリ結果が得られません。 そもそも、考えが間違ってるでしょうか??? 宜しくお願いします。

  • ユニオンクエリで0と表示される。

    教えてください。 4つのテーブルをユニオンクエリでひとつにしたく以下のようにSQLに書きました。 SELECT ID AS フィールド1 ,No AS フィールド2, Remark AS フィールド3 FROM テーブル1 UNION ALL SELECT ID,No,Remark FROM テーブル2 UNION ALL SELECT ID,No,Remark FROM テーブル3 UNION ALL SELECT ID,No,Remark FROM テーブル4 フィールド2のNOには数字が入っているのですがフィールド2の列にはすべて0と表示されて数字がででてきません。ID(オートナンバー型)とRemark(短いテキスト型)はちゃんと表示されます。もとのテーブル1と2のNoは数値型 テーブル3と4のNoは短いテキスト型です。なにが原因でどうしたら数値が表示されるようになりますか?

  • アクセス2000 ファイルの結合

    t_顧客情報、t_購入明細の2つのテーブルを顧客ID(オートナンバー)でリレーション設定し、管理しています。テーブルもフォームもまったく同じファイルが2つあり、それぞれにデータが入っています。顧客IDはどちらとも「000001」からついています。この2つのファイルのデータを1つのテーブルへデータを結合したいのですが、どのような手順で行えばよいでしょうか。アドバイスお願いします。

  • GROUP BYの記述方法について

    GROUP BYの記述方法について教えてください --------------------- 受注データ(テーブル) --------------------- 品目CD 受注数 00001  10 00001  10 00002  20 00002  15 --------------------- 品目マスタ(テーブル) --------------------- 品目CD 品目名 00001  えんぴつ 00002  けしごむ 00003  色鉛筆 上記二つのDBから、品目ごとの受注数の合計を取得するときのSQL文として、どうするのが正しいのでしょうか? --------------------- 欲しい結果 --------------------- 品目CD 品目名  受注数 00001 えんぴつ 20 00002 けしごむ 35 (考えられるSQL) CASE1:受注データの品目CDと品目マスタの品目名のグループ化 SELECT A.品目CD, B.品目名, SUM(A.受注数) FROM 受注データ A, 品目マスタ B WHERE A.品目CD = B.品目CD GROUP BY A.品目CD, B.品目名 CASE2:受注データをグループ化した結果と品目マスタを結合 SELECT X.品目CD, X.受注数合計, Y.品目名 FROM  (SELECT 品目CD, SUM(受注数)   FROM 受注データ   GROUP BY 品目CD)X,品目マスタ Y WHERE X.品目CD = Y.品目CD CASE3:品目マスタの品目CDと品目名のグループ化 SELECT B.品目CD, B.品目名, SUM(A.受注数) FROM 受注データ A, 品目マスタ B WHERE A.品目CD = B.品目CD GROUP BY B.品目CD, B.品目名 レスポンスも含めて教えてください。 よろしく、お願いします。

  • Accessで差分取得する方法は? LEFT JOIN エラー

    Accessで差分抽出するSQLを教えてください。 【旧テーブル】t1 id, class, number, value 1, "a", 1, "aka" 2, "a", 2, "aki" 3, "a", 3, "aku" 【新テーブル】t2 id, class, number, value 1, "a", 1, "aka" 2, "a", 2, "更新" 3, "a", 3, "aku" 4, "a", 4, "新規" 5, "b", 1, "新規" 【ダメだったクエリ】 SELECT t2.* FROM t2 INNER JOIN t1 WHERE t1.class IS NULL OR t1.number IS NULL 【望む結果】 4, "a", 4, "新規" 5, "b", 1, "新規" *列 id は各テーブルの主キーですが、新旧テーブル間の関連はありません(リレーションではありません)。

  • ACCESSのテーブル設計とクエリ

    ACCESS初心者です。 ACCESS2010 OSはWindows7です。 パソコンはアクセスとエクセルマクロの入門書を読み終えたレベルです。 只今、注文実績管理表を作成するために、必要な情報を複数のテーブルに 分解してコード化していますが、関連付けできない為にデーターの参照ができません。 対応方法があれば教えていただくようお願いします。 どうしても実現したいので、テーブルの設計が間違えているかもしれませんが写真を掲載します。 ■現在の状況と質問 A)商品だけで300アイテムあります。リストを見ながら商品名と金額を入力するのは、膨大な時間を奪われるので、発注書に書かれている。4ケタの商品番号と注文数量の入力のみに したい。その後に入力した4ケタの数字でデーターを集計し、分析業務につなげていきたい B)【C】と【D】は注文書のイメージです。ひとり最大50個の商品を一枚の注文書で 発注します(ひとりの注文が1か月に1~3回)。一回の注文で最大、50品目のデーターを 格納することは、アクセスで可能なのでしょうか? C)発注実績の抽出ですが、以下内容で実行したいです。どうすれば可能でしょうか?   テーブルの設計と関連付け、リレーションの設定がわかりません。   i)個人別の1か月注文実績。商品名、注文合計数、合計金額を商品別に表示   ii)個人別の注文合計金額(月、年間)の集計。   iii)商品Aの注文実績(月、年間) D)リレーションの状態。 【A】の(2)と【C】の(2)  【B】の(2)と【D】の(3)、(5)、(7)、(9)、(11)、(13)、(15)、(17)、(19)・・・ 【C】の(1)と【D】の(2)のみ参照整合性がとれています。 E)商品テーブルのドリルボタンを押して、下の階層を見ようとすると、画像のような メッセージがでます。これはなんなのでしょうか? ■現在の状況を列挙します。 【A】顧客テーブル (1)顧客ID(オートナンバー・・・長整数型) 主キー(2)発注コード(テキスト型)         ※発注コードは『英数字』のためテキスト型。リンク先も『テキスト型』 (3)氏名(テキスト型) 【B】商品テーブル (1)商品ID(オートナンバー・・・長整数型) 主キー(2)注文番号(数値型・・・倍精度浮動小数点型) (3)品名(テキスト型) (4)金額(通貨型) 【C】注文テーブル 主キー(1)注文ID(オートナンバー・・・長整数型)    (2)日付 (3)発注コード(テキスト型)        ※発注コードは『英数字』のためテキスト型。リンク元も『テキスト型』 【D】注文明細テーブル(注文番号は全て4ケタの数字です。重複Noはありません) 主キー(1)注文明細ID(オートナンバー型・・・長整数型) (2)注文ID(長整数型) (3)注文番号1(数値型・・・長整数型) (4)数量(注文番号1) (5)注文番号2 (6)数量(注文番号2) (7)注文番号3 (8)数量(注文番号3) (9)注文番号4 (10)数量(注文番号4) ・ ・ ・※注文番号50まで続く・・・