Solved

Controls w/ DLookup ControlSource endlessly recalculating in Windows 8 (Access 2003).

Posted on 2013-01-10
9
594 Views
Last Modified: 2013-01-15
I know that Access 2003 is not supposed to work with Windows 8 but I have found it does just fine with this one exception.

If I have a TextBox control with "=DLookup..." as its ControlSource, it just keeps recalculating endlessly when I open the form.  This never happened in Windows 7.

Any ideas on what is happening here?  The form where it does this is a continuous form so there are multiple instances of the control.  As it recalculates the control appears to flash.

Thanks in advance.
0
Comment
Question by:MitchellVII
  • 3
  • 2
  • 2
  • +2
9 Comments
 
LVL 27

Assisted Solution

by:MacroShadow
MacroShadow earned 500 total points
ID: 38765068
I don't use Windows 8 nor do I use Access 2003, but you may want to try using Allen Browne's ELookup instead.
0
 
LVL 5

Author Comment

by:MitchellVII
ID: 38765143
Thank you. I have tried ELookup and still get the same odd behavior.
0
 
LVL 27

Expert Comment

by:MacroShadow
ID: 38765169
Sorry, I haven't got a clue to what the issue is.
0
 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 38765192
Can you post the entire text of the DLookup( ) domain call?

What is the name of the control for which this is the source.

Why do you say Access is not supposed to work in Windows 8, I've not heard that.  Although I'm sure there will be issues with the 64 bit version of Office.
0
Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 38765202
I rarely use DLOOKUP() as a control source. Generally I'll use the Form_Current event to populate the control and then if that control value is dependent on another control, I'll use the afterUpdate event of the other control to populate the value of the control that you are using the DLOOKUP for.
0
 
LVL 5

Accepted Solution

by:
MitchellVII earned 0 total points
ID: 38765249
Hmmm, I think I have found the problem and a solution.

It seems that Windows 8 does not like DLookup (or ELookup) as a ControlSource but doesn't mind it at all in the underlying query.  Weird.

** MS is weird.  They say that Office 2003 will not work properly with Windows 8, but the individual components will.
0
 
LVL 61

Expert Comment

by:mbizup
ID: 38766483
<<
It seems that Windows 8 does not like DLookup (or ELookup) as a ControlSource but doesn't mind it at all in the underlying query.  Weird.
>>

Just a word of caution... if you are indeed resolving this by placing your DLookup in the query behind your form, you very may well find that speed/performance is shot.

There are other ways to work around this that won't kill performance like DLookup in a query will... for example using a combo box to lookup the values needed, or maybe a custom function called from the control source.
0
 
LVL 57
ID: 38767685
Just to add to what Miriam said, use of a Dlookup() (or any of the domain functions) in a query is not a good idea because the query parser cannot optimize the statement.  Poor performance will almost always be the result (you can get away with it on small recordsets).

All of the domain functions represent a SQL statement anyway, which you can write directly in a query, so there is no reason to use them there.  Either do a join, write a sub-select, or use another query as a "table" in this one.

 The  Domain functions were only meant to be used in places where SQL statements are not (like a control expression).   As the others have pointed out, there are other ways to get around the problem you were having besides moving it into the query.

HTH,
Jim.
0
 
LVL 5

Author Closing Comment

by:MitchellVII
ID: 38777602
I found my own solution but the ELookup solution was helpful.
0

Featured Post

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Experts-Exchange is a great place to come for help with solutions for your database issues, and many problems are resolved within minutes of being posted.  Others take a little more time and effort and often providing a sample database is very helpf…
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now