Advanced Racing Systems
Computer Solutions For The Racing Business
Home
Products
What's New
FAQ
PartLife FAQ
Contact Us
Downloads

PartLife FAQ


1.  How do I add custom properties to my parts?
 
To add one or more properties to your parts, you simply add a column to the Parts table in the Parts.mdb file. You must have Access 97 to make changes to the database. The next time you open PartLife, your new column name will appear as a new row in the "Other properties" section of the part editor form.
 
2.  How can I find the PartHistory records that are causing the warnings after I recalculate mileage?
 
There are two ways to identify the PartHistory records that are causing duplicate miles warnings. First, printing one if the two reports dealing with duplicated history. The second is to click the buttons on the bottom of the PartHistory form by clicking "Maintain | Part use history" on the menu.

Since the duplicates are detected by looking in the MilesLog table, and the MilesLog table is re-generated only during a re-calculation, PartHistory table changes will not affect the parts listed in the form until after a recalc is performed.
 
3.  Why is my "Maintain" menu item grayed out?
 
The menu item "Maintain" is grayed out if the command line parameter "AllowMaint" is not found when PartLife starts. To add "AllowMaint" to the command line, open the properties of the icon you use to start PartLife and in the "Target" field, after the program path, put "AllowMaint" (no quotes).
 
4.  The size of my Parts.mdb file seems too large for the amount of data I have in it. How can I make it smaller?
 
Access keeps the space used by deleted records in the file until the file is compacted. If you are not using replication, a simple compaction will remove this unused space from the file. If you are using replication, the deleted records are not removed until all replicates in the replica set have been synchronized to the generation in which the records have been deleted. All replicates means all replicates that were ever created. For this reason, it's important to not create replicates and delete them as if they were simple copies of the database. If you delete a replicate, you will never be able to sync with that replicate.

Most of the space taken up by deleted records is in the MilesLog and PartTotal tables. These tables are used when calculating miles on parts and get created and deleted often. To compact a database that has missing replicates, and reclaim this space, you must delete the tables at the design master, and then replicate through the replica set. Once that is done, compacting the design master or the replicates will reduce the size of the Parts.mdb file.
 
5.  I've created some duplicate PartHistory records. What's the easiest way to remove the duplicates?
 
The easiest way to remove the duplicate records is to open the duplicate with the PartHistory editor and delete the record. To open a PartHistory record in the editor, double-click in the row selector to the left of the row in the PartHistory form.

If you have a significant number of duplicates, and have Access 97, you can create and run the following query. It will list for you the records which have more than one record with the same PartID, InstalledOnId and start and stop laps. Once you have the records listed, delete ALL BUT ONE of the records in the list. Since all the records are being shown to you, you must leave one in place to record the fact that the part was in use. It's a good idea to make a back up copy of both your Parts.mdb and Main.mdb files before you attempt this process.

To create the query, open the Parts.mdb in Access. Create a new query, and change to the SQL view by clicking on the drop-down arrow of the toolbar button at the left of the toolbar. Select the SQL option. Select any text you may see there, and delete it. Cut the following query and paste it into the query window on the Access form:

SELECT DISTINCTROW [PartID], [InstalledOnID], [StartLapStamp], [EndLapStamp], [ParentIsConfig], [ID] FROM PartHistory WHERE [PartID] IN (SELECT [PartID] FROM [PartHistory] As Tmp GROUP BY [PartID],[InstalledOnID],[StartLapStamp],[EndLapStamp],[ParentIsConfig] HAVING Count(*)>1 And [InstalledOnID] = [PartHistory].[InstalledOnID] And [StartLapStamp] = [PartHistory].[StartLapStamp] And [EndLapStamp] = [PartHistory].[EndLapStamp] And [ParentIsConfig] = [PartHistory].[ParentIsConfig]) ORDER BY [PartID], [InstalledOnID], [StartLapStamp], [EndLapStamp], [ParentIsConfig];

When you run the query, you will see the records that are duplicated. Delete ALL BUT ONE of the records.

6.  What can I change when I get the error "File sharing lock count exceeded (Error 3052)" during a sync or replication?
 
This error is generated because Access used up all the resources allocated for this purpose. This may occur as your database grows. You can change the resources allocated for Access in the system registry to prevent this error. Registry settings should only be modified by someone who is familiar with them and has taken the precautions noted below. If you don't have anyone available who is experienced in manipulating the registry, call Advanced Racing Systems for assistance. The default setting is 9500. We recommend increasing this value to 19500.

WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall Windows 95. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.

For information about how to edit the registry, view the Changing Keys And Values online Help topic in Registry Editor (Regedit.exe). Note that you should make a backup copy of the registry files (System.dat and User.dat) before you edit the registry.

