<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 Access97データベース工作室>在庫のザの字はどう書くの〜♪
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20



で、クエリーの支度ができたら、後は仕上げです。
もう一度整頓しておきましょうか。


「全社」のオプションボタンがクリックされたらフレーム24がになるから、
 コンボボックスの値集合ソースは"社員マスター"(現状維持だけど、いちおうね)

「横浜」のオプションボタンがクリックされたらフレーム24がになるから、
 コンボボックスの値集合ソースは"Q_横浜"

「新宿」のオプションボタンがクリックされたらフレーム24がになるから、
 コンボボックスの値集合ソースは"Q_新宿"

「池袋」のオプションボタンがクリックされたらフレーム24がになるから、
 コンボボックスの値集合ソースは"Q_池袋"

「その他」のオプションボタンがクリックされたらフレーム24がになるから、
 コンボボックスの値集合ソースは"Q_その他"

気が狂いそうですけど、まあ、こんな感じです。こういうのは慣れですからね。
焦ってただ構文だけ覚えてしまわずに、こういうとこゆっくり見ておくと、多分あとあとすごくラクだと思いますよ。

コンボボックスの名前やクエリーの名前、もう一度確認しておいてくださいね。
で、これをマクロかプロシージャで記述するんですけど、こんな風に条件分岐する処理の場合は、多分プロシージャ作った方がらくだと思います。
マクロだとこりゃきっと、大変だ。

あとは、どのタイミングで判断させるか、いわゆるイベントの問題ですね。

これはフレーム24のイベントとして考えます。

あたりまえか。ここまで細かく整理しておいて、オプションボタンのクリック時のイベントなんかこしらえてもしょうがないですよね。

えー・・・そうですね。

フレーム24のクリック時か更新後処理か、どっちかがいいんじゃないかと思います。

多分、この場合どっちでも同じ結果が出ると思うんであまりこだわらなくてもよいと思うんですが・・・。
で、Select Case文という構文を使って処理を分岐させます。

Private Sub フレーム24_Click()

Select Case フレーム24

Case 1

Me![担当者].RowSource = "社員マスター"

Case 2

Me![担当者].RowSource ="Q_横浜"

Case 3

Me![担当者].RowSource = "Q_新宿"

Case 4

Me![担当者].RowSource = "Q_池袋"

Case 5

Me![担当者].RowSource ="Q_その他"

End Select
End Sub

と、こんな感じになります。
なんでクエリー名やテーブル名をダブルコーテーションでくくってるかとか、その辺はみなさんオッケーですよね。

クエリーそのものを入れ替えてますんで、再クエリーとかの心配は不要。
別のクエリーに入れ替わってるわけですから、まあ、ある意味これ自体再クエリーしてるみたいなもんですからね。
選択肢が3つとか4つとか、あんまり多くない場合なら、これもけっこう使える方法でしょ。活用してみてくださいね。



で、このフレーム24のデータプロパティの、「既定値」というのを1にしておくとよいのではないかなーと思います。

ここ何も設定しないと、通常、オプションボタン5個ともグレーの表示になります。
どれかクリックすればはっきりとシロクロ分かれますけどね。

まあ、気持ちの問題ですけど、コンボの中身は最初は「全社」分出ますんで、揃えといた方がいいのかなーとか思ったりして。

こう見えても結構気が利くでしょ。


できました?出ます?
ちょっと反応が悪いときもあるかもしれないですけど・・・。でも、なかなかいけてるんじゃないかと思います。

「顧客の数も多いから、同じようにしたい!」という方、ぜひ挑戦してみてください。
なんか分類されてないといけないですよね・・・。そうですねぇ。


とくに顧客を分類するようなフィールドがないなら、読みカナで検索しては・・・。
例えば、こんな感じのクエリーを作ります。

あたしは半角のカタカナで読みカナの入力をしてたんでそれを利用して・・・

ア*と入力すれば、自動的にLike "ア*"と書き換わります。

とにかく半角カタカナの後ろにアスタリスクをつけるような感じで入力してみてください。
これで、あ行の読みカナのついてる顧客を拾います。

このクエリーに例えばQ_あ行と名前をつけて保存したとします。
オブジェクトの名前に半角のカタカナを使うのはあまりいただけないので、全角のひらがなかカタカナにしましょう。


このクエリー、あとでもう一度デザインを開いてみると、カナの抽出条件が

Like "ア*" Or Like "イ*" Or Like "ウ*" Or Like "エ*" Or Like "オ*"

と、えらい騒ぎになってます。
ほんとはこうやって入力するんですけど、わかりにくいんで最初タテに並べたわけでして・・。

で、実行すると、こんな感じ。カナのところの頭1文字を見て、
半角のアイウエオどれかだったら拾ってくる・・という条件になります。

コンボボックスの中身は、左から[顧客コード][顧客名]の2列を取ってくるようになってましたよね。
これならこのまま使えそうです。

1個だけクエリー作って満足しちゃだめですよ。カ行、サ行・・・と、クエリー10個作らないと。
え??めんどくさい???そんなこといわないで。ないそでは振れません。ちゃんと全部作ります。

で、こんな感じに・・・。
クエリーの数が多くなるだけで、段取りや考え方は担当者の入力のときと同じです。

げ、担当者が担当社になってる。なおさねば・・・。

ここまでごちゃごちゃする必要ないぞ・・という感じもしますけども・・・でも、ぜひチャレンジしてみてください。


さあ、ここまできたら、いよいよ「商品」を選んで注文数を入力します。
で、この「注文数」をうまいこと在庫数に反映させるような仕組みを考えればいいわけですよね。

うーん、「商品」も結構種類があるんですよね・・・。

じゃ、分類とメーカーで絞り込めるようにしましょうか。

コンボボックス使う方法はもう、みなさんお手のものですよね。

まず、「商品」のテキストボックス、コンボにしましょうか。

こんな感じでふたつコンボボックスを作りましょう。どちらも非連結でOK。
それぞれ値集合ソースプロパティに「分類テーブル」「メーカーテーブル」をあてがって、列数と列幅
(列幅は0cm;2cmみたいな感じでオッケーだと思います)
を調節して、更新後処理として「商品」コンボボックスをリクエリーします。
各コンボボックスやラベルの位置は、適当に移動してください。わたしは四角で囲んでみました。
意味はないんですけど、なんとなく気分的に・・・。

まあ、一見ややこしそうですけど、いじるプロパティはだいたい決まってますからね。
で、前後しますが、商品のコンボボックスで使うクエリーを作ります。こんな感じ。

このforms!という抽出条件の書き方も、そろそろなれてこられたことじゃないかと思います。
これは、コンボボックスの名前、のことですよね。