プロが教える店舗&オフィスのセキュリティ対策術

今、貸アパートの水道料金請求のデータベースをACCESSで作っていますが、クエリで水道使用量:[先月検針]ー[今月検針]で当月の使用量まで出しました。使用料金:IIF(水道使用量]<100,とIIF関数を使おうと思ったんですが、これでは条件は1個しか指定出来ないですよね。使用料金は例えば、100未満が300円、100以上200までが400円と20個くらいに使用量によって、金額を変えて表示したいのです。IIF関数では、条件が1個しか指定できないのでしょうか?EXCELではAND関数とかを組み込むとたくさんの条件を指定できますが、ACCESSではどうすればいいのでしょうか?LOOKUP関数みたいなのがあるのでしょうか?教えて下さい。

A 回答 (5件)

再登場


 遅くなりました。なんせ月曜日まで出張なもので・・・
 気になっていたものでインターネットカフェから書いております(笑)

 先の回答は、前月量と当月量を入力して請求書などを印刷する時の方法です。
  だって入力データと料金データを入力してはいけませんよね?
>それをクエリで、伝票NO,日付、入居者ID、氏名、家賃、共益費、当月量、先月量、使用量、水道代という、請求書入力フォームを作ろうとしました。
 お待ちどうさま DLOOKUP関数の説明です(笑)
 使用量:当月量-先月量
 水道代: DLookUp("水道料金","水道料金TBL","水道量 = " & Int(([当月量]-[先月量]+9)/10)*10)

 で入力出来るクエリーになります。
 したがって計算クエリ2は不要になります(汗)

忠告)
>たくさんの本をはしごしながら・・・
 1.初心者にありがちなのは95%位出来ると5%を作ろうとする
   だめでも作ろうとする、作った95%を壊せない、
   どうしても駄目なら最初からということが出来ない
 2.システムを先に考えるとにっちもさっちもいかなくなる
対策
 どの本でも回答1の参考URLでもどこでもいいから
 書いてある通りに作って見る
 するとこういう使いかたをするのだとかが分かる

参考になれば幸いです
何か有れば補足して下さい。
但し再回答が送れることをご了承下さい。
がんばって下さい。
    • good
    • 0
この回答へのお礼

本当にありがとうございました。バッチリです。本当に助かりました。両親に作ってあげるって言ったものの、1週間悩んでました。ちゃんと設計していないまま、考えながら、質問しながら作っていたので、質問が的を得ず、ころころ変わって迷惑をおかけしましたが、快く教えて下さったことに本当に感謝します。今はとてもHAPPYな気持ちでいっぱいです。ありがとうございました。

お礼日時:2002/04/13 11:23

再登場


 はい深呼吸
すべて書きますので現在のアクセスをコピーしてください

テーブル
 水道量TBL
  名前  テキスト型
  当月量 数値型 長整数型 
  先月量 数値型 長整数型
   Aさん 100 85
   Bさん 200 155
   Cさん 100 75
 水道料金TBL
  水道料 数値型 長整数型 値要求=はい インデックス=はい重複なし
   10 1100
   20 2200
   30 3300
   40 4400
   50 5500
クエリ
 計算クエリ1
  フィールド
   名前
   当月量
   先月量
   使用量:当月量-先月量
   金額使用量:INT((当月量-先月量)+9)/10)*10 注)ここが重要
 計算クエリ2
  テーブル
   計算クエリ1
   水道料金TBL
    計算クエリ1の金額使用量をドラッグして
    水道料金TBLの水道量に持っていく(線が結ばれる、結合)
  フィールド
   名前
   当月量   計算クエリ1
   先月量   計算クエリ1
   使用量   計算クエリ1
   金額使用量 計算クエリ1
   金額    水道料金TBL

ほら出来た。パチパチパチ
参考になれば幸いです
 

この回答への補足

本当にありがとうございます。おかげでバッチリ出来ました。すごくうれしかったです。
それでまた、次のステップでまたつまずきました。

入居者テーブルにID,氏名、家賃、共益費、当月量、先月量というフィールドがあり、請求テーブルに伝票NO,日付、入居者IDがあります。
それをクエリで、伝票NO,日付、入居者ID、氏名、家賃、共益費、当月量、先月量、使用量、水道代という、請求書入力フォームを作ろうとしました。
伝票NO,日付、入居者ID,氏名、家賃、共益費、当月量、先月量、使用量まではクエリで作成し、水道代計算クエリ2の水道代を追加すると、新しいデータを入力出来なくなるんです。請求テーブルに入力されたデータしか表示されないのはなぜでしょう?