Use Registry Editor to increase the MaxLocksPerFile value under the following key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Jet 3.5

Note that this method changes the Windows Registry setting for all applications that use the Microsoft Jet database engine version 3.5.

In some cases error 3052 will appear on the screen. In other cases, the error will be shown as an error during sync when the error will read "Changes in the design master that are being implemented in the replica by this sync would cause a violation of database rules in the replica set. Synchronization will not be complete until this situation is corrected. Exceeding the file sharing lock count can also cause this error." This is the standard response from Access when a schema change at the design master is to be applied to the replica and the change fails. To investigate the actual cause of this error, open the Parts.mdb and Main.mdb files with Access, and Access will allow you to see the actual error encountered.
 
7.  What queries are needed by PartLife?
 
PartLife uses queries stored in the Parts.mdb database to accomplish a number of tasks. The table below lists the queries that are used by the various versions of PartLife V2.

2.0.90

1ZeroPartPeriod 1ZeroPartTotals 3MakePartTotal
3MakePartTotal2 3MakePartTotal2B 4UpdateParts
4UpdateParts2 4UpdatePeriod 4UpdatePeriod2
5UpdatePartSummary 5UpdatePartSummary2 5UpdatePeriodSummary2
6UpdatePartsFields 6UpdatePartsFields2 AyOnAsOf
ChOnAsOf DupedHistory DupedSessions
FindDupedParts FindHistoryFromMilesLogDupe GetAssemblyComponents
GetAssemblyComponentsOld GetAssemblyComponentTypes GetAssemblyItems
GetAssemblyRelationships GetAssemblyRelationshipsOld GetChassisAssemblies
GetInventoryComponentTypes GetInventoryItems GetLooseParts
GetNonChassisAssemblies NicePartList ParentList
PartChngA PartChngC PartHistoryforDupedHistory
PartHistoryforDupedSessions PartRunHistory PartsNowOnConfig
PartsVerbose RemoveDots UpdateDots

8.  How do I convert my demo into the licensed product?
 
Once you purchase a PartLife license, you have two options for converting the license from a demo to the real license. The first requires you to be on the phone with the PartLife license administrator while you both have your computers running. The second allows you to e-mail your computer information to ARS and receive a production license via return e-mail.

Regardless of the method you are using, first go to the license update form in PartLife.

a) If your demo license has expired, you will see the license update form when you try to run PartLife.
b) If your demo license is still valid, start PartLife, and navigate via the menus to "Maintain | Special | Preferences | License update" to the license update form.

Option 1 - Live phone update

Call Advanced Racing Systems on 513-893-2778 or 513-305-7223. You will be asked for the code entry number and the computer ID shown on the License Update form. Your License Update Code will be read back to you. Enter this code in the field provided and click the "Apply" button. You will be asked to enter the name of your organization. This name will appear on the splash screen and the "Help | About" form on your computer.

Important: Be sure to stay on the License Update form until you enter the License Update Code. If you close and re-open the form, you will see a new Code Entry Number and the number you receive from us will not work if it is based on the old number.

Option 2 - E-mail update

E-mail the Computer ID number to cparks@advracing.com along with the name of your organization that you would like to see on the splash and "Help | About" screens.

You will receive an e-mail that has your license file attached. Save the license file to your hard drive so we can import the file from PartLife. The best place to put it is in the folder with PartLife (C:\Program files\Advanced Racing Systems\PartLifeV2) but any folder will do.

You will need to again navigate to the License Update form and then click on the "Import License" button. Select the license file you just received from us and your license will be updated. It will take effect the next time you start PartLife.
 
9.  Now that I've created my database, how can I make a copy of it to use for a separate project?
 
To make a clone of your current database, simply copy the two database files - Main.mdb and Parts.mdb - to another folder or computer. Cloning a database does not allow you to synchronize the two databases in the future. Cloning is useful if you have created the structure of your parts in the database and you wish to have two completely independent databases. An example would be for two teams competing in the same series, or two different series. If you want multiple copies of the same database - for example one at the track and one at the shop - that need to remain synchronized, then the database should be replicated using the replication feature in PartLife rather than cloning.

If you have not replicated the database, the simple copy given above will create a useable second database for you. However, if you have replicated the database before making the copy, you will have to make the new cloned copy a design master for the second team before PartLife will operate properly. To do this, open Access, then open both the Main.mdb. Using the "Tools | Replication" menu items convert the cloned database into a design master for the second group. Repeat this operation for Parts.mdb.
 
10.  PartLife reports that a part I just made using the "Copy" button does not exist. Where did it go?
 
