Microsoft Access 掲示板

個数に応じて単価を設定したい

4 コメント
views
4 フォロー

商品Aにおいて
個数が1~100までなら、1000円
個数が101~200までなら、800円
フォームには ID(主キー)商品 単価 個数 のフィールドがあり、参照していのは、MT_単価というテーブルです。

Private Sub コマンド24_Click()

Dim i As Long
i = Me.[個数]
Select Case i
Case i= 1 To 100
Me.単価 = DLookup("単価", "MT_単価", "i=" & Me.個数 & " AND 商品='" & Me.商品 & "'")
End Select
End Sub

クエリパラメータとして、指定した式でエラーが発生しましたとなります。

どの点を修正したらよいのか、お手数ですが、ご教示をお願いします。

naonao
作成: 2020/07/04 (土) 13:35:43
通報 ...
1
hiroton 2020/07/06 (月) 10:21:22 b100d@f966d

商品Aにおいて
個数が1~100までなら、1000円
個数が101~200までなら、800円

これはテーブルにデータ化されているモノですか?

2

提示のコードだと、構文エラーで実行すらできません。実際のコードを提示してください。

「MT_単価」テーブルのフィールド構成、主キー設定、データ例を提示してください。

3
naoki 2020/07/14 (火) 14:02:44 09c37@96514

hiroton様 hatena様

返信おくれました。

回答ありがとうございます。

現実的な方法ではないので、テーブルの設計を見直すことにしました。

回答をいただきありがとうございました。

4

せっかくなので一般的な方法を提示しておきましょう。
テーブル設計は下記のようにします。

M_商品
 商品ID 主キー
 商品名

MT_単価
 商品ID 複合主キー
 Max個数 複合主キー
 単価

M_商品のデータ例

商品ID商品名
1AAA
2BBB
3CCC

MT_単価のデータ例

商品IDMin個数単価
11¥1,000
1101¥800
1201¥700
1501¥600
21¥1,500
2251¥1,200

フォームのレコードソースのテーブルのフィールドは ID(主キー)、商品ID、単価、個数

個数の更新後処理に下記のコードを設定。

Private Sub 個数_AfterUpdate()
    Me.単価.Value = DMin("単価","MT_単価","商品ID=" & Me.商品ID & " AND Max個数 <= " & Me.個数)
End Sub

以上です。