• 締切済み

アクセス初心者です

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

みんなの回答

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.4

[納品書]テーブルに、[商品コード]、[数量]、[単価]、[金額]フィールドがあって、 [商品マスタ]テーブルに[商品コード](主キー)、[商品名]、[標準単価]、[入数]フィールドがあるものとします。 (↑ご質問を見た感じ、[納品書] テーブルに [品名] フィールドや、[入数] フィールドがあるように思えるんですが、これらのフィールドは、(普通は)[納品書] テーブルには置かない方がいいです。) で、商品名等を自動で入力する方法ですが、#1でtomokaさんがお書きになられた方法でも可能ですが、コンボボックスを使ったやり方でもOKです。 1:仕入帳のフォームに、コンボボックスを3つ配置します。 2:それぞれの名前を、[商品コード],[商品名],[入数]とする。 3:それぞれの「プロパティ」を以下のように設定する    [コントロールソース]:商品コード    [値集合タイプ]:テーブル/クエリ    [連結列]:1 4:「商品コード」の[値集合ソース]プロパティをクリックし、右端の[…]をクリック 5:クエリの作成画面が出てくるので、「商品マスタ」テーブルから、[商品コード]、[商品名]、[標準単価]フィールドを、フィールド欄にドラッグ 6:同様に「商品名」コンボボックスの、[値集合ソース]に[商品コード]、[商品名]を設定 7:同様に「入数」に[商品コード]、[入数]を設定 8:「商品コード」コンボボックスの[列数]プロパティを「3」、[列幅]を「2,4,2」に設定 9:「商品名」と「入数」コンボボックスの[列数]を「2」、[列幅]を「0,4」に設定 ****ここまでで、商品名と入数の自動入力が完了**** 10:仕入帳フォームに、テキストボックスを配置し、名前を[単価]にする。 11:「単価」に以下のプロパティを設定    [コントロールソース]:単価 12:「商品コード」コンボボックスの[更新後処理]プロパティをクリックし、右側の[…]をクリック 13:以下のように入力する。(「Private Sub…」 や、「End Sub」は最初から入力されている) Private Sub 商品コード_AfterUpdate()   Me.単価 = Me.商品コード.Column(2) End Sub 14:同様に、「商品名」、「入数」も[更新後処理]の[…]をクリックして、   Me.単価 = Me.商品コード.Column(2) と入力する 以上、これで、単価の自動入力も可能になるはずです。 なんかあったら、補足してください。

  • ponpon
  • ベストアンサー率19% (67/345)
回答No.3

クエリーのどこでつまずいたのか詳細を書いていただけると的確な回答が出来ると思うのですが…とりあえず分かることを書きます。 クエリーの作成: 新規クエリーでもとになるテーブル(この場合は納品書テーブル)を選択します。そこで、商品コードと表示したいフィールドを選択してください。計算等で他フィールドの情報が必要な場合はそれも選択します。 さらに、その中で表示したいもの以外のチェックボックスをはずします。 (クエリーにする時点で何か抽出条件があるのであればここで抽出条件も書いておきます。たとえば表示する日付等に制限があるとか。) フォーム上の操作: フォームに、商品コードを入れるテキストボックスを作成 したと思うのですが、そのテキストボックスの脇とかにコマンドを作り、クリック時のイベントプロシージャ等に入力した商品コードと同じ商品コードを持つレコードを表示するようにします。 この時、VBAが理解できそうであればVBAを書くなり、ビルダ等を使用し、抽出したい条件の関連付けを行ってください。この場合"商品コード=商品コード"だと思います。 商店毎で、とありましたが商店毎のテーブルを持っているのでしょうか。何か特別なプロファイリングをしない限り、商品コードに重複さえなければ一つのテーブルにしてしまった方が扱いやすいと思います。 商店名をコンボボックスで作成し、伝票ナンバーの分かるところだけを入力して"抽出"というコマンドを押せば、該当する商品コードとタイトルが出てきて、そこから納品書のマスターのフォームを開く、という設計にすればレコードが増えた時や、商品コードを忘れてしまった時にでも検索しやすくなると思います。

  • imasa
  • ベストアンサー率32% (27/83)
回答No.2

私も素人で何かとつまずきながらやっています。  いろんな本を買いあさり、ついに家内に愛想をつかされましたが、この本をお勧めします。 「やってトライ Access2000」高橋良明著 SBP「やってトライ!」編集部編 ソフトバンク パブリッシング株式会社発行  特定の商品名を記入することはマナー違反かもしれませんがお許しください。

  • tomoka
  • ベストアンサー率9% (18/183)
回答No.1

私のアクセスはバージョンが以前のであること、私自身独学でしたことを踏まえて読んでくださいね。 商品コード、品名、金額、入り数、単価のテーブルは作ってあるでしょうか。 その商品コードと納品書の商品コードをリレーションシップで関連付ける必要があります。 選択クエリーで必要なものを選びますが、その時に商品コードは納品書テーブルから、品名以下出るようにしたいものはリレーションシップをしてあるテーブルから表示するようにします。 その選択クエリーを元にフォームを作ると商品コードを入れるだけで品名以下がでるようになるはずです。 私はこのようにして住所を入れると郵便番号がでるものを作って使っています。 もっと簡単にできる方法があるかもしれませんが・・・

関連するQ&A

  • SQLを教えてください。

    以下に5つのテーブルがあるとします。 (1)全体テーブル  ・登録順番号(Key)  ・登録名 (2)商品テーブル  ・項目コード(Key)  ・品名コード(Key)  ・商品登録順番号(Key)  ・商品サイズ(Key)  ・品名 (3)商品単価テーブル  ・項目コード(Key)  ・品名コード(Key)  ・商品登録順番号(Key)  ・商品サイズ(Key)  ・登録順番号(Key)  ・商品単価 (4)新_商品単価テーブル  ・項目コード(Key)  ・品名コード(Key(Key))  ・商品登録順番号  ・商品サイズ(Key)  ・登録順番号(Key)  ・新_商品単価 (5)詳細テーブル  ・登録順番号(Key)  ・品名コード(Key)  ・原価項目コード(Key)  ・商品数量A  ・商品数量B 上記のテーブルから、以下の条件に合致する「(1)の登録名」「(2)の品名」「(4)の新_商品単価×(5)の商品数量※」を取得したい。 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A 【条件1】全てAND条件 新_商品単価テーブルの項目コードが100  新_商品単価テーブルの品名コードが50 新_商品単価テーブルの新_商品単価×詳細テーブルの商品数量※<0 商品単価テーブルの商品単価×詳細テーブルの商品数量※>0 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A 上記で抽出出来るレコードに加えて、以下 【条件2】全てAND条件 新_商品単価テーブルの項目コードが200~300あるいは400~500 新_商品単価テーブルの新_商品単価×詳細テーブルの商品数量※=0 商品単価テーブルの商品単価×詳細テーブルの商品数量※>0 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A どのようなSQLで抽出できますでしょうか?? DBはAccessです。

  • コンボボックスを選択しても入力できません。

    ほぼ初心者です。よろしくお願いします。 ソフトはアクセス2000です。 注文記録を作ろうとしています。 注文品(テーブル) 注文先 区分 コード 入数 単価 A社  備品 1-1 10 200 注文フォーム 日付 注文先 区分 コード 入数 単価 数量 金額 見たいな感じのを作ってます。 フォームの部分の注文先をコンボボックスにして、注文品テーブルのを表示させるようにはできて、注文先には「A社」と入るのですが、区分やコード、入数、単価は空欄なのです。 どうやったら、その他が入力されるのででしょうか??? 質問が下手ですみませんが、お願いいたします。

  • access テーブルへのデータ入力について

    只今accessにて受発注のデータベースを作っておりますが、初心者でつまずいているため、ご教授ください。 商品テーブルに仕入単価が入っています。受注テーブルには仕入金額を入力する欄があります。普通なら、仕入単価と受注の数量をクエリで計算させて様々に加工、使用していくと思うのです。しかし、仕入単価は一応1年単位で決まっていますが、原材料の価格によって変動がある場合があります。 そこで、納品書の入手時点で仕入金額を入力しようと考えていますが、基本的には商品テーブルの単価使用したいので、フォームの仕入金額を入力する規定値に商品テーブルからの単価で計算させ、違った場合は手入力という形にしたいと思っています。 規定値に =[数量]*[単価](このフォーム自体のレコードソースが各テーブルをつなげた参照クエリです。) と設定しましたがname?エラーが返ってきています。 どうしたらいいでしょうか?この方法に限らず、単価変動がある場合の金額をどのようにすれば管理できるか案がありましたらお教えください。

  • Accessのクエリ集計について

    Accessのクエリ集計について kamuycikapです。 テーブルを集計するクエリについて悩んでいます。 以下がテーブルの状況と試行錯誤しているクエリ。 そして実行結果の箇条書きです。 非常に長文ですが、識者の方のアドバイスをお願い致します。 --ここから <データベース構造:リレーションシップ> リレーションシップとテーブルの構成は下記の通りです。 -->がリレーションシップです。 ■テーブルA      ■テーブルB    ■テーブルC    ■テーブルD 納品書コード ーー> 納品書コード ーー> 納品書コード  ーー> 納品書コード 仕入数          商品コード  ーー> 商品コード   ーー> 商品コード                               商品連番    ーー> 商品連番                               出品数量        出品連番                               商品名           発送個数                               色             発送日付                               サイズ                               売値 <作りたいデータ> 納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量、発送個数、出品在庫数、倉庫在庫 <クエリ> ○グループ  納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量 ○合計(集計)  発送個数 ○出品在庫数(演算)  [出品数量]-[発送個数] ○倉庫在庫(演算)  [仕入数]-[発送個数] <データ状況> テーブルCのデータは約300レコードありますが、そのうち20件ほどしか商品が発送されていない為、テーブルDのデータは20件しかありません。 <望む結果> テーブルCのデータが全て表示され、紐つけられたテーブルDのデータがが存在する場合は、発送個数を表示し出品在個数を演算する。 演算した出品在個数を利用して、倉庫在庫も演算する。 <クエリの実行結果> テーブルCのデータが全て表示されず、テーブルDに紐つけられたレコードのみが表示されるため、約300件のデータではなく、テーブルDに入力されている20件しか表示されない。 --ここまで 目的は、テーブルCのデータを全て表示し、発送情報がテーブルDに入力されているデータについては演算結果を表示する事です。 現状では、テーブルDのデータしかテーブルCのレコードが表示されません。。。。 どうすれば目的のデータを収集できるクエリが作成で切るのか、識者の方のアドバイスをお願いします。

  • ACCESSで複数の条件で集約したい

    ACCESS2002使用、winXPです。 ACCESSで複数の条件で集約したいのですが方法がわかりません。 例をあげますと、青果の取引を集計しているとして、「青果物コード」テーブル(コード、品名)があり、「取引履歴」(コード、数量、単価)テーブルがあるとします。 クエリで「コード、品名、単価、金額」を求めたいのですが、この際に、コード別でさらに単価別に集約したいのです。 コード 品名 単価 数量 100 かぼちゃ 80  2 100 かぼちゃ 85  1 100 かぼちゃ 80  2 100 かぼちゃ 82  1 110 きゅうり 15  1 110 きゅうり 15  3 このようなデータなら 100 かぼちゃ 80  4 100 かぼちゃ 85  1 100 かぼちゃ 82  1 110 きゅうり 15  4 となるようにしたいのです。 どのようなクエリにすればよいかご教授ください。 よろしくお願いします。

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

    アクセスの集計機能を使用して、品名毎の数量の合計と金額の合計を算出しようとしていますが、 思うようにできません。どなたか教えてください。 クエリのフィールドを左から・・・ (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)

  • Access クエリ 抽出・演算

    Access クエリについてご質問させていただきます。 テーブルのデータを特定の条件に一致するレコードだけ抽出し、演算を実施したいです。 (1):CSVデータをテーブルに取り込みます。 テーブルは左から『取引No』『部門コード』『部門名』『発注入力日』『担当者名』『発注日』『伝票No』『伝票行No』『商品コード』『商品名』『入数』『発注数(入力数)』『発注数量※1』『発注金額※2』『出荷日』『出荷数量※3』『出荷金額※4』となっております。 ※1:発注数量は入数×発注数が計算済みです。 ※2:発注金額は発注数量×単価で小数点以下切り捨てで計算済みです。 ※3:出荷数量は入数×出荷数が計算済みです。 ※4:出荷金額は出荷数量×単価で小数点以下切り捨てで計算済みです。 (2):クエリを使用して、商品名が『単3乾電池』の出荷数量を10で割り、10で割り切れるレコードを求めたいです。 (3):(2)の演算結果(10で割った後の整数)を合算して合計値をクエリの演算結果として表示したいです。 ※(2)の抽出条件でのクエリをすでに作成済みで、合計したクエリを作成したいです。 どのようにすればよろしいでしょうか?

  • access 帳票形式での Sum関数について

    お世話になります、 access2003を使っています、 テーブル商品があり、以下3つの列があります 商品名 単価 数量 フォーム集計をテーブル商品を元に帳票形式で作りました 帳票の1行にテキストボックス”金額”を追加してそのコントロールソースの値を [単価]*[数量]にしました。 帳票の1行づつは 商品名 、単価、 数量、金額([単価]*[数量]) の4つの列が並びます。 上記までは一行づつ計算して金額の値は正確に表示されます。 このフォームのフッターに帳票の各業の金額の合計を求めるため テキストボックス”合計金額”をつくり コントロールソースを =Sum([金額]) にしたのですが、明らかに合計金額が違った数値が出てきます。 出てきた金額が何をどう計算して出てきたのか見当が付きません どのようにしたら正確な合計金額が得られるのでしょうか? 何方かお教えいただけますようお願い致します、

  • 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  上記クエリを元にフォームを作成(帳票形式)して、 テキストボックスで課税対象計(作業代計)と、非課税対象計(交通費計) のボックスをもちたいのですが可能でしょうか? 最終的には、売上伝票フォームに売上明細フォームをサブフォームで 取り込み、売上伝票上で合計金額を表示させたいと思っています。 よろしくお願いします。

  • 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に格納されている発送個数の合計値を集計するための方法 以上、識者の方のアドバイスをお願い致します。

専門家に質問してみよう