I'm trying to understand how the bitwise AND can be used. I've read
about what it does but am having trouble applying it practically. I'm
working on a system that somebody else wrote and they make use of a
MODE flag that gets passed in. They then compare the mode flag against
a hard coded value using bitwise AND, and then show or don't show
certain features based on the mode. Example pseudocode:
if (mode & 1) do something
if (mode & 4) show this control
if (mode & 10) show this label
The values that mode is compared to include: 4, 8, 9, 10, 12, 14
I've been doing some testing and writing out the result of the bitwise
ANDs, and I'm not seeing a useful pattern. Sometimes it returns true
and sometimes false, I can't see how this is really being used.
Any tips appricated. 17 2311 zi*****@gmail.com wrote:
I'm trying to understand how the bitwise AND can be used. I've read
about what it does but am having trouble applying it practically. I'm
working on a system that somebody else wrote and they make use of a
MODE flag that gets passed in. They then compare the mode flag against
a hard coded value using bitwise AND, and then show or don't show
certain features based on the mode. Example pseudocode:
if (mode & 1) do something
if (mode & 4) show this control
if (mode & 10) show this label
The values that mode is compared to include: 4, 8, 9, 10, 12, 14
I've been doing some testing and writing out the result of the bitwise
ANDs, and I'm not seeing a useful pattern. Sometimes it returns true
and sometimes false, I can't see how this is really being used.
Any tips appricated.
I take it you have stuff like:
const unsigned long can_read=1;
const unsigned long can_write=2;
const unsigned long can_delete=4;
(or perhaps even #define's to that effect - yuck)...
Jon..
In article <11*********************@i3g2000cwc.googlegroups.c om>, zi*****@gmail.com wrote:
I'm trying to understand how the bitwise AND can be used. I've read
about what it does but am having trouble applying it practically. I'm
working on a system that somebody else wrote and they make use of a
MODE flag that gets passed in. They then compare the mode flag against
a hard coded value using bitwise AND, and then show or don't show
certain features based on the mode. Example pseudocode:
if (mode & 1) do something
if (mode & 4) show this control
if (mode & 10) show this label
The values that mode is compared to include: 4, 8, 9, 10, 12, 14
I've been doing some testing and writing out the result of the bitwise
ANDs, and I'm not seeing a useful pattern. Sometimes it returns true
and sometimes false, I can't see how this is really being used.
Any tips appricated.
0x0001 == 1
0x0100 == 4
0x1000 == 8
0x1001 == 9
0x1010 == 10
0x1100 == 12
0x1110 == 14
So you have 4 flags in the mode variable. "mode & 1 == true" means the
right most flag is set. "mode & 4 == true" means the second from the
leftmost flag is set. "mode & 10 == true" means the leftmost flag and
the second from the rightmost flag is set.
Well designed code that uses this idiom has some sort of define or
consts that give a name to each flag. For example:
enum { fail_bit = 1, eof_bit = 2, bad_bit = 4, good_bit = 8 };
if ( mode & fail_bit ) // you know the fail_bit was set
{ }
if ( mode & bad_bit ) // you know the bad_bit was set
{ }
if ( mode & ( good_bit | eof_bit ) ) // both the good_bit and eof_bit
{ } // were set, note the extra parens
The three ifs above match the three you posted.
Here is a nice web-site that explains the idiom:
<http://home.earthlink.net/~craie/122/notes/bit.flags.html> zi*****@gmail.com wrote:
I'm trying to understand how the bitwise AND can be used. I've read
about what it does but am having trouble applying it practically. I'm
working on a system that somebody else wrote and they make use of a
MODE flag that gets passed in. They then compare the mode flag against
a hard coded value using bitwise AND, and then show or don't show
certain features based on the mode. Example pseudocode:
if (mode & 1) do something
if (mode & 4) show this control
if (mode & 10) show this label
The values that mode is compared to include: 4, 8, 9, 10, 12, 14
I've been doing some testing and writing out the result of the bitwise
ANDs, and I'm not seeing a useful pattern. Sometimes it returns true
and sometimes false, I can't see how this is really being used.
Any tips appricated.
It's just a way to make a bitset out of an integer. You have a bunch of
binary values which you pack together to form a single number and the
boolean ops let you read (and also write) those values. For example,
instead of:
bool flag1;
bool flag2;
bool flag3;
bool flag4;
I could have:
int flags;
And when before I would say:
if (flag3)...
now I say:
if (flags & 4) ...
because 4 = ...000100 in binary. Notably, the 1 is in the third
position (from the right) so it picks out flag3. To get flag4 I would
use 8 = ...0001000.
You can do "fancier" things too; for example, instead of:
if (flag1 && flag3 && flag4)
we can have:
if (flags & 13)
since 13 = ...0001101 with a '1' in positions 1, 3, and 4.
I think modern style would tend to prefer a more specialized container
for this purpose (perhaps a std::bitset) but this offers a fairly memory
efficient approach which may matter.
Daniel T. schrieb:
In article <11*********************@i3g2000cwc.googlegroups.c om>, zi*****@gmail.com wrote:
>I'm trying to understand how the bitwise AND can be used. I've read about what it does but am having trouble applying it practically. I'm working on a system that somebody else wrote and they make use of a MODE flag that gets passed in. They then compare the mode flag against a hard coded value using bitwise AND, and then show or don't show certain features based on the mode. Example pseudocode:
if (mode & 1) do something
if (mode & 4) show this control
if (mode & 10) show this label
The values that mode is compared to include: 4, 8, 9, 10, 12, 14
I've been doing some testing and writing out the result of the bitwise ANDs, and I'm not seeing a useful pattern. Sometimes it returns true and sometimes false, I can't see how this is really being used.
Any tips appricated.
0x0001 == 1
0x0100 == 4
0x1000 == 8
0x1001 == 9
0x1010 == 10
0x1100 == 12
0x1110 == 14
So you have 4 flags in the mode variable. "mode & 1 == true" means the
right most flag is set. "mode & 4 == true" means the second from the
leftmost flag is set. "mode & 10 == true" means the leftmost flag and
the second from the rightmost flag is set.
no, mode & 10 is true when one of the bits (or both) are set.
--
Thomas zi*****@gmail.com wrote:
I'm trying to understand how the bitwise AND can be used. I've read
about what it does but am having trouble applying it practically. I'm
working on a system that somebody else wrote and they make use of a
MODE flag that gets passed in. They then compare the mode flag against
a hard coded value using bitwise AND, and then show or don't show
certain features based on the mode. Example pseudocode:
if (mode & 1) do something
if (mode & 4) show this control
if (mode & 10) show this label
The values that mode is compared to include: 4, 8, 9, 10, 12, 14
I've been doing some testing and writing out the result of the bitwise
ANDs, and I'm not seeing a useful pattern. Sometimes it returns true
and sometimes false, I can't see how this is really being used.
Any tips appricated.
Note: The following only applies for non-negative integers. When doing
bitwise operations you would be wise to restrict them to unsigned
integral types.
First, forget about thinking in decimal, it's much easier if you work in
binary (any decent desktop calculator will be able to do the conversion
- though it would be a considerable benefit for this kind of thing if
the language supported binary numbers directly).
Second, there is a simple way of writing out any integer in any valid
integer base using summation. For any n-digit binary number, N say, it's
decimal value can be computed as follows:
N = d(n-1) x 2^(n-1) + d(n-2) x 2^(n-2) + ..+ d(1) x 2^1 + d(0) x 2^0
(Damn plain text where you can't write subscripts properly). The
notation d(n - 1) is the digit (either 1 or 0 for the base 2) in bit
position n - 1. Counting from 0 (the least-significant bit position on
the right) this gives a total of n bits in the representation. E.g., 10
in decimal can be written as:
10 (decimal) = 1 x 2^3 + 0 x 2^2 + 1 x 2^1 + 0 x 2^0 = 1010 (base 2).
Now we can see what a bitwise and with the decimal value 10 will do
assuming we have, for simplicity, a total of 8 bits in the
representation this gives a binary value of 00001010. Applying the truth
table for the and operation, which looks like:
| 0 1
------------------
1 | 0 1
0 | 0 0
we can see that every 0 bit will reset the corresponding bit in the
argument to 0.
Thus 'if (mode & 10)' will be true (evaluate to non-zero) for any value
where either bit 1 or bit 3 in mode (counting from the left starting at
0) are 1. Some examples:
00001011 & 10100011 & 10100101 &
00001010 00001010 00001010
-------- -------- --------
00001010 00000010 00000000
Similar results apply with the remaining bitwise operators. Simply
convert the number to binary and then apply the truth table for the
operator.
I'll leave you to work out the rest.
Cheers
Jim.
James Bannon wrote:
zi*****@gmail.com wrote:
>I'm trying to understand how the bitwise AND can be used. I've read about what it does but am having trouble applying it practically. I'm working on a system that somebody else wrote and they make use of a MODE flag that gets passed in. They then compare the mode flag against a hard coded value using bitwise AND, and then show or don't show certain features based on the mode. Example pseudocode:
if (mode & 1) do something
if (mode & 4) show this control
if (mode & 10) show this label
The values that mode is compared to include: 4, 8, 9, 10, 12, 14
I've been doing some testing and writing out the result of the bitwise ANDs, and I'm not seeing a useful pattern. Sometimes it returns true and sometimes false, I can't see how this is really being used.
Any tips appricated.
Note: The following only applies for non-negative integers. When doing
bitwise operations you would be wise to restrict them to unsigned
integral types.
First, forget about thinking in decimal, it's much easier if you work in
binary (any decent desktop calculator will be able to do the conversion
- though it would be a considerable benefit for this kind of thing if
the language supported binary numbers directly).
Second, there is a simple way of writing out any integer in any valid
integer base using summation. For any n-digit binary number, N say, it's
decimal value can be computed as follows:
N = d(n-1) x 2^(n-1) + d(n-2) x 2^(n-2) + ..+ d(1) x 2^1 + d(0) x 2^0
(Damn plain text where you can't write subscripts properly). The
notation d(n - 1) is the digit (either 1 or 0 for the base 2) in bit
position n - 1. Counting from 0 (the least-significant bit position on
the right) this gives a total of n bits in the representation. E.g., 10
in decimal can be written as:
10 (decimal) = 1 x 2^3 + 0 x 2^2 + 1 x 2^1 + 0 x 2^0 = 1010 (base 2).
Now we can see what a bitwise and with the decimal value 10 will do
assuming we have, for simplicity, a total of 8 bits in the
representation this gives a binary value of 00001010. Applying the truth
table for the and operation, which looks like:
| 0 1
------------------
1 | 0 1
0 | 0 0
we can see that every 0 bit will reset the corresponding bit in the
argument to 0.
Thus 'if (mode & 10)' will be true (evaluate to non-zero) for any value
where either bit 1 or bit 3 in mode (counting from the left starting at
0) are 1. Some examples:
Correction: This should be counting from the right starting at 0.
>
00001011 & 10100011 & 10100101 &
00001010 00001010 00001010
-------- -------- --------
00001010 00000010 00000000
Similar results apply with the remaining bitwise operators. Simply
convert the number to binary and then apply the truth table for the
operator.
I'll leave you to work out the rest.
Cheers
Jim.
I wrote:
>
You can do "fancier" things too; for example, instead of:
if (flag1 && flag3 && flag4)
we can have:
if (flags & 13)
since 13 = ...0001101 with a '1' in positions 1, 3, and 4.
Noticing Thomas Gritzan's comment to Daniel T., I see I've made the same
mistake. The first conditional should be:
if (flag1 || flag3 || flag4)
to be equivalent to:
if (flags && 13)
-Mark
Thomas J. Gritzan wrote:
>>So you have 4 flags in the mode variable. "mode & 1 == true" means the right most flag is set. "mode & 4 == true" means the second from the leftmost flag is set. "mode & 10 == true" means the leftmost flag and the second from the rightmost flag is set.
no, mode & 10 is true when one of the bits (or both) are set.
No, worse. mode & 10 will never equal true. The value true promotes to
the integer value 1. mode & 10 will be 2, 8, or 10. if(mode & 10) is not
the same as if((mode & 10) == true). mode & 10 is non-zero when either
of the bits is set.
In article <bG********************@newssvr21.news.prodigy.com >,
Mark P <us****@fall2005REMOVE.fastmailCAPS.fmwrote:
I wrote:
You can do "fancier" things too; for example, instead of:
if (flag1 && flag3 && flag4)
we can have:
if (flags & 13)
since 13 = ...0001101 with a '1' in positions 1, 3, and 4.
Noticing Thomas Gritzan's comment to Daniel T., I see I've made the same
mistake. The first conditional should be:
if (flag1 || flag3 || flag4)
to be equivalent to:
if (flags && 13)
I guess it's pretty obvious that we don't use those kinds of constructs
very much. :-)
Pete Becker wrote:
Thomas J. Gritzan wrote:
>>So you have 4 flags in the mode variable. "mode & 1 == true" means the right most flag is set. "mode & 4 == true" means the second from the leftmost flag is set. "mode & 10 == true" means the leftmost flag and the second from the rightmost flag is set.
no, mode & 10 is true when one of the bits (or both) are set.
No, worse. mode & 10 will never equal true. The value true promotes to
the integer value 1. mode & 10 will be 2, 8, or 10. if(mode & 10) is not
the same as if((mode & 10) == true). mode & 10 is non-zero when either
of the bits is set.
In Clause 4.12 paragraph 1 of the C++ standard we find:
"An rvalue of arithmetic, enumeration, pointer or pointer to member type
can be converted to an rvalue of type bool. A zero value, null pointer
or null member pointer value is converted to false: any other value is
converted to true."
and in Clause 6.3.1.2 paragraph 1 of the C Standard we find:
"When any scalar value is converted to _Bool, the result is 0 if the
value compares equal to 0; otherwise the result is 1."
mode & 10 is an integral rvalue and will be non-zero whenever either bit
1 or bit 3 (or both) in mode are 1. According to the both standards, as
I read them, ' if (mode & 10)' will evaluate to true (or 1) so long as
mode & 10 is non-zero or am I misreading them? If I am, how then do we
account for if (n) being true when n is non-zero (or non-null if a
pointer or pointer to member)?
Cheers
Jim.
James Bannon wrote:
Pete Becker wrote:
Thomas J. Gritzan wrote:
>So you have 4 flags in the mode variable. "mode & 1 == true" means the right most flag is set. "mode & 4 == true" means the second from the leftmost flag is set. "mode & 10 == true" means the leftmost flag and the second from the rightmost flag is set.
no, mode & 10 is true when one of the bits (or both) are set.
No, worse. mode & 10 will never equal true. The value true promotes to
the integer value 1. mode & 10 will be 2, 8, or 10. if(mode & 10) is not
the same as if((mode & 10) == true). mode & 10 is non-zero when either
of the bits is set.
In Clause 4.12 paragraph 1 of the C++ standard we find:
"An rvalue of arithmetic, enumeration, pointer or pointer to member type
can be converted to an rvalue of type bool. A zero value, null pointer
or null member pointer value is converted to false: any other value is
converted to true."
and in Clause 6.3.1.2 paragraph 1 of the C Standard we find:
"When any scalar value is converted to _Bool, the result is 0 if the
value compares equal to 0; otherwise the result is 1."
mode & 10 is an integral rvalue and will be non-zero whenever either bit
1 or bit 3 (or both) in mode are 1. According to the both standards, as
I read them, ' if (mode & 10)' will evaluate to true (or 1) so long as
mode & 10 is non-zero or am I misreading them? If I am, how then do we
account for if (n) being true when n is non-zero (or non-null if a
pointer or pointer to member)?
You're ignoring what Pete Becker actually said. He said: "if(mode &
10) is not the same as if((mode & 10) == true)." That is a true
statement, and in no way inconsistent with the clauses from the
standard that you quote. If you don't believe me (and I suspect you do
believe me, but simply didn't read Pete Becker's post carefully), then
consider the following program:
#include <iostream>
int main()
{
using namespace std;
unsigned char mode = 10;
if (mode & 10) cout << "true "; else cout << "false ";
if ((mode & 10)==true) cout << "true "; else cout << "false ";
cout << endl;
}
What do you think is displayed on standard output when you execute the
program?
Best regards.
Tom
Daniel T. wrote:
>
0x0001 == 1
0x0100 == 4
0x1000 == 8
0x1001 == 9
0x1010 == 10
0x1100 == 12
0x1110 == 14
So you have 4 flags in the mode variable. "mode & 1 == true" means the
right most flag is set. "mode & 4 == true" means the second from the
leftmost flag is set. "mode & 10 == true" means the leftmost flag and
the second from the rightmost flag is set.
"mode & 4 == true" is not correct in C++, I think you mean to say
something like:
If (mode & 4) is nonzero the third from right flag is set.
In C++, == has higher precedence than &, so you end up with
mode & (4 == true), ie. mode & 0.
Further, even if you were to write:
(mode & 4) == true
it would fail: the bool is promoted to int, so it compares 4 == 1,
which is false.
Also you should talk about flags counting from the right; the OP
hasn't said how many bits are in 'mode' so we don't even know
where the left is!
James Bannon wrote:
>
mode & 10 is an integral rvalue and will be non-zero whenever either bit
1 or bit 3 (or both) in mode are 1.
That's right.
According to the both standards, as
I read them, ' if (mode & 10)' will evaluate to true (or 1) so long as
mode & 10 is non-zero or am I misreading them?
That's essentially correct, but it slurs some details. My point was
about the literal constant 'true' as well as the semantics of if
statements. An if statement does not have a value. It selects a
statement based on the value of the controlling expression. if(mode&10)
selects the following statement if the value of mode&10 is not zero. Not
zero is not the same as the literal value 'true'. mode&10 will never
have the value 1, because the 1-bit will always be 0.
Thomas Tutone wrote:
James Bannon wrote:
>Pete Becker wrote:
>>Thomas J. Gritzan wrote:
>>>>So you have 4 flags in the mode variable. "mode & 1 == true" means the right most flag is set. "mode & 4 == true" means the second from the leftmost flag is set. "mode & 10 == true" means the leftmost flag and the second from the rightmost flag is set.
no, mode & 10 is true when one of the bits (or both) are set.
No, worse. mode & 10 will never equal true. The value true promotes to the integer value 1. mode & 10 will be 2, 8, or 10. if(mode & 10) is not the same as if((mode & 10) == true). mode & 10 is non-zero when either of the bits is set.
In Clause 4.12 paragraph 1 of the C++ standard we find:
"An rvalue of arithmetic, enumeration, pointer or pointer to member type can be converted to an rvalue of type bool. A zero value, null pointer or null member pointer value is converted to false: any other value is converted to true."
and in Clause 6.3.1.2 paragraph 1 of the C Standard we find:
"When any scalar value is converted to _Bool, the result is 0 if the value compares equal to 0; otherwise the result is 1."
mode & 10 is an integral rvalue and will be non-zero whenever either bit 1 or bit 3 (or both) in mode are 1. According to the both standards, as I read them, ' if (mode & 10)' will evaluate to true (or 1) so long as mode & 10 is non-zero or am I misreading them? If I am, how then do we account for if (n) being true when n is non-zero (or non-null if a pointer or pointer to member)?
You're ignoring what Pete Becker actually said. He said: "if(mode &
10) is not the same as if((mode & 10) == true)." That is a true
statement, and in no way inconsistent with the clauses from the
standard that you quote. If you don't believe me (and I suspect you do
believe me, but simply didn't read Pete Becker's post carefully), then
consider the following program:
#include <iostream>
int main()
{
using namespace std;
unsigned char mode = 10;
if (mode & 10) cout << "true "; else cout << "false ";
if ((mode & 10)==true) cout << "true "; else cout << "false ";
cout << endl;
}
What do you think is displayed on standard output when you execute the
program?
Best regards.
Tom
The output will be "true" and "false" respectively since the literal
'true' has the value 1 when converted from type bool (and I didn't need
to test it). I suppose the only excuse I have for missing the second
part is that it was late at night when I wrote it and that the first
part of the statement took me by surprise. Still it is confusing since,
in the context of its use here, (mode & 10) is true when converted to
type bool as it would be for any context where a control expression of
type bool is required as long as we're just considering the truth-value
of (mode & 10) and not its comparison with the literal true.
Jim.
Thanks for the help, that definately clears it up. :-)
"Pete Becker" <pe********@acm.orgwrote in message
news:W_******************************@giganews.com ...
Thomas J. Gritzan wrote:
>>>So you have 4 flags in the mode variable. "mode & 1 == true" means the right most flag is set. "mode & 4 == true" means the second from the leftmost flag is set. "mode & 10 == true" means the leftmost flag and the second from the rightmost flag is set.
no, mode & 10 is true when one of the bits (or both) are set.
No, worse. mode & 10 will never equal true. The value true promotes to the
integer value 1. mode & 10 will be 2, 8, or 10. if(mode & 10) is not the
same as if((mode & 10) == true). mode & 10 is non-zero when either of the
bits is set.
I think he meant that (mode & 10) will evaluate as true in an if statement
when either bit is set, not that it would _equal_ true in a comparison. The
original snippets showed: "if (mode & 10) show this label", which will then
execute the "show this label" part whenever either of those bits is set.
-Howard
"Howard" <al*****@hotmail.comwrote in message
news:ou*********************@bgtnsc05-news.ops.worldnet.att.net...
>
"Pete Becker" <pe********@acm.orgwrote in message
news:W_******************************@giganews.com ...
>Thomas J. Gritzan wrote:
>>>>So you have 4 flags in the mode variable. "mode & 1 == true" means the right most flag is set. "mode & 4 == true" means the second from the leftmost flag is set. "mode & 10 == true" means the leftmost flag and the second from the rightmost flag is set.
no, mode & 10 is true when one of the bits (or both) are set. No, worse. mode & 10 will never equal true. The value true promotes to the integer value 1. mode & 10 will be 2, 8, or 10. if(mode & 10) is not the same as if((mode & 10) == true). mode & 10 is non-zero when either of the bits is set.
I think he meant that (mode & 10) will evaluate as true in an if statement
when either bit is set, not that it would _equal_ true in a comparison.
The original snippets showed: "if (mode & 10) show this label", which will
then execute the "show this label" part whenever either of those bits is
set.
D'oh! I didn't read far enough back, to see he was responding to someone who
_did_ use the == comparison with true. Never mind.
-Howard This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Steve Summit |
last post by:
-----BEGIN PGP SIGNED MESSAGE-----
It's often explained that the reason for some of the imprecision
in C's definition is so that C can be implemented on different
kinds of machines -- say, those...
|
by: Krumble Bunk |
last post by:
Hello!
First things first (but not necessarily in that order), this is a
really great group, and has helped me understand more and more C
everytime I read the postings, so thanks for a great...
|
by: Christopher Weaver |
last post by:
I know that the bitwise AND of 8 and 4 will return 0 or false and the
bitwise AND of 8 and 9 will return 1 or true but I don't know how to write
the synax for it in C#. I have a value that ranges...
|
by: Bill Dee |
last post by:
I need help converting a tiny piece of code which uses the bitwise
complement operator from C# to VB.NET.
In C# I currently have this:
long useThis = Myclass.ALLCONSTANTS;
long doNotUse =...
|
by: Emilio |
last post by:
Do I use 'or' for bitwise operations where in c# I use | ?
|
by: Marc |
last post by:
I'm trying to set the first three bits to zero on a byte. For some reason,
the compiler is casting the number peculiarly when I use the bitwise
complement operator.
Here's what I think should...
|
by: Junmin H. |
last post by:
Hello, all. I never use them when I am programming.
But i have been reading codes that using them.
When should I use them? Why not use char/short/int/long?
Is it very important to know them well?...
|
by: patrick |
last post by:
Hello.
I am not new to javascript but i saw a function or a part of code i am
not familiar with.
I am currently building a PHP wrapper to be able to encode fAES string
from php and decode them...
|
by: Daniel Smedegaard Buus |
last post by:
Hey all :)
I was wondering about the $error_types (I particularly notice the 's' suffix
when reading the manual) parameter for 'set_error_handler()':
Can be used to mask the triggering of the...
|
by: isladogs |
last post by:
The next Access Europe meeting will be on Wednesday 4 Oct 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM)
The start time is equivalent to 19:00 (7PM) in Central...
|
by: Aliciasmith |
last post by:
In an age dominated by smartphones, having a mobile app for your business is no longer an option; it's a necessity. Whether you're a startup or an established enterprise, finding the right mobile app...
|
by: giovanniandrean |
last post by:
The energy model is structured as follows and uses excel sheets to give input data:
1-Utility.py contains all the functions needed to calculate the variables and other minor things (mentions...
|
by: NeoPa |
last post by:
Hello everyone.
I find myself stuck trying to find the VBA way to get Access to create a PDF of the currently-selected (and open) object (Form or Report).
I know it can be done by selecting :...
|
by: NeoPa |
last post by:
Introduction
For this article I'll be using a very simple database which has Form (clsForm) & Report (clsReport) classes that simply handle making the calling Form invisible until the Form, or all...
|
by: Teri B |
last post by:
Hi, I have created a sub-form Roles. In my course form the user selects the roles assigned to the course.
0ne-to-many. One course many roles.
Then I created a report based on the Course form and...
|
by: nia12 |
last post by:
Hi there,
I am very new to Access so apologies if any of this is obvious/not clear.
I am creating a data collection tool for health care employees to complete. It consists of a number of...
|
by: NeoPa |
last post by:
Introduction
For this article I'll be focusing on the Report (clsReport) class. This simply handles making the calling Form invisible until all of the Reports opened by it have been closed, when it...
|
by: GKJR |
last post by:
Does anyone have a recommendation to build a standalone application to replace an Access database? I have my bookkeeping software I developed in Access that I would like to make available to other...
| |