This message is generated because PartLife knows the ID of the part just created, and is attempting to display it to you, but because you have a filter set that does not include the part or you have clicked on a part name (causing only parts of that name to be shown) and created a part of a different name, that does not exist in the current view of the data. To find the part (and prevent this from happening in the future) remove any filters you may have set, and click on the configuration level in the outline at the left of the screen. This will include all parts in the database in your view and allow PartLife to locate the new parts you just made regardless of their name.
 
11.  I've got a boatload of parts in my database and while it's easy to see which parts are installed somewhere (the row is yellow even if the parent is not showing) knowing which assembly has a full complement of components is not easy to see since they are scattered all over the form. How can I see at a glance which assemblies have parts installed on them?
 
While there is no flag available to show you if an assembly has any parts on it or if it has a full complement of parts, you can use a filter to make the parts installed to each assembly sort together at the top of the forms - dot form or the main inventory form. Just open the filter editor from the filter button on the toolbar, and create a new filter (I named mine "Installed-on order"). Leave the where clause "none" and change the order by clause from "[Name], [SerialNo]" to "[InstalledOn] DESC, [Name], [SerialNo]"

This will cause your rows to appear in DESCending order (don't blame the goofy abbreviation on me!) of parent ID. All the parts installed in each column will appear together at the top of the form, with the remainder of the parts following in their normal order. Cool, eh? (cjp-16-Nov-99)
 
12.  What are the steps for upgrading PartLife when we have a number of users and a replicated database?
 
To upgrade your PartLife installation when you have replicated databases is a little more complicated than just replacing the exe as you would on a stand-alone installation due to the possibility that PartLife may make changes to the design of the database. When a new version of PartLife is run, it checks the database to see what the last version was that used the database. If it was an earlier version, PartLife will make any changes needed to make the database current. If there are replicates, the changes cannot be made in the replicate, but MUST be made in the design master first, then when the databases are sync'd the design changes will be propagated to the replicates. The steps to follow are:

Synchronize all the replicates with the design master. Do this twice around. That is, sync each replicate once to get all the changes updated in the master, then sync each replicate again, to put the changes into each replicate.

Install the new PartLife upgrade on the computer that has the design master. If you downloaded the self-extracting exe, you will have a file named PartLife9999999 where 9999999 represents the version. (200110 would be 2.00.110.)

Run PartLife on the computer that has the design master. This will allow PartLife to make and design changes in the design master.

Close PartLife and re-open it, to ensure that the upgrade was successful.

Synchronize to each of the replicates from the design master. This will move the design changes to the replicates.

Replace the PartLife.exe on each of the computers with the replicates.

Test PartLife on all the computers that you copied the upgrade exe to. Watch for the new version number on the splash screen as PartLife starts.

13.  I want to move some parts from the current PartLife database to a different database because I'm starting a new season and only a few of the parts will carry over. How can I do this without re-creating each part and entering all of its session?
 
You may want to move parts and history from one Parts.mdb to another Parts.mdb because the parts are no longer to be used and you want to archive the parts and history, or, you may be making a new database for a new season, and you want to start with a new database and add in a few parts that will carry over.

To move parts to a different database, you need to

  1. move the parts in the parts table and
  2. move the corresponding history in the PartHistory table.

The example below will show you how to archive parts. To move existing parts to a new season's database, you do the same thing, but you would take parts that are useable and that match the names that you want to move.

You can play around with Access to get this done so it suits your needs. The following queries will do the job to give you a start. If you want to move the contents of the relationships table, you can imagine what that would look like. This is not necessary since archived parts are not to be used, and PartLife will clean up the orphan relationships on it’s own.

Before you can run the queries, you have to make the database. In Access, create a new file in the folder you want (I used 'C:\ARS\DB\Archive\Parts.mdb' as the archive folder and "C:\ARS\DB\Parts.mdb" as the active db in the samples). Then, from the new database, do "File | Get external data", and point to the mdb file that contains the tables you want to move. Once there, if your new database does not contain the Parts tables, highlight the tables to import. In options, set the import to import the definitions only for the tables. If you made a new database for a new season via PartLife (recommended), the tables will already exist.

Then go to the queries tab in the new database and add the following queries. When you run them (in order), they will copy and delete the records that have the Useable property set to False. Of course you are free to use your own criteria. If you don't want to delete the parts from the original database,

To archive unused parts:

"CopyParts" query:
INSERT INTO Parts SELECT * FROM Parts IN 'C:\ARS\DB\Parts.mdb' WHERE (((Parts.Useable)=False));

"CopyHistory" query:
INSERT INTO PartHistory IN 'C:\ARS\DB\Archive\Archive.mdb' SELECT * FROM PartHistory WHERE PartID in (Select ID FROM Parts IN 'C:\ARS\DB\Parts.mdb' WHERE (((Parts.Useable)=False)));

"DeleteParts" Query:
Delete * FROM Parts WHERE (((Parts.Useable)=False));

"DeleteHistory" query:
DELETE * FROM PartHistory WHERE PartID not in (Select ID from Parts);

To copy parts from last season:

"CopyParts" query:
INSERT INTO Parts SELECT * FROM Parts IN 'C:\ARS\DB\Last season\Parts.mdb' WHERE (([Parts.Name]='name-of-part-here'));

Repeat above for all parts needed. If you don't need all the serial numbers, either delete the ones you don't need out of the new table after the copy, or add a list of serial nos that you want to copy to the where clause above between the last quote and the "));" like this:

INSERT INTO Parts SELECT * FROM Parts IN 'C:\ARS\DB\2000 season\Parts.mdb' WHERE (([Parts.Name]='name-of-part-here' and [Parts.SerialNo] IN ('1st-serialno', '2nd-serial-no', '3rd-serial-no') ));

The serial nos should be in single quotes and should be separated by commas. You can add as many as you feel like typing.

"CopyHistory" query:
INSERT INTO PartHistory SELECT * FROM PartHistory IN 'C:\ARS\DB\Last season\Parts.mdb' WHERE PartID in (Select ID FROM Parts IN 'C:\ARS\DB\Last season\Parts.mdb' WHERE (([Parts.Name]='name-of-part-here' and [Parts.SerialNo] IN ('1st-serialno', '2nd-serial-no', '3rd-serial-no') ));

As before, the serial numbers are optional if you don't have any parts of a given name that don't want to copy, but if you've typed in the where clause for the part copy, you can cut-and-paste it into the history copy.

In many cases you don't need to have the history come with you if you can make the total miles figure become the manual miles for the start of the new season. Again, remembering the where clause options seen above, you can set any collection of parts you can define in a where clause by using the update query below:

Update Parts set [ManualMiles] = [TotalMiles] where (and add your where clause here);

You can do this update either before or after you copy the parts, but after may make more sense if you don't have any history coming with the parts. If you do it before you copy the parts, the next time that database is re-calculated the manual miles will contain the old sessions and the total will also include the sessions run.

 14.  What complications exist once parts have been archived?
 
If you have moved parts to a different database, you will have to be careful that PartLife does not assign the serial numbers of these parts to new parts. This could happen if you choose to select a part that has a serial number before that of an archived part. In this case, when PartLife tries to make the new serial number, it starts the search at the next highest number and continues to look until it finds an unused number. If the search was started before an archived part serial number, the archived part serial number would be the one selected. To prevent this, select a part to copy that has a serial number higher than any archived parts or change the serial number to the correct number after PartLife makes the new part.
 
15.  My month and day keep swapping around if the day is 12 or less. Why?
  
If you have selected a regional setting and then modified the "short date" format to a style different from that of the selected region, the month and day will be swapped around if the day of the month is 12 or less. This is because all dates are stored internally in Microsoft Access as "mm/dd/yy" and conversions are done to display the date as you request. Some conversions check the regional settings, others use the short date format when displaying the date. If these two settings are in conflict, month and day swapping will occur if it is not clear which is the month and which is the day. Once the day is larger than 12, it can't be a month and the swapping stops.

To prevent this behavior, ensure that the regional selected and the short date format agree.
 
16.  How do I install Access 97 when Access 2000 is already installed?
 
If you already have Access 2000 on the computer, and you want to add Access 97, there are some additional steps you must follow.

When you try to install Access 97, you have to avoid the "Microsoft Access can't start because there is no license for it on this machine" error message caused by the presence of the Hatten font, which is installed by Access 2000 and Office 2000. Also, if the Access 97 installation finds a newer version of the Msaccess.exe file on the computer, it will not install the 97 version of the Msaccess.exe file.
1. Click Start, point to Find, and then click Files or Folders.
2. Find the Hatten.ttf file, and then rename it to Hatten.sav. You must do this to avoid the "Microsoft Access can't start because there is no license for it on this machine" error message when you start Access 97.

NOTE: You can find the Hatten.ttf file in the Fonts folder under the name, Haettenschweiler.
3. Find the existing version of the Msaccess.exe file, and then rename it to Msaccess.2k. Before you rename it, confirm that the version of the Msaccess.exe file is 9.0x by right-clicking the file, and then clicking Properties. Then click the Version tab
4. Install Access 97 or Office 97.
5. When prompted, click Change Directory to install Access 97 in a folder other than the folder in which Access 2000 is installed. For example, install the program in a folder named C:\Program Files\Microsoft Office97\.
6. After the installation is finished, find the Msaccess.2k file and rename it back to Msaccess.exe. Also, find the Hatten.sav file and rename it back to Hatten.ttf.


Contact us in Cape Coral, Florida, for customized software and
computer systems for the motor sports and racing industries.