- ベストアンサー
ACCESSのクエリ作成方法とは?
- ACCESSのクエリ作成方法について解説します。デザインビューを使用してクエリを作成すると、固定された条件になってしまう場合がありますが、ユーザーに求めることは可能です。
- 在庫管理のために、ACCESSでテーブルを作成し、商品コードや在庫量などの情報を管理しています。ユーザーに商品コードを入力させ、その商品の在庫量を表示させるにはどうすれば良いかについて説明します。
- ACCESSのクエリを使ってユーザーが入力した商品コードを条件として、該当する商品の在庫量を取得する方法について説明します。デザインビューを使うと条件が固定される場合があるため、注意が必要です。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>これを元にフォームを作る方法がわかりません フォームの新規作成でウィザードを開きフォームウィザードで入力された商品コード1レコードのみ表示するなら単票形式でも表形式でもかまいません。お好きな方を選択して作ってください。 >[Forms]![在庫抽出]![SN_CODE1]にしてみました。 >enter時にこのクエリを実行して表示させればいいんですよね?・・よくやり方がわかりません。 作ったフォームをデザインビューで開きフォームヘッダにSN_CODE1というテキストボックスを作ります。 SN_CODE1のプロパティを開きイベントの更新後処理欄の右の...をクリックするとビルダの選択が表示されますのでコードビルダを選択します。 開いたVBに DoCmd.Requery と記述もしくはコピーして貼り付けでもかまいません。 Private Sub SN_CODE1_AfterUpdate() DoCmd.Requery '←ここに記述するかコピーします End Sub VBを閉じフォームを保存すれば出来上がりです。 フォームを開きSN_CODE1に商品コードを入力しEnterキーを押すとフォーム詳細に表示されます。
その他の回答 (5)
NO4です。 NO3の方とかぶってしまいました。 NO3の方がしっかり説明しておられますので、無視してくださって結構です。
フォームをつくり、リストボックスなりコンボボックスなりを貼り付けて、そこで商品コードを選択させます。 あとはNO2の方がおっしゃっているようなクエリを作り、そのクエリの商品コードの抽出条件に Forms![フォーム名]![リストボックス名] と書いておけば、フォームを開いている間にクエリを実行させれば、良いと思います。 もしくは、クエリの抽出条件に [商品コードを入力してください。] みたいな事を入力して置けば、クエリを開く際にパラメーターの設定を行うことができます。 この際はユーザーが間違えて実際にありえない商品コードを入れる可能性があることを考慮しておかなければなりません。 (何も抽出されません)
- O_cyan
- ベストアンサー率59% (745/1260)
在庫テーブルのクエリを新規クエリの作成でウィザードを使って商品コード・品名・在庫量のフィールドをもつ選択クエリを作り保存します。 そのクエリをデザインビューで開きマウスポインタをフィールド上の位置で右クリックしメニューの集計を選択します。 商品コード・品名の集計の欄をグループ化にして在庫量を合計に設定します。 商品コードの抽出条件に [商品コードを入力してください] と上記をコピーし保存します。 このクエリを開こうとすると[商品コードを入力してください]というダイアログが開きますのでそこに商品コードを入力すると入力された商品コードのみ表示され在庫量の合計を表示します。 試しに作ってみてください。 SQLで書くとこんな感じです。 SELECT 在庫テーブル.商品コード, Sum(在庫テーブル.在庫量) AS 在庫量の合計 FROM 在庫テーブル GROUP BY 在庫テーブル.商品コード HAVING (((在庫テーブル.商品コード)=[商品コードを入力してください])); このクエリを利用します。 >フォームを作って商品コードをユーザーに入力させ・・ クエリの抽出条件に入れた[商品コード入力してください]の代わりにフォーム上にテキストボックスを作りそこに入力された商品コードを抽出条件に代入させれば出来ます。 フォーム1にあるText1というテキストボックスの値(入力された商品コード)を代入する場合。 クエリの抽出条件に [Forms]![フォーム1]![Text1] とすればText1に入力された商品コードのみ抽出して在庫量を合計することが出来ます。 このクエリを元にフォームを作り表示するようにすれば良いのではないでしょうか。
お礼
ありがとうございます。 クエリ作成まではできました。 商品コード入力ダイアログを出して抽出できました。 これを元にフォームを作る方法がわかりません。 イメージとしてはフォームのヘッダ部分に商品コードを入れてEnter押すと クエリを実行し、指定された商品コードのデータがでることをイメージしています。 クエリの方は [Forms]![在庫抽出]![SN_CODE1] にしてみました。 enter時(なにかボタンを作ってもかまいませんが)にこのクエリを実行 して表示させればいいんですよね??? よくやり方がわかりません。
- gura_
- ベストアンサー率44% (749/1683)
1 「クエリの新規作成」で「デザインビュー」を開き、対象の「テーブル」を追加して、「選択クエリ」の作成画面に入ります。 2 「商品コード」と「在庫量」のフィールドを追加し、「Σ」のボタンを押すと、「集計」の行が追加されますから、「在庫量」の下の「グループ化」を「合計」に変えます。 3 ここで、ツールバーの左端のボタンで「データシートビュー」を選択すると、その「合計」が表示されます。 4 このウインドの右上の「X」マークで閉じようとすると、クエリの名前の変更保存を聞いてくるので、「はい」を押し「クエリ名」を付けて「OK」で、目的のクエリが保存されます。↓ http://www.mahoutsukaino.com/ac/ac2000/ac2000/qry0/13.htm
- Dxak
- ベストアンサー率34% (510/1465)
すみません。質問している事が、よく判ってませんが・・・。 > ユーザーに求めることは出来るのでしょうか? なら、変数を設定すれば可能ですし、Forms![コントロール名]で、クエリからフォームの値も参照可能ですが・・・、こういう話ではなくて???
お礼
ありがとうございました。