希望としては請求書フォームで顧客IDだけ入力すれば、家賃などは表示されますが、水道当月量だけを入力して、先月量は入居者テーブルから自動表示させ、使用量、水道代を計算させたいんです。水道代の表示でどうしてもひっかかります。クエりでは計算できてるのに。。。

たくさんの本をはしごしながら、やってみましたが、独学なので、基本的なことがわかってない気がします。すみません。
何度も本当にすみませんが、よろしくお願いいたします。

補足日時:2002/04/11 16:01
    • good
    • 0

再登場


>条件は範囲ではなくて、=で出せるみたいなんですけど・・
 だとするとテーブルの結合で十分です。

以上???
>テーブルの結合方法ですが
 複数の条件にあてはまるものを複数のフィールドに。
 http://oshiete1.goo.ne.jp/kotaeru.php3?q=245652
を参考にして下さい。
頑張って下さい。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=245652

この回答への補足

度々すみません。水道代検針は12ヶ月保存し、更新クエリで月次更新する仕組みにしました。フォームで当月だけを入力して、クエリーで使用量:[当月]ー[先月]を出しました。その使用量はクエリで演算したので、その結果を何かの方法で、テーブルに保存して、料金テーブルと結合するってことでしょうか?そうであったならば、クエリの演算結果を新しいテーブルもしくは既存のテーブルに保存する方法を教えて下さい。
半日ああでもないこうでもないとやっているうちに、頭がパニックになってきました。いまいちわかりにくい説明ですみません。

補足日時:2002/04/10 17:20
    • good
    • 0

再登場(遅くなりました。

昼人間なもので・・・)
>DLOOKUP関数というのが使えそうでは、と思いました。
 結論
  使えません
 理由
  キー(今回は水道量)が範囲の為

対策案
 1.水道量テーブルを作成(既存)
 2.水道量クエリ1を作成(<100の金額設定)
  クエリ内容
   水道量  金額:IIF(水道量<100,300円,0円)
 3.水道量クエリ2を作成(<200の金額設定)
  クエリ内容
   水道量  金額1:IIF(水道量>=100 AND 水道量<200,400円,金額) 
 4.水道量クエリ3を作成(<300の金額設定)
  クエリ内容
   水道量  金額2:IIF(水道量>=200 AND 水道量<300,500円,金額1)
 
のようにクエリーの入れ子にして違ったら前の金額を流用する
という案はいかがでしょうか
 参考になれば幸いです
 頑張って下さい

この回答への補足

早速ありがとうございます。これは50個条件があればクエリを50個作らないといけないということですよね。
よくよく考えると条件は範囲ではなくて、=で出せるみたいなんですけど、それならDLOOKUP関数は使えるんですか?
最初からゆっくり頭を整理して、考えてから質問すればよかったのに、何度もややこしいことを聞いて、本当に本当に、ごめんなさい。教えて下さいませんでしょうか?。すみませんm(__)m

補足日時:2002/04/10 11:30
    • good
    • 0

>IIF関数では、条件が1個しか指定できないのでしょうか?


 IIF文の入れ子で対応します。
 A: IIf([項目]=210,1,IIf([項目]=220,2,3))
 項目が210なら1を設定
 項目が220なら2を設定
 項目がそのたなら3を設定
>LOOKUP関数みたいなのがあるのでしょうか?
 CHOOSE関数があります。
>ACCESSではどうすればいいのでしょうか?
 案)クエリーを料金別に作成して後でまとめる

御土産
http://www.accessclub.jp/
http://ws.31rsm.ne.jp/~pension/access/ota2001/co …
http://www.mahoutsukaino.com/

参考になれば幸いです

この回答への補足

早速返事ありがとうございます。IIF関数で一度やってみましたが、条件が10件以上になると、条件が複雑すぎますというエラーが出てしまい、ダメでした。(結局条件は50件ありました。)CHOOSE関数はヘルプを見たんですが、よくわからず、参考URLでいろいろ調べたところ、DLOOKUP関数というのが使えそうでは、と思いました。別に料金のテーブルを作って、参照させるってことだと思いますが、クエリに条件を入れれるのでしょうか?出来るとした、どういう風な式を作ればいいんでしょうか?あまりよくわかってなくて、変な質問で本当にすみません。よろしくお願い致します。

補足日時:2002/04/09 23:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す