With monday.comâ€™s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

Hi Folks,

does access have a bitwise AND operator?

eg:

1 AND 2 = 0 (001 AND 010 = 000)

1 AND 3 = 2 (001 AND 011 = 010)

7 AND 1 = 1 (111 AND 001 = 001)

5 AND 2 = 0 (101 AND 010 = 000)

4 AND 0 = 0 (100 AND 000 = 000)

etc.

on testing, access gives:

1 AND 2 = 1

1 AND 3 = 1

7 AND 1 = 1

5 AND 2 = 1

4 AND 0 = 0

which suggests that the arguments are treated as >0 = TRUE

cheers.

does access have a bitwise AND operator?

eg:

1 AND 2 = 0 (001 AND 010 = 000)

1 AND 3 = 2 (001 AND 011 = 010)

7 AND 1 = 1 (111 AND 001 = 001)

5 AND 2 = 0 (101 AND 010 = 000)

4 AND 0 = 0 (100 AND 000 = 000)

etc.

on testing, access gives:

1 AND 2 = 1

1 AND 3 = 1

7 AND 1 = 1

5 AND 2 = 1

4 AND 0 = 0

which suggests that the arguments are treated as >0 = TRUE

cheers.

Which version of Access are you using? In Access 97 and Access 2000, bitwise operations ARE supported. Perhaps also in previous versions, but I have not been able to test that.

Try this in the "debug" or "immediate" window:

Print 1 and 2

Print 1 and 3

Print 7 and 1

Print 5 and 2

Ture Magnusson

Karlstad, Sweden

does this make a difference? i am not familiar with vb macro/scripts.

cheers.

The And operator also performs a bitwise comparison of identically positioned bits in two numeric expressions and sets the corresponding bit in result

according to the following table:

If bit in expression1 is And bit in expression2 is The result is

0 0 0

0 1 0

1 0 0

1 1 1

all these points seem to suggest that access already does what i want, but for some unknown reason, many tests prove exactly the opposite.

take this test as an example:

i make a table 'data' that contains two columns 'a' and 'b', then i populate the table like this:

a b

1 2

2 2

3 2

4 2

5 2

6 2

7 2

8 2

and i create a new query:

select a from data where a AND b

i expect this output:

2, 3, 6, 7

but in fact i get:

1, 2, 3, 4, 5, 6, 7, 8

which suggests (as per previous comment) that access thinks that <= 0 is 'false' and that >= 1 is 'true'

regards.

the OR operator

to turn a bit off use AND NOT

example turn on the first bit use

me.Bitvalue=(me.bitvalue OR 2^0)

to turn it off use

me.Bitvalue=(me.bitvalue AND NOT 2^0)

to get the bit value you can use something like

me.chkbox=((Me.Bitvalue And 2^0) = 2^0)

but i do not understand how i apply this technique to an (access) sql query?

please see my previous comment defining what i am trying to do - this is what i need.

regards.

All Courses

From novice to tech pro — start learning today.

yo must create a new field in the query and use

test: (([a]\[b]) Mod 2) and for it's criteria use 1

the sql would be

SELECT a, (([a]\[b]) Mod 2) AS test

FROM data

WHERE ((((([a]\[b]) Mod 2))=1));