Ich denke, der = - Bereich sollte für jedes der einzelnen Farbelemente im BGR-Wert gelten. In diesem Fall müssen Sie diese Elemente extrahieren, wie folgt aus:
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
Ich empfehle Ihnen, diese setzen in separate Funktionen wie getr, GetB, GetG
Sie können sogar die berechneten Felder machen und sie auf Ihre Tabelle:
nun Ihre Tabelle nachschlagen müssen Sie die ausgewählte Farbe in BGR Elemente aufteilen und:
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)
Wenn Sie die berechneten Felder in der Tabelle haben, dann wird die Abfrage sein:
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
Wenn Sie die berechneten Felder, die die VBA-Funktionen nicht verwenden wollen:
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
bitte gleich definieren .. – Susilo