473,412 Members | 2,092 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,412 software developers and data experts.

Is it possible to use VBA code to close all open objects (forms, tables etc.)?

119 100+
Does anyone know if it is possible to close all objects in a database (tables, forms, queries etc.) using VBA code? I have not been able to find anything online to help me so far...

My motivation for doing this is the following:

I have two databases, call them A and B.

- Database A is linked to a table in database B.
- Database B is updated automatically using Windows Scheduler, on the hour.
- If an object in Database A with a dependency on the linked table in B is open when Database B is opened, Database B will return an error. I cannot have this.
- If all dependent objects in Database A are closed when B opens, there is no problem.
- I would like to automate the closure of Database A objects, to occur before Database B opens via Windows Scheduler. I would be able to do this via VBA code, if only I knew how!

Any help would be greatly appreciated.
Mar 9 '07 #1
7 34979
billelev
119 100+
Just to elaborate a bit further...

I can see that
Expand|Select|Wrap|Line Numbers
  1. DoCmd.Close
might be of use, but this requires each object to be explicitly named. I really need to find a way of closing all open objects, regardless of their names (i.e. I won't know which objects are open).
Mar 9 '07 #2
ADezii
8,834 Expert 8TB
Does anyone know if it is possible to close all objects in a database (tables, forms, queries etc.) using VBA code? I have not been able to find anything online to help me so far...

My motivation for doing this is the following:

I have two databases, call them A and B.

- Database A is linked to a table in database B.
- Database B is updated automatically using Windows Scheduler, on the hour.
- If an object in Database A with a dependency on the linked table in B is open when Database B is opened, Database B will return an error. I cannot have this.
- If all dependent objects in Database A are closed when B opens, there is no problem.
- I would like to automate the closure of Database A objects, to occur before Database B opens via Windows Scheduler. I would be able to do this via VBA code, if only I knew how!

Any help would be greatly appreciated.
There is a way to systematically check and see if any Access Objects are Open (Forms, Reports, Queries, etc,) and then to close them. This is fairly easy especially in the higher Versions of Access. Let me know if you are still interested and I'll work on the code.
Mar 9 '07 #3
billelev
119 100+
If you don't mind, that would be very helpful. I'm running Access 2003 if that helps.
Mar 9 '07 #4
ADezii
8,834 Expert 8TB
If you don't mind, that would be very helpful. I'm running Access 2003 if that helps.
This code should work very well for you:
Expand|Select|Wrap|Line Numbers
  1. Dim aob As AccessObject
  2. With CurrentData
  3.    ' "Tables"
  4.    For Each aob In .AllTables
  5.        If aob.IsLoaded Then
  6.            DoCmd.Close acTable, aob.Name, acSaveYes
  7.        End If
  8.    Next aob
  9.  
  10.    ' "Queries"
  11.    For Each aob In .AllQueries
  12.        If aob.IsLoaded Then
  13.            DoCmd.Close acQuery, aob.Name, acSaveYes
  14.        End If
  15.    Next aob
  16. End With
  17.  
  18.  
  19. With CurrentProject
  20.    ' "Forms"
  21.    For Each aob In .AllForms
  22.        If aob.IsLoaded Then
  23.            DoCmd.Close acForm, aob.Name, acSaveYes
  24.        End If
  25.    Next aob
  26.  
  27.    ' "Reports"
  28.    For Each aob In .AllReports
  29.        If aob.IsLoaded Then
  30.            DoCmd.Close acReport, aob.Name, acSaveYes
  31.        End If
  32.    Next aob
  33.  
  34.    ' "Pages"
  35.    For Each aob In .AllDataAccessPages
  36.        If aob.IsLoaded Then
  37.            DoCmd.Close acDataAccessPage, aob.Name, acSaveYes
  38.        End If
  39.    Next aob
  40.  
  41.    ' "Macros"
  42.    For Each aob In .AllMacros
  43.        If aob.IsLoaded Then
  44.            DoCmd.Close acMacro, aob.Name, acSaveYes
  45.        End If
  46.    Next aob
  47.  
  48.    ' "Modules"
  49.    For Each aob In .AllModules
  50.        If aob.IsLoaded Then
  51.            DoCmd.Close acModule, aob.Name, acSaveYes
  52.        End If
  53.    Next aob
  54. End With
Mar 10 '07 #5
NeoPa
32,556 Expert Mod 16PB
Does anyone know if it is possible to close all objects in a database (tables, forms, queries etc.) using VBA code? I have not been able to find anything online to help me so far...

My motivation for doing this is the following:

I have two databases, call them A and B.

- Database A is linked to a table in database B.
- Database B is updated automatically using Windows Scheduler, on the hour.
- If an object in Database A with a dependency on the linked table in B is open when Database B is opened, Database B will return an error. I cannot have this.
- If all dependent objects in Database A are closed when B opens, there is no problem.
- I would like to automate the closure of Database A objects, to occur before Database B opens via Windows Scheduler. I would be able to do this via VBA code, if only I knew how!

Any help would be greatly appreciated.
If you have a scheduled task running on database B and this depends on no-one having any objects of database A (that refer to tables in database B) open, then you need to close database A objects from all sessions running anywhere and by anyone. This is not as simple as you seem to think. Closing them in your session would be pointless (There probably aren't any open in your session anyway.) as other sessions could be open. It is not possible programatically (and would be dangerous) to close all these objects in the other sessions.
Mar 10 '07 #6
billelev
119 100+
That isn't actually an issue as there will probably only ever be one user, and all potential users sit opposite each other. Closing all of the objects automatically (even if only one user) is useful as it removes the need to remember to close the objects on the hour every hour.
Mar 13 '07 #7
NeoPa
32,556 Expert Mod 16PB
It is not possible programatically (and would be dangerous) to close all these objects in the other sessions.
I expect the fact that it can't be done may be a problem though.
Mar 13 '07 #8

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

Similar topics

0
by: Bryan | last post by:
Can anyone give me some pointers please on where to look next in solving the problem I'm getting with running a Perl program (my first of any real complexity) from the command line in WindowsXP? ...
0
by: markusp1982 | last post by:
Hello NG, I want to close open files which are locked by other users. I like to update an file. I dont want to delete the share file/folder. In the Computer Mangagement you can remove(cut) all...
2
by: Bruno Rodrigues | last post by:
Hey, it's me again. Is there a way to, when closing a form, close also all forms opened inside this one? I'm not talking about MDI. Let's say I create and open three forms in Form1. When I close...
5
by: Steve Lloyd | last post by:
Hi, I have a multi form windows application but when i open new forms they do not load up "crisply", they open bit by bit as the items are drawn. What is the best way to open the form so that...
0
by: nezoat | last post by:
Here is some working code to open the specified TCP port on the gateway nat device or firewall, and forward it to the calling machine. Great for p2p apps. The newsgroups are such a great...
2
by: News East | last post by:
Currently I must manually complete the following commands to set a new value for the "open objects" and "open indexes". I need a way script this process in a batch file. COMMANDS RAN: This is...
7
by: Mathew Butler | last post by:
I'm investigating an issue I have when pulling data back from MS access I'm retrieving all rows from a column in a table of 5000 rows - accessing a column of type "memo" ( can be 65353 character...
1
by: bonnie.tangyn | last post by:
Hello all Would it be possible to store javascript document.forms.value to ASP session as global variable? If it is not possible, how can I pass the javascript document.forms.value to...
4
D Giles
by: D Giles | last post by:
Have found many solutions on this forum to get to this point so finally registered. I have a form which should load 17 forms. Private Sub Form_Load() On Error GoTo Err_Form_Load DoCmd.Minimize...
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:
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...
0
tracyyun
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...
0
isladogs
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...
0
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...

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.