<HOME  <お願い事項   <Access2002 TOP   <Access97 TOP   <サイト内検索
 MS-Access2000--VBAの小屋>ADOとはなんや
   1 2 3 4



ちょっと応用を・・・。

例えば、なんか、「郵便料金表」みたいなのがあったとしますよね。50gまでは130円で、100gまでは160円で・・・とか。
50gが130円、ってわけじゃないから、こういうのってなかなか利用が難しいんです。
(いちおう、下のテーブルはいんちき料金ですので・・・正しい料金は郵便局にお問い合わせください)

こんなふうにテーブルを作っておきます。両方とも数値型フィールドです。
んで・・・。

下のようなプロシージャを作ります。Functionプロシージャです。

で、コンパイルして、イミディエイトウィンドウでテストしてみます。
カッコの中に、実際に調べたい郵便物の重さを入力します。たとえば150gはいくらかかるのかな・・・。

ふむ。270円ね。

と、上のように、カッコの中に調べたい重さを入力することで、いつでも答えを得ることができます。
それ以外にも・・・例えば、下のようなテーブルがあったとします。

みんなが「送りたい、料金を調べたい」と思っている郵便物の重さを、テーブルにあらかじめ入力しておきます。

で、下のようなクエリを作ります。

ちょっとわかりにくいですけど・・・。
3番目のグリッドに、

N_ryokin(調べたい重さが入力されてるフィールド名)

って入力してやるんです。カギカッコで囲んでやるとなおグー。

答えがそれぞれ返ってくるんですけど・・・。なんか、文字扱い、なのかしら???

別にこれでもよいんですけど、なんか、文字扱いになっちゃうのがやだな・・とか、思う場合は・・・。
この辺が、「変数」ってものについてもっと知識をもたなきゃならないところにつながるんですけど・・・。

↑こんなふうにしてやります。どこが変わったか・・・わかります???
Variant → Long に変えたんです。一行目・・・。

と、さっきのクエリを再度開いてやると・・・
(そのままだとエラーになっちゃってると思うんで、一回閉じるなりデザインビューに戻るなりして、開きなおしてね)





さて、実際にテーブルを扱うプロシージャ、いかがでしょう。
まだ今回は、「読取専用」ということで、テーブルの中にデータを書き込んだり、って処理は考えてないですけど、いろいろ覚えなくちゃならないこととかあって、けっこう面倒くさそうですよね。少しずつ慣れていきましょう。

で・・・余談なんですが・・・。
Access97のときは、DAOというお品書きを見ながら、プロシージャは働いてました。
じゃ、DAOを意識して書かれたプロシージャは、もう使えないんでしょうか?????

使えるといえば使える、使えないといえば使えない・・・んですが・・・。
VisualBasicエディタのウィンドウの、ツール→参照設定 を見てみてください。

ADOって、多分3番目か4番目くらいにあると思うんですけど・・・あります?

この一覧が、みなさんのPCで扱うことのできるライブラリの一覧・・・つまり、他のデータベースとか、他のソフトウェアの機能とか、他のソフトウェアで使ってる関数とかをうまいこと使わせてもらえやしないか、という設定をするための画面なんです。機能そのものが使えるようになるわけじゃないんですよ。ただ単に、お品書きに追加する、っていうイメージです。

MicrosoftDAO3.6というのが、下のほうにあるはずです。
これを探して、左側にチェックをつけて、さらに、ADOより上に、優先順位を上げておけば、97で作成した、DAOを使ったプロシージャも動くようになりますよ。

あ、プライベートプロシージャとか、特にテーブルやクエリを扱わないプロシージャは、多分こういうのは関係ないでしょう。
この辺は、97で作ったデータベース内のプロシージャをひとつひとつ確認していかないと、この設定が必要なのかどうなのか、わからないです。



ふわー。なんか、いろいろめんどくさいですねぇ。
でも、少しでも雰囲気つかんでいただけたら、って思います。
がんばりましょう!