Если вы можете выполнить запрос в ANSI-92 Query Mode (например, изменив режим запроса Access UI или подключившись к нему с помощью ADO classic или ADO.NET), используйте BAND
operator.
Следующий пример кода выводит это в окно Immediate:
8 AND 7: -1
8 BAND 7: 0
В первом случае (AND) оба числа рассматриваются как значения True, поэтому True AND True
дает -1 (True)).Я думаю, что подход BAND - это то, что вам нужно.
Public Sub BitwiseAndQuery()
'the db engine treats numbers as booleans with AND '
Debug.Print "8 AND 7: "; _
CurrentDb.OpenRecordset("SELECT 8 AND 7")(0)
'ADO includes BAND for bitwise AND '
Dim rs As Object
Set rs = CreateObject("ADODB.Recordset")
rs.Open "SELECT (8 BAND 7)", CurrentProject.Connection
Debug.Print "8 BAND 7:"; rs(0)
rs.Close
Set rs = Nothing
End Sub