2017-03-19 8 views
2

tblcommssionテーブルから手数料を得るためのクエリを作成していますが、これはテキストボックスに入力された量によって異なります。アクセスとVB6数値の範囲に基づいて値を取得するクエリ

例:

| min_tier | max_tier | commission | 
|----------| ---------| ---------- | 
| 500 | 2500  | 100  | 
| 2501 | 5000  | 125  | 
| 5001 | 15000 | 450  | 

私は手数料が125であることを期待して、私のクエリは

Select commission 
from tblAgentCommission 
where min_tier <= '" & Format(txtWithAmount.Text, "##0")"' and 
     max_tier >= '" & Format(txtWithAmount.Text, "##0") & "' 

である。しかし、それは委員会、すなわち私は4200を入力したときに行などで対応していないものを間違ってフェッチ4200は2501と5000の間にあるからです。

どこが間違っていましたか?

答えて

3

文字列と数字を比較しています。値はの文字列と比較されるため、これは危険です。値の前後に引用符を削除することで起動します。

Select commission 
from tblAgentCommission 
where min_tier <= " & Format(txtWithAmount.Text, "##0")" and 
     max_tier >= " & Format(txtWithAmount.Text, "##0"); 

これはmin_tiermax_tierが数字であることを前提としています。それらが文字列の場合は、その型をテーブルに修正する必要もあります。

+0

ありがとうございましたGordon Linoff。それはうまくいった –

関連する問題