Modules & VBA :: Compact And Close Database With Delay - Access 2007
Feb 12, 2014
"how to COMPACT the DB by introducing delay of 10 seconds and then close the DB".In the Database, I'm able to accomplish the "Compact" the database using the function below.
Function Compact()
SendKeys "%(FMC)", False
End Function
As my DB is quite huge, the Compact action takes around 10 seconds to complete.Now, i would like to Close the Database after Compacting the DB. I tried including "DoCmd.Quit" in the function. The commands in the function, closes the DB but the Compact function doesn't seem to have executed as it needs 10 seconds to complete.
Function Compact()
SendKeys "%(FMC)", False
DoCmd.Quit
End Function
how to introduce this delay of 10 seconds and then close the DB.
How would I use the Access 2010 setting, 'Compact on close'?We have a back end on a server and many users with front ends on their computers. So would I set 'Compact on close' on the back end? And then it would compact when the last user logged out?
Does anyone know where the Compact and Repair feature is to be found in Access 2007? It was on the Tools menu in Access 2003, but I can't find it in 2007!
Using Access 2007, can I return a value for CurrentProject.FileFormat WITHOUT opening the database?
I'm looking for a way to determine the file version of a given Access database without actually "opening" the database in Access (I don't want it to ever be visible at all or in any way).
So to open a database in Access 2007 "without opening it," I'm using:
Code: Dim db As DAO.Database Set db = DBEngine.Workspaces(0).OpenDatabase("C:Path-ToFile.accdb")
From here, there are at least two different "version" indicators that can be used, as in this example:
Now, if you run this code on an Access 2002/2003 .MDB file, you will get:
Code: 4.0 09.50
If you run this code on an Access 2007 .ACCDB file, you get:
Code: 12.0 09.50
Note two important factors:The db.Properties("Version") seems to be returning the JET version from what I can see in research. This is NOT what I'm after.
The db.Properties("AccessVersion") returns THE SAME VALUE for an '07 ACCDB as it does for an '02-'03 MDB, since Microsoft never updated it, apparently.
Now.... the one way that I have found that ACCURATELY describes the version of a given access database file is to use:
Code: Debug.Print CurrentProject.FileFormat
...as this will always return, for example, 2.0 for an Access 2.0 .MDB file; 10 for an Access 2002/03 .MDB file; and 12 for and Access 2007 .ACCDB file (and there are others; these are AcFileFormat bitmask constants as described in Access support).
BUT, this CurrentProject object doesn't seem to be available (so far as I can see) when using the "open without opening" method described above.
SO, is there any way to return the FileFormat value without opening the database visibly? (Merely basing it in the extension isn't right either.... that would be easy but not accurate as several formats use MDB.
I apply Compact On Close (Tools->Option->General tab). So, every time, it will compact the database when closing the file. However, will it do repair the database automatically? It seems just do compacting.
I have designed a database which I intend to split for multi-users to access from one front end icon on a shared folder at work. I have designed a form bound to cmr record table and on it a subform to another table where cmrs activities will be saved. The form has buttons to and blank controls.
User can create a new activity entry by typing into the blank controls and pressing the save button which saves to the activity table. the edit button extracts a selected records details (selected on the subform) from the activity table and populates the blank field for a user to edit and then hit save to save changes. The delete button deletes a selected record from the activity table. I intend to have multi-users either accessing, viewing and a possibly editing the same customer at the same time. The simultaneous viewing is essential but the simultaneous editing, though not desired is inevitably going to occur.
What I would like to know is:
1. Can you lock an individual record in a table or does the whole table have to be locked. E.g If Colleague 1 is editing Cmr A's record in Table1 can he lock it so Colleague 2 can view and edit Cmr B's record in Table1
2.Can Colleague 1 access/read Cmr A's record in Table1 to retrieve details toe the form controls if Colleague 2 is viewing or editing Cmr A's record in Table1
3. If record lock is possible, how can I initiate it in my example code below.Edit activity record Code
Code: Private Sub Edit_A_Click() 'Get Data to text box control With Me.R_P_Data_P_Subfrm.Form Me.txtrID = !rID Me.txtrID.Tag = !rID Me.txtrefNo = !refNo Me.cmbrpc = !rPC
I currently manually run a compact and repair on the backend of a database at work, but was wondering if it might be sensible to set it to compact on close so that (in theory) it is done at least daily and therefore shouldn't take much time?
The back end resides on a network server, which is backed up continuously, so in theory it should be easy enough to roll back to a backup copy should anything untoward happen.
My access database grow exponentially to 170 MB, We share the access database on the network and those tables on the access database are linked to SQL Server. I tried to compact and converted to 2003 format, It still doesn't shrink too much for the size. Please someone tell me what should I do for it, because someone try to access thur the VPN connect, and it make no sense for her to take 5 mins for loading a report remotely.
I cannot cause a database to refrain from dropping several table indices during a Compact on Close operation. I am running Access 2010 under Windows xp.I have created a database that merges data in a linked text file with data in a linked database, appending the results in a local table. The database has the Compact on Close option set. The table has 27 indices (because most of the fields either are coded or are potential select or sort fields) and nearly 1 million records.
I run a delete query to clear the contents of the table, I close (and compact) the database, I reopen the database, and I run the append query. The indices in the target table are intact. I close (and compact) the database again; when I reopen the database, indices are missing -- sometimes about 10, other times nearly two dozen!
This table is linked to a larger system, which contains code to run the sequence outlined above. Whether run manually or in code, as stand-alone or as a component, indices are dropped. When I close the database with the table containing no records, the indices are not affected. After appending records, but before closing, the database contains 1.66GB. The drive on which the database resides has 42GB free.As suggested with regard to a number of other unexplainable issues, I have created a new database and imported all objects from the original database. The results persist. The larger system performs accurately without the indices, but the performance against a table this massive is horrible.
i have a database that runs updates from within itself.what i need is, this database to then open a another database run a update query, then close it.
Access 2013 ... Is it possible to compact a database to a new name?
(In previous incarnations of Access I regularly 'compacted and repaired' databases to USB sticks rather than simply copy the file in the (mistaken??) belief that this was a more reliable approach)...
Got something which has been bugging me like mad for weeks now;
We have a MS Access Database on a Citrix server and a local copy is downloaded to the clients directory when they log on.
When they actually double click and load the database(frontend) it loads for approx 4/5mins before it eventually opens. After that it is fine, unless they log off and back on again, then the same thing happens when they double click to open the database.
The Backend is stored on a seperate server with over 5million records on it.
Before we attempted Citrix we had a normal network and the frontend has always loaded fine on this.
I've tried to add some basic login (not really security) to my database so that when a different name is entered into the login box a different form is opened.
I got this working but the login form stays in foreground and I can't click anything behind it and can't get to the design view to change any properties of anything.
I've also changed this login form to the startup item so it always loads when i start the database.
Is there way to get back to the design view or do i have to start again from my backup?
I am using a database name as school. having a form name as form01.with cmd button close which close the form. I want to close form with ms Access database. So when user click close button application database will be closed.
Everytime i want to make some changes to my "Testing" Database , always got somebody using it / opening it...
I am trying to create a button , the function of the button is close "Testing" access database who using it or opening it , Example : 5 users included me in a company , when I click a button , 4 of them will received a notification with close "Testing" database message , can do that ?
I am building a faux Electronic Medical Records database for the purpose of training med students. I need a command button to pull up a report , but i want to delay the opening of the report (as if waiting for "tests" to come back or be uploaded) is there a way to do this with VBA? i read about the sleep api but i dont know how to get it to work or where to put the code
so what would i add and where would i add it to delay opening the report that is called EKG W/ Subreport ...
I have two problems excel instance does not close at the end and two when I try to do the looking using text it works but soon as I try using date/time it returns nothing.
Code: Private Sub Command84_Click() Dim objExcel As Excel.Application On Error Resume Next
I have a command button (well, I have a few) that I would like to open a report, first opening a form that allows the user to enter a start and end date.
The code so far is:
On Error Resume Next If Err = 2501 Then Err.Clear DoCmd.OpenForm "DateSelect", acNormal DoCmd.OpenReport "All Events Report", acPreview
Now, when run, this code opens the form (DateSelect), but the report starts to run immediately - the On No Data event of the report kicks in (message box along the lines of "No data, closing report", so before the user has the opportunity to enter the dates, the report has decided that there is no data an closes.
Is there a way to pause the opening of the report until after the OK button is clicked on the pop up form?
Just for the sake of clarity, the pop-up form DateSelect is used to open various reports, so I can't add the open report command to the code for the OK button (that I know of?)
I am using Access 2007 & trying to update a database to include a check & balance.
Currently a user enters their name into a form, selects a check box (Pass or Fail) & clicks a save button. Real simple form. The actual testing is performed on a standalone piece of equipment separate or outside of the MS Access database.
Here is the challenge, if someone does select Fail, I want to ensure this person comes back into a blank form (new entry) & confirms they have eventually passed. I want to give a time limit of 10 minutes before an email is sent out to their superiors. (I have the email portion figured out already).
Other entries will take place before the failed user comes back to the entry form so the form needs to be available for other people to enter their results.
I believe this can be done using some VBA and a query but I am not sure where to start especially with the 10 minute allowance to recheck the test status.
Background Info: I developed our main department's Access 2003 split database which is on a server for 15+ Users. I've now been given Access 2007 for development -- Users still have 2003. There are also 2 other smaller databases that are not split (.mdb).
Problem: In the split database, I've saved the Application .mdb as 2003, relinked and made a new .mde. But the Users still cannot open the database. (I did this in a copy until I figure out the nuances with 2007.) The 2 other unsplit databases can be saved as 2003 version and Users can open OK.
I'm grateful for any suggestions on working with Access 2007. I've been trying to tackle the ribbon which is a whole other question.
I have an Access 2000/2003 database which opens up and displays correctly in Access 2007, but when I go to use the File>Print command, or for that matter any of the other pull down menu's nothing happens?
Has anyone else experienced thisproblem, or does anyone know what I am doing wrong?
Greeting All, I am trying the beta version of Access 2007 and realize that when converting Access 97 to Access 2007, the new db in Access 2007 has an extension of .accdb. I rename the db file name to xxxxx.mdb and the VB app fails to recognize it.
Is there any way to convert the xxxx.accdb (Access 2007 beta) to xxxx.mdb so that I can try my app against the Access 2007 db?????