Solved

How to sum DLookup values in a form in MS Access 2003

Posted on 2010-08-31
5
1,348 Views
Last Modified: 2012-05-10
In a form I have a column with lookup values: =DLookUp(NZ("Collected",0),"vwClassesContactsDetail","ClassID = " & NZ([ClassID],0))

ColumName: LookupCollected

The values get properly populated.

In the form footer I have a textbox =Sum([LookupCollected])

I have a similar form that works fine for values directly out of a table, but when using Dlookup values the sum shows #Error.

Any ideas how to fix this?

Thanks,

Rolf
0
Comment
Question by:rolfg
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 75
ID: 33571968
You can only use SUM() on Field names in the underlying recordsource, not on Control Names.

mx
0
 
LVL 75

Accepted Solution

by:
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform) earned 500 total points
ID: 33572018
You option here is to computer that value in the underlying record source using the calculated expression with an alias field name, then refer to that field name in the Sum ...

For example, the SQL for the record source might look like:

SELECT Table1.FIELD1, Table1.FIELD2, DLookUp(NZ("Collected",0),"vwClassesContactsDetail","ClassID = " & NZ([ClassID],0)) AS LookupCollected
FROM Table1;

However, using DLookup() in a query is subject to being VERY slow.

mx

0
 

Author Closing Comment

by:rolfg
ID: 33572213
Works like a charm!  
I tried an Inner Join before as was suggested on another website but that makes the dataset non updatable.
The form  / data set has only 4 to 5 records, so slow Dlookup is not a big deal and the back end database is a SQL2008 quad core machine.
0
 
LVL 75
ID: 33572317
Inner Join ....

See attached screenshot
Try setting the Recordset Type property as shown.  See if the query is now updatable.  If so ... set the same Form property of the same name.

mx
Capture1.gif
0
 

Author Comment

by:rolfg
ID: 33581284
I'll try that, thanks for the follow up.

Since moving to SQL server 2008 (from 2000) I have noticed changes in the ability to do updates especially when the data come via a SQL server view, it has gotten more restrictive. I run a one man IT shop including development and several ASP.NET websites for a small company...  not an easy tasks. Your help is very much appreciated.

 Rolf
0

Featured Post

Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

Question has a verified solution.

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

Microsoft Office Picture Manager is not included in Office 2013. This comes as a shock to users upgrading from earlier versions of Office, such as 2007 and 2010, where Picture Manager was included as a standard application. This article explains how…
Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
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…
The viewer will learn how to use the =DISCRINV command to create a discrete random variable, use this command to model a set of probabilities and outcomes in a Monte Carlo simulation, and learn how to find the standard deviation of a set of probabil…

749 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