473,385 Members | 1,582 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

How do I close all open query results (tables)?

I have written code to close all open reports, or close all forms (except a couple), using code similar to the following:

While Application.Reports.Count > 0
DoCmd.Close acReport, Application.Reports(0).Name, acSavePrompt
Wend

I can’t figure out how to do the same thing with the half-dozen or so small query windows (tables) that may remain open when I finish a particular task. I have to click the [x] close button on the Title bar of each one.

TIA

-BhanteU
Jun 28 '10 #1

✓ answered by ADezii

@BhanteU
Access 97 is a horse of a different color, and none of the previously mentioned approaches will work. The following, 'Generic' Code template should work for you:
Expand|Select|Wrap|Line Numbers
  1. On Error Resume Next
  2. Dim intNumOfQueries As Integer
  3. Dim intQCounter As Integer
  4.  
  5. intNumOfQueries = CurrentDb.QueryDefs.Count
  6.  
  7. For intQCounter = 0 To intNumOfQueries - 1
  8.   DoCmd.Close acQuery, CurrentDb.QueryDefs(intQCounter).Name, acSaveYes
  9. Next

9 19125
ADezii
8,834 Expert 8TB
@BhanteU
Expand|Select|Wrap|Line Numbers
  1. Dim aob As AccessObject
  2.  
  3. With CurrentData
  4.   For Each aob In .AllQueries
  5.     If aob.IsLoaded Then
  6.       DoCmd.Close acQuery, aob.Name, acSaveYes
  7.     End If
  8.   Next
  9. End With
Jun 28 '10 #2
Thank you.

Access97 doesn’t like the AccessObject data type; it returns a “User-defined type not defined” error at compile time. I’m running Access 97.

When I enter the keyword accesstype (in small letters), Access 97 automatically changes the case, indicating that it recognizes the string.

Substituting AcObjectType doesn’t work, either.

Looks like some kind of undocumented “feature”.

BTW, how did you get that code snippet into the reply window?
Jun 29 '10 #3
FishVal
2,653 Expert 2GB
@BhanteU
You can determine the type of AllQueries collection member using either of the following two methods:
  • Open Object Browser window, find "AllQueries" class, check the type returned by "Item" property of this class.
  • In Immediate pane run the following command
    Expand|Select|Wrap|Line Numbers
    1. ? TypeName(CurrentData.AllQueries(0))

Regards,
Fish
Jun 29 '10 #4
ADezii
8,834 Expert 8TB
@BhanteU
Access 97 is a horse of a different color, and none of the previously mentioned approaches will work. The following, 'Generic' Code template should work for you:
Expand|Select|Wrap|Line Numbers
  1. On Error Resume Next
  2. Dim intNumOfQueries As Integer
  3. Dim intQCounter As Integer
  4.  
  5. intNumOfQueries = CurrentDb.QueryDefs.Count
  6.  
  7. For intQCounter = 0 To intNumOfQueries - 1
  8.   DoCmd.Close acQuery, CurrentDb.QueryDefs(intQCounter).Name, acSaveYes
  9. Next
Jun 29 '10 #5
Thank you, ADezii!

Access Help was not helpful in wading through the quagmire of objects, methods, and properties. I tried many commands like the one you supplied:

CurrentDb.QueryDefs(intQCounter).Name

but I never could get it right. Yous works swell!

Thank you so much!

(And still I would like to know how one gets that nicely-formatted code window into a reply.)

-Ven. Upatissa
Jun 29 '10 #6
ADezii
8,834 Expert 8TB
Select the Code Segment with the Mouse, then click the Hash (#) on the Message Window Toolbar. You will now see the Code surrounded by Code Tags, and it will be formatted accordingly.
Jun 29 '10 #7
NeoPa
32,556 Expert Mod 16PB
An alternative that doesn't need to maintain the counter would be :
Expand|Select|Wrap|Line Numbers
  1. Dim qdf As DAO.QueryDef
  2.  
  3. For Each qdf In CurrentDb.QueryDefs
  4.     Call DoCmd.Close(acQuery, qdf.Name)
  5. Next qdf
Unfortunately, neither cycles through only those queries that are currently open. I wasn't able to find anything that indicated that.
Jun 29 '10 #8
ADezii
8,834 Expert 8TB
@NeoPa
Hello NeoPa. I don't think that the For...Each Construct will work in Access 97, but I could be wrong.
Jun 29 '10 #9
My utmost thanks to Adezi and NeoPa. I can report that both routines work in Access 97. My apologies for not revealing earlier that I was using antiquated Access 97.

Several years ago I wrote a medium-sized management system in MS Access. I’ve been doing periodic maintenance and tweaking ever since. The DBMS handles the membership records for a not-for-profit institution. At present it contains around 7,000 member records and 100,000 transactions. The organization is not keen to spend any money at all, and I have advised them to stick with Win 98 SE and Access 97 for the membership clerk. Why fix it if it ain’t broke?

So again, my thanks to everyone.

Sadhu!

(please mark this issue as closed.)
Jun 29 '10 #10

Sign in to post your reply or Sign up for a free account.

Similar topics

4
by: Max Harvey | last post by:
Hi, I have looked at the example called "Open Parameter queries from code" from the site http://www.mvps.org/access/queries/qry0003.htm I made up a test which I though looked pretty close...
5
by: Ryan Hubbard | last post by:
Is it possible to get the recordset from an open query window? So you run the query. The window is open. Can vba retrieve this data?
6
by: Brian | last post by:
Hello, Basically, I'm running a query on a form's activation, and I'd like to have the results of the query be placed into other fields on the same form automatically. Does anybody know how...
0
by: Rob | last post by:
I doubt this is the best way to do it, but what I came up with was to hide the XML in an HTML Comment then edit the file deleting the HTML stuff and keep the XML results. If anyone has a better...
2
by: kevcar40 | last post by:
hi i have a query which returns the top 5 Areas of concern i.e Area(field name) Area 1 Area 2 Area 3 Area 4 Area 5 the results are displayed on a continuous form i am now trying to use this...
9
by: Kelii | last post by:
I've been trying to get this piece to work for a few hours, but have given up. I hope someone out there can help, I think the issue is relatively straightforward, but being a novice, I'm stumped....
2
by: Himmel | last post by:
Hello! The reference database I currently use runs queries that pull data from hundreds of tables in order to create user-friendly form view. The problem is that these queries can take upwards of...
1
by: Arli | last post by:
I have the following linked tables: tblMainPL is my main table that I need to pull the information in from. It has the following fields: Autonumber1 -PK set as autonumber Date - short date...
1
by: ebasshead | last post by:
Hi Everybody, Behind a combo box on an open form, I have the below code to run a query, which it does, and pops up the query results.. MaxofID, NPPricePerWeek and IDProperty2, in data sheet view. ...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
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,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.