A97.
Situation: I have 3 tables with a text field in each and a date field
in the first 2 tables:
Table1 Text1, Date1
Table2 Text2, Date2
Table3 Text3 (no date field)
The following makes up a saved query called Query1
Select Text1 As TF, Date1 As DF From Table1
UNION ALL
Select Text2 As TF, Date2 As DF From Table2
UNION ALL
Select Text3 As TF, Null As DF From Table3
Now if I run a query selecting records from Query1
Select * From Query1 Where DF < Date()
or use Query1 as a recordset in a form with a similar filter, records
with dates greater than today are displayed. I have checked many times
that Access considers 4/2/2004 greater than 4/14/2004. Ex:
Expr1: DF < Date()
Criteria True
Sure enough. The record with 4/15/2004 shows up.
If I remove the line
Select Text3 As TF, Null As DF From Table3
then the query works as advertized. Creating a Null column is the culprit.
This problem is common enough in Google...lots of people recommend using
CDate which is useless. Formatting is worthless. And unless you
actually run a similar query to see the results, you wouldn't believe
Access would be this confused.
The only solution I have been able to come up with to resolve this
problem is to create a second query and use convoluted logic. I call
the query Query2.
Select TF, IIF(IsDate(DF), DateSerial(Year (DF), _
Month(DF), Day(DF)),Null)
IOW, you need to check that the date field is a date and then convert
the date into a date if it is a date.
If you have an explanation for Query1's results I'd appreciate it. I
suppose that the Dates are cast as Variants when it is run.
Is there another way to create a blank date (not in the table, but in
the query) to avoid this situation? I tried DateSerial(0,0, 0) but that
returned 11/30/1999. Go figure.
Nov 12 '05
14 1810
Salad wrote: David W. Fenton wrote:
I accidentally discovered the 2-argument for of IIf when I typed it accidentally and didn't get an error.
I've been using the 2-argument version for ages. Seriously. I never thought it was anything but a supported method. There are contexts where it's important to supply the second argument, but I forget what those are (in queries?). Perhaps I did this by analogy with spreadsheet IF() functions, where the second argument is optional. But I don't see that document in Excel's help, either, so maybe this goes all the way back to Lotus 123 days (which I haven't used since 1988). I never thought there was anything odd about it, and have used it quite frequently!
I think I need to hang out here more. Lot's of data to be gleaned from this group.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Another use of the IIf(<expression >,<true>) is in SQL aggregate
functions. E.g.: Count(<column>) will only count the non-NULL values;
therefore, you could use Count(IIF(<expr ession>,1) to count all the True
evaluations of the expression. False evaluations will return NULL,
which won't be counted by Count().
I saw this example on this ng (I believe).
- --
MGFoster:::mgf0 0 <at> earthlink <decimal-point> net
Oakland, CA (USA)
-----BEGIN PGP SIGNATURE-----
Version: PGP for Personal Privacy 5.0
Charset: noconv
iQA/AwUBQG9/uYechKqOuFEgEQK 8dgCfWL2LvU++qD S9JpbcJ9x556sue rsAnA58
1YfWg3Gzvd7IMol J00vRgELE
=guzi
-----END PGP SIGNATURE-----
On Sat, 03 Apr 2004 21:57:13 GMT, "David W. Fenton"
<dX********@bwa y.net.invalid> wrote: Steve Jorgensen <no****@nospam. nospam> wrote in news:9g******* *************** **********@4ax. com:
I accidentally discovered the 2-argument for of IIf when I typed it accidentally and didn't get an error.
I've been using the 2-argument version for ages. Seriously. I never thought it was anything but a supported method.
There are contexts where it's important to supply the second argument, but I forget what those are (in queries?).
Perhaps I did this by analogy with spreadsheet IF() functions, where the second argument is optional. But I don't see that document in Excel's help, either, so maybe this goes all the way back to Lotus 123 days (which I haven't used since 1988).
I never thought there was anything odd about it, and have used it quite frequently!
My fist exposure to IIf was in VBA where, of course, the 3rd argument is
required, so I never guessed that would be not required in queries. it
appears to be that the Expression service has its own version of IIf which
would explain why it works in calculated control expressions, etc.
Steve Jorgensen <no****@nospam. nospam> wrote in
news:p6******** *************** *********@4ax.c om: On Sat, 03 Apr 2004 21:57:13 GMT, "David W. Fenton" <dX********@bw ay.net.invalid> wrote:
Steve Jorgensen <no****@nospam. nospam> wrote in news:9g****** *************** ***********@4ax .com:
I accidentally discovered the 2-argument for of IIf when I typed it accidentally and didn't get an error. I've been using the 2-argument version for ages. Seriously. I never thought it was anything but a supported method.
There are contexts where it's important to supply the second argument, but I forget what those are (in queries?).
Perhaps I did this by analogy with spreadsheet IF() functions, where the second argument is optional. But I don't see that document in Excel's help, either, so maybe this goes all the way back to Lotus 123 days (which I haven't used since 1988).
I never thought there was anything odd about it, and have used it quite frequently!
My fist exposure to IIf was in VBA where, of course, the 3rd argument is required, . . .
My first exposure to it was in expressions in controls and queries,
since I did lots of that kind of thing before I messed around with
any VBA. I can't see a whole lot of contexts in VBA where immediate
IF makes any sense, to be honest.
. . . so I never guessed that would be not required in queries. it appears to be that the Expression service has its own version of IIf which would explain why it works in calculated control expressions, etc.
Hmm. I would be more inclined to think that it's not a different
version of it, but that the VBA syntax checking doesn't know
everything about the real capabilities of IIf(). That would be, I
think, due to a defective type library somewhere.
Or, it could have something to do with the requirements of VBA.
In any event, I can't think of circumstances where I'd use IIf() in
VBA at all (using it in dynamic SQL is different, as it's actually
going to be executed in the SQL, not in VBA).
--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
On Sun, 04 Apr 2004 22:03:01 GMT, "David W. Fenton"
<dX********@bwa y.net.invalid> wrote: Steve Jorgensen <no****@nospam. nospam> wrote in news:p6******* *************** **********@4ax. com:
On Sat, 03 Apr 2004 21:57:13 GMT, "David W. Fenton" <dX********@b way.net.invalid > wrote:
Steve Jorgensen <no****@nospam. nospam> wrote in news:9g***** *************** ************@4a x.com:
I accidentally discovered the 2-argument for of IIf when I typed it accidentally and didn't get an error.
I've been using the 2-argument version for ages. Seriously. I never thought it was anything but a supported method.
There are contexts where it's important to supply the second argument, but I forget what those are (in queries?).
Perhaps I did this by analogy with spreadsheet IF() functions, where the second argument is optional. But I don't see that document in Excel's help, either, so maybe this goes all the way back to Lotus 123 days (which I haven't used since 1988).
I never thought there was anything odd about it, and have used it quite frequently!
My fist exposure to IIf was in VBA where, of course, the 3rd argument is required, . . .
My first exposure to it was in expressions in controls and queries, since I did lots of that kind of thing before I messed around with any VBA. I can't see a whole lot of contexts in VBA where immediate IF makes any sense, to be honest.
. . . so I never guessed that would be not required in queries. it appears to be that the Expression service has its own version of IIf which would explain why it works in calculated control expressions, etc.
Hmm. I would be more inclined to think that it's not a different version of it, but that the VBA syntax checking doesn't know everything about the real capabilities of IIf(). That would be, I think, due to a defective type library somewhere.
Or, it could have something to do with the requirements of VBA.
In any event, I can't think of circumstances where I'd use IIf() in VBA at all (using it in dynamic SQL is different, as it's actually going to be executed in the SQL, not in VBA).
I use it in VBA in cases where the True/False part expressions are small
constants, and where using If .. Then instead would make the code much larger,
and harder to read. It's the exception, not the rule, but it definitely comes
up now and again. It could be that I actually did not use IIf in VBA first,
but I used the VBA help on IIf, so I assumed its capabilities were only as
advertised.
The reason I think the espression service has its own IIf is because it does
short-circuit processing. The only way I can see that that could work is if
IIf is not processed as a "function" at all. To pass all 3 arguments to a
function, they would all have to be evaluated first. Additionally, a function
must return a typeless Null or a typed value, but SQL knows what type to give
to the -column- based on the types of the arguments passed to IIf, so SQL
(probably via the expression service) must also be evaluating IIf some other
way that as a simple function call.
"David W. Fenton" <dX********@bwa y.net.invalid> wrote... Hmm. I would be more inclined to think that it's not a different version of it, but that the VBA syntax checking doesn't know everything about the real capabilities of IIf(). That would be, I think, due to a defective type library somewhere.
Actually, it is a different version. They are not the same function in any
way except name.
--
MichKa [MS]
NLS Collation/Locale/Keyboard Development
Globalization Infrastructure and Font Technologies
This posting is provided "AS IS" with
no warranties, and confers no rights. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Dan Perlman |
last post by:
From: "Dan Perlman" <dan@dpci.NOSPAM.us>
Subject: ODBC creating nulls?
Date: Friday, July 09, 2004 10:43 AM
Hi,
Below is my VB6 code that writes data from an Access 2000 table to a PG
table.
The " & "" " on the right of each line should prevent nulls from being
|
by: Randell D. |
last post by:
Before anyone cracks a quick joke... my question does not refer to
same-sex marriage...
I know how to create a join - correct me if I am wrong, but its
something like the following:
SELECT contacts.firstname,contacts.lastname,address.line_1
FROM contacts,address
WHERE contacts.address_hash='$myhashkey'
AND address.hash='$myhashkey';
|
by: Sathyaram Sannasi |
last post by:
I'm testing a UNION ALL View (say UA_VIEW) of 12 tables - one table for
each year - 5 million records/table on an average.
Check constraints are defined on the base table -
EG. EFF_START_DATE BETWEEN ('2004-01-01' AND '2004-12-31') AND
EFF_END_DATE BETWEEN ('2004-01-01' and '2004-12-31')
and also on the view defn,
|
by: Shaggy Dragon |
last post by:
Hi there, been looking for a solution to this for some time now. I've
a UNION query that produces a table called AllSecurities:
SELECT SecurityNumber, Book AS AllSecurities FROM Trades UNION
SELECT SecurityNumber, Book from Positions;
I'd really like to show is all the fields from the Positions table,
but these don't exist in the Trades table, so they can't be included
in the UNION (as far as I know). Is it possible to link this to a:
|
by: Andy S |
last post by:
Hi,
A couple of guys on the SQL Server forum solved this one yesterday but
they used a FULL OUTER JOIN, which, little known to me is missing from
Accesss and therefore the JET engine. Can anyone suggest an Access
friendly version? I'd like to be able to see other fields from both
UNIONed tables. For instance :
Positions table:
Book SecurityNumber Description
| |
by: Salad |
last post by:
A97.
Situation: I have 3 tables with a text field in each and a date field
in the first 2 tables:
Table1 Text1, Date1
Table2 Text2, Date2
Table3 Text3 (no date field)
The following makes up a saved query called Query1
|
by: Alicia |
last post by:
Hello everyone based on the data, I created a union query which
produces this.
SELECT ,,, 0 As ClosedCount
FROM
UNION SELECT
,, 0 AS OpenedCount,
FROM
ORDER BY , ;
|
by: S.Tobias |
last post by:
I would like to check if I understand the following excerpt correctly:
6.2.5#26 (Types):
All pointers to structure types shall have the same representation and
alignment requirements as each other. All pointers to union types shall
have the same representation and alignment requirements as each other.
Does it mean that *all* structure (or union) types have the same
alignment?
Eg. type
|
by: Randall Skelton |
last post by:
I have a number of tables with the general structure:
Column | Type | Modifiers
-----------+--------------------------+-----------
timestamp | timestamp with time zone |
value | double precision |
Indexes: tbl__timestamp
and I would like to find the union of the timestamps. Something like:
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
| |
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
| |
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |