• ベストアンサー

アクセスでの抽出方法

アクセス2000を使用しています。 今までエクセルで単価を調べていたのを、アクセスで調べたいと考えています。 今は下図のようにテーブルのフィールドを作りました。 担当者 見積番号 機械名 部品名1 単価1 部品名2 単価2・・・ ○○様 001   △△機   A1   500  A2    300 ただ、機械一式で作る場合は問題無いのですが、機械の部品だけを数点作る、という事が多くあります。 例えば、機械一式の場合は下記のようなテーブルを作りました。 品名1 単価1 品名2 単価2 品名3 単価3 品名4 単価4・・ A1   500  A2   300  A3   800  A4   200 この機械で部品3点の場合は下記のようになります。 品名1 単価1 品名2 単価2 品名3 単価3 品名4 単価4・・ A2  300  A4   200  A6   800  A9   300 これで「A2の部品の単価が知りたい」となった時には、フォームに「テキストボックス品名1」と「テキストボックス品名2」を作り、それぞれから調べる方法しか僕には分かりません。 これを、1つのテキストボックスで、部品名を入力またはコンボなどからの選択で、品物1、品物2、品物3などのフィールド全てから検索し、単価を抽出する事は出来ないでしょうか? 今はエクセルで見積書を作成し、そこからアクセスへインポートしています。 言葉足らずかも知れませんが、よろしくお願いします。

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

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

<見積書> ID__見積番号___顧客名___標題 1_____________1___鈴木様____△△機 2_____________2___中村様____△△機 <見積書明細> 見積書_ID___行番号___部品名___単価 ____________1_________1____A1________\100 ____________1_________2____A2________\200 ____________1_________3____A3________\300 ____________2_________1____B1________\400 ____________2_________2____B2________\500 ともかく、テーブルを上述のように再作成するのが先決だと思います。 <顧客マスター><機械マスター><機会対応部品一覧>という設計は将来的な課題だとしても・・・。 質問は、テーブル設計が済んでからです。

waiwai1977
質問者

お礼

お返事ありがとうございます。 テーブルの設計ですね。。。 了解いたしました。 少しづつですが、やっていきます。

その他の回答 (1)

回答No.2

「機械一式テーブル」があるってことでよろしいでしょうか? 一つの方法としては、 品名1 単価1 ・・・部品クエリ1 品名2 単価2 ・・・部品クエリ2 品名3 単価3 ・・・部品クエリ3 《以下同じ》 クエリを複数作り、ユニオンクエリで結合すれば部品一覧ができると思います。 ユニオンクエリについては詳しく説明してくれるサイトがたくさんあるので検索してみてください。

waiwai1977
質問者

お礼

お返事ありがとうございます。 「ユニオンクエリ」という事を初めて知りました。 少し探してみます。

関連するQ&A

  • アクセスでの文字検索方法

    いつもお世話になります。 今回、マイクロソフト アクセスを使用する事になりました。 会社の見積りで使用するのですが、今まではエクセルで見積りを作り、過去の見積書から拾い出し、コピペで作成していました。 今はコンボボックスを使用して見積書を作成していますが、検索数が多いので、文字を入力して検索出来ないかと思います。 1つのテーブルに「機械名」「品番」「部品名」「型番」「単価」「担当者」と作り、コンボボックスで「機械名」を選び、次に「部品名」「型番」・・・と選ぶようになっています。 これを「機械名」「部品名」と入力すると、フォーム詳細に出るようにしたいです。 どのような方法があるのでしょうか。 アクセス暦が2ヶ月と超初心者なので、説明が分かりにくいと思います。 OSはWin2000、アクセスは2000です。 どうぞ、よろしくお願いします。

  • Access2013 不一致抽出

    不一致抽出方法についてご教授いただけないでしょうか? 下記のようなテーブルA、テーブルBがありお互いの差を抽出結果として表示したいと思っています。 比較したいテーブルが複数ある為抽出フォーム側のテキストボックスにて抽出条件を入れたいと思っています。 フォーム1のテキストボックス1とテキストボックス2に比較したいテーブルA、テーブルBと入力したいと考えています テーブルA JANコード    品名  店番 4912345678901 品名1  00001 4923456789012 品名2  00001 4934567890123 品名3  00001 4945678901234 品名4  00001 テーブルB JANコード    品名  店番 4912345678901 品名1  00002 4934567890123 品名3  00002 4945678901234 品名4  00002 4956789012345 品名5  00002 抽出結果 JANコード    品名  店番 4923456789012 品名2  00001 4956789012345 品名5  00002

  • Access Dcount で抽出条件複数の場合

    教えてください。Access2000です。 テーブルAでフィールド1の値が「1」でフィールド2の値が「Cを含む全て」としたいのですがどうしたら良いですか? テキストボックスのコントロールソースに記入します。 DCount("*","[テーブルA],"[テーブルA]![フィールド1]=1 and [テーブル1]![フィールド2]='*C*'") よろしくお願いします。

  • アクセスで

    アクセスであるテーブルに日付付きの注文した品物の履歴一覧があります。フィールドは"日付""品物目""注文個数"で、このテーブルは毎日追加されていきます。 もう一つのテーブルに品物の単価一覧があります。フィールドは"品物名""単価"です。 クエリで1つ目のテーブルの"注文個数"に2つ目のテーブルの"単価"を掛け合わし"日付""品物名""注文個数*単価=注文金額"としています。 この履歴が3か月分ぐらいありますが、単価は期間関係なしに変更があるものと、変更が無いものとがあり、いきなり何品か変更になったりします。 ですから、単価が変更になった時に、単価一覧テーブルの単価を変更してしまと、変更前データまで影響してしまい、過去のデータを見たい時に困ってしまいます。 単価を変更しても、変更前のデータは残る様にできますか? 品物名は2000種類ぐらいあり、単価変更も何か月に1回ぐらいはあります。又、過去のデータを見る事も度々あり、その時に売上に対して、注文がどの程度あったかなど、非常に大事なデータになっています。 誰か教えて頂けませんか? よろしくお願いします。

  • Access コンボボックスを使って抽出

    Access2000・Windows2000を使用しています。 レコードの抽出をしたいと思います。テーブルは1つ、フィールドには日付・商品名・業者名・単価・・・とあります。フォームで「商品名から抽出(コンボボックスから商品を1つ選ぶ)」または「業者名から抽出(コンボボックスから業者を1つ選ぶ)」(コンボボックスから商品を1つ選ぶ)出来るようにし、なおかつ今月のレコードのみ表示させたいのですが、まずそのテーブルを1つ作成した時点でつまづいてしまっています。 どなたかご教授お願いします。

  • ACCESS 2007で帳票フォームで絞り込み

    はじめまして、ACCESS初心者なのですが、困っています。 商品マスターというテーブル(商品ID、メーカー名、品名、型式)があって、見積フォームの サブフォームの見積詳細フォーム中で、メーカー名、品名、型式をコンボボックスで選択できるようにしており、以前見積もりしたことのある商品をメーカー名、品名、型式をコンボボックスでテーブルから 絞り込みをしながら参照してくるようにしたいのですが、テーブル内にあるレコードと同じものを 選ぶと新しくレコードが追加されてしまいます。同じ場合は追加したくないのですがどうしたら良いのでしょうか? レコードソースはクエリQ_見積詳細で、  見積詳細テーブル(見積No、注文No、数量、単価、商品ID)と商品マスター(商品ID、メーカー、  品名、型式)を商品IDでくっつけているものです。  コンボボックスは3つあって、  1つ目のメーカーCoのコンボボックスはコントロールソース メーカー  値集合ソースはクエリでQ_メーカー  Q_メーカーは商品マスターのテーブルで  フィールド・・メーカー テーブル・・商品マスター 集計・・グループ化 表示・・ON  フィールド・・品名 テーブル・・商品マスター 集計・・グループ化  表示・・OFF フィールド・・IIf([Forms]![見積データフォーム]![見積データフォーム詳細]![品名IDCo]         _Is Null,True,[商品マスター]![品名]=[Forms]![見積データフォーム]! _[見積データフォーム詳細]![品名IDCo]) テーブル・・なし 集計・・グループ化  2つ目の品名IDCoのコンボボックスはコントロールソース 品名  値集合ソースはクエリでQ_品名  Q_品名は商品マスターのテーブルで  フィールド・・品名 テーブル・・商品マスター 集計・・グループ化  表示・・ON  フィールド・・メーカー テーブル・・商品マスター 集計・・グループ化 表示・・OFF  フィールド・・IIf([Forms]![見積データフォーム]![見積データフォーム詳細]![メーカーCo]         _Is Null,True,[商品マスター]![メーカー]=[Forms]![見積データフォーム]! _[見積データフォーム詳細]![メーカーCo]) テーブル・・なし 集計・・グループ化  3つ目の型式Coのコンボボックスはコントロールソース 型式  値集合ソースはクエリでQ_型式  Q_型式は商品マスターのテーブルで  フィールド・・型式 テーブル・・商品マスター 集計・・グループ化  表示・・ON  フィールド・・品名 テーブル・・商品マスター 表示・・OFF          抽出条件 [Forms]![見積データフォーム]![見積データフォーム詳細]![品名IDCo]  フィールド・・メーカー テーブル・・商品マスター 表示・・OFF          抽出条件 [Forms]![見積データフォーム]![見積データフォーム詳細]![メーカーCo]   上記でやると、絞りこみはできるのですが、型式で同じものが2個表示されたり、レコードが新規  で追加されてしまいます。  よろしくお願いします。

  • Access2007で。

    Access2007で。 今Access2007を使ってちょっとしたシステムを開発してるのですが、フォーム内のテキストボックスに入力した文字列と、テーブル内のデータを参照する事ってできるのでしょうか? 例えば テーブルA、フォームBとして テーブルAには 問題番号 問題文 答え 上記のフィールドがあり、 フォームB内の解答テキストボックスと、テーブルAの答えフィールド内データを参照し、 同じデータがあった場合はフォームCを開き、データがなかった場合はフォームDを開く。 このような形にしたいのですができるのでしょうか? 無知な質問で恐縮ですが、ご教授ください。

  • Access2003にて・・・

     こんにちは。Accessにて、詰まってしまいまして、お知恵をお借りできればと思っています。よろしくお願いします。 Access2003 にて テーブルAには、 品番、品名、単価の3つのフィールドがあります。 このテーブルをもとにして、フォームAを単票形式で作成しました。 このフォームを、品番を登録したりするためではなく、品名や単価の確認用として使用したいと考えています。そこで、「品番」コントロールに品番を入力すると、あとの2つのコントロールに自動でデータが表示されるようにできればいいな、と思いました。  「品番」コントロールはコンボボックスに変更し、テーブルAの品番から値を取得するよう設定し、ここを入力したあと更新後処理であとの2つのコントロールに値を表示するような設定をするのかな、というところまで至って、はてここにどのような処理を書き込めばいいのかで詰まってしまいました。  このやり方がそもそも間違っているのかもしれません。テーブルをもとにするのではなく先にクエリを作っておくのがいいのかもしれませんが、自分なりにいろいろ試してみたのですが、なかなかうまくいかなくて…  何か方法はありますでしょうか?他にここへ組み込むサブフォームやら、別のフォームを表示させるボタン等考えているのですが、上記の方法ができるかできないかでフォームAのつくりを変えようと思っているので、とりあえずは必要と思われることだけ書きました。言っていただければどんどん補足させていただきますので、何か方法がございましたらご教授お願いいたします。 (ちなみに、私のAccessレベルは初心者でございます…)

  • Accessにてデータの更新

    Accessにて、フォームにボタンを作成し、クリックすると フォームのテキストボックスのデータを取得し、 テーブルのデータを更新するVBAを作りたいのですが、 mySQL = "UPDATE テーブル名 SET フィールド名 = '1234'" このようにすると、フィールドが1234のデータに更新されるのですが、 これを namae =Me!テキストボックス名 mySQL = "UPDATE テーブル名 SET フィールド名 = namae" とするとうまくいきません。 正しい書き方をお願いします。

  • Accessでの抽出について

    Accessで下記のようなテーブルがあるとします。 フィールド1  フィールド2  フィールド3 ----------------------- Aさん      20       200 Aさん      10       180 Bさん      10       300 Cさん      10       250 Cさん      30       310 条件1・・・フィールド2が「20」 条件2・・・フィールド3が「200」 この条件が当てはまる、フィールド1のデータはすべて抽出というふうにしたいのですが・・・。 (上記のテーブルでは、1件目と2件目のレコードがあてはまります。) どのようにして抽出したらよいでしょうか?よろしくお願いします。 Access2000を使用します。

専門家に質問してみよう