= - 範囲は、BGR値の別々の色要素のそれぞれに当てはまるはずです。この場合、あなたはこのように、これらの要素を抽出する必要があります:私はあなたがGETR、GetBのような別の関数にこれらを入れてお勧めします
SELECT colour
,Fix([Colour]/(256*256)) as B
,Fix(([Colour]-Fix([Colour]/(256*256))*256*256)/256) as G
,[Colour]-Fix([Colour]/(256*256))*256*256-Fix(([Colour]-Fix([Colour]/(256*256))*256*256)/256)*256 as R
FROM MyColours
、GetGを
あなたも、計算フィールドを作成し、それらを適用することができます表:
![Colours Table with computed fields](https://i.stack.imgur.com/Dljqo.png)
今、あなたのテーブルをルックアップするためにあなたが同様にBGR要素で選択した色を分割する必要があります。
Dim selectedColour as Integer
Dim rr as Integer
Dim gg as Integer
Dim bb as Integer
selectedColour = 11124168 ' A9BDC8 - selected from the colour picker
rr = getR(selectedColour)
gg = getG(selectedColour)
bb = getB(selectedColour)
あなたがテーブル内の計算フィールドを持っている場合、クエリは次のようになります。
SELECT colour
FROM MyColours
WHERE B BETWEEN bb-4 AND bb+4
AND G BETWEEN gg-4 AND gg+4
AND R BETWEEN rr-4 AND rr+4
あなたは、計算フィールドがVBA関数を使用したくない場合は、次の
SELECT colour
FROM MyColours
WHERE getB(colour) BETWEEN bb-4 AND bb+4
AND getG(Colour) BETWEEN gg-4 AND gg+4
AND getR(Colour) BETWEEN rr-4 AND rr+4
出典
2016-03-22 01:45:17
cha
似て定義してください。.. – Susilo