• 締切済み

アクセス初心者です

納品書を元に仕入帳を作ってみたいと思うのですが テーブルとフォームは何となくわかったのですがクエリーでつまずいてしまいました 例 納品書 月日 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