We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now


Generating ranking (ordinal number) field in a query

Fotofixer asked
Medium Priority
Last Modified: 2008-03-17
I need to get a query to generate employee rankings in various categories so I can then add up those rankings to get a total score. I'm using Acess 2000 on Windows 2000. I've tried both solutions provided for the previous question asked like this, but I can't get either of them to work. When I try to use the long solution, I get an "undefined function" error and the VBA debugger highlights the first two lines in the module. The directions say to make sure DAO is ticked in References...there are several "Microsoft DAO *.* Object Library" listings...I've tried them all. When I try to use DAO 3.6, I get a name conflict error. Please help!
Watch Question


are the solutions you're mentioning part of an EE question?  if so, please post a link to that question.


For setting the references:

Open some VBA code and select Tools/References.
Each libraryname necessary must be checked and (for you: microsoft DAO version x.xx the used version doesn't matter as long it's selected from the list).

Yes I'd like to see the code and the previous question you reference.
Nico's right in his helping to check the references.
Some other thoughts:
Are the functions ones that should be inherent (like format() for instance or are you actually referencing a custom function.
Are you trying to call myfunction() for instance, and it can't find it?
Are your functions spelled right?
Say, if you meant format() and you put fomat(), VBA will think it needs a custom function called "fomat" and it will go looking for it.



This is the question that I referenced the solutions for: I'm not sure how to set it up as a link in here.
Solution Title: Ordinal number in a query
Author: ConsultOR
Both solutions define a custom function. As far as I can tell everything is spelled correctly.
To link, just copy and paste the URL into the message.
This looks like the one you referenced:

Maybe you could post your code so we can see ow you implemented it?

Unlock this solution with a free trial preview.
(No credit card required)
Get Preview


That did the trick. But there is a problem with the way they wrote the expression on that site. This is the way they wrote it:

Seniority: (Select Count(*) from Employees Where [HireDate] < _

This is the way it should be:

Seniority: (Select Count(*) from Employees Where [HireDate] < [Emp1].[HireDate])+1

The close parenthesis goes in front of the +1

That page has a link to a file that you can download that gives many query examples.

Thanks again

Hmm, I would have used:
Seniority: (Select Count(*) from Employees Where [HireDate] <= [Emp1].[HireDate])

Thus the equal is automatically counted as 1 and no need for the addition :-)

Success with the application !

Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.