Tables :: Most Efficient Way To Store Historical Data

Mar 11, 2013

I'm thinking of 2 different ways, but not sure how Access will handle them.

1) A table that maintains the start and stop date of the relationship (i.e. employee has a job title from a start date to an end date).

This is the ideal, but I'm concerned about the number of records. The database will store 3,000 employees and I'd estimate around 2000 changes a month can occur to the employee data (transfers, hires, promotions, terminations and all cascading changes on dependent information).

2) A different database for each month/year. (i.e. Employees_March2013, Employees_April2013)

I don't have concerns about the number of records, but I'm not sure how the front-end will work with multiple back-end databases. Is there an easy way to setup a form to choose which "effective date" of employee information you'd like to choose and have it link to the correct back-end at that point before running a query/report?

View Replies


ADVERTISEMENT

Help W/table Structure - Keep Historical Data - "Revisions" On Many-side Tables

Jun 1, 2005

Hope the thread title wasn't too confusing.

I have a database that tracks emissions from painting. Bear with me since this is going to be a long post.
:o

Some background info.
- a paint can consists of many parts mixed in a specific ratio.
- a part cosists of many chemicals
- a part may be used is many different paints

Here is how I have the existing database structured now. I’ve simplified it somewhat.

tblPaint
PaintID (PK)
PaintName - String
PaintDensity - Double
PaintVOCContent - Double

tblPart
PartID (PK)
PartName - String
PartDensity - Double
PartVOCContent - Double

tblRatio
RatioID (PK)
PaintID (FK)
PartID (FK)
Ratio - Integer

tblChemicalWt
ChemicalWtID (PK)
PartID (FK)
ChemicalID (FK)
WeightPercent - Double (Percent)

tblChemical
ChemicalID (PK)
strChemicalNumber - Long
strChemicalName - String

tblUsage
UsageID (PK)
PaintID (FK)
UsageDate - Date
UsageAmount - Double

PK = Primary Key (Autonumber)
FK = Foreign Key (Autonumber)

The Density or VOC Content (VOC = Volatile Organic Compound) for a paint can either be given OR it can be calculated by the mix ratio of parts and their respective Density or VOC Content values. One or the other must be complete.

What I did not account for was that there may be changes due to the paint manufacturer revising their paint composition, such as;
the parts that make up a paint may change
chemical make-up of a part changes (can be a change in Weight Percentages or the addition or deletion of a chemical).
ratio in which parts are mixed for a paint changes
Density/VOC Content values may change for a Paint or Part

The problem is that I cannot simply change the existing records as the emissions are calculated using all the data from each table and emissions need to be calculated using the paint/part/ratio/chemical weight percent info that was valid at the time of usage.

Another thing is that the Paint Name will not change, it’ll always be something like “BrandX Acrylic Blue”.

The person entering usage data only knows how much of what paint was used for a given day.

The person who enters paint usage has nothing to with entering the chemical make-up for parts and information for the paints and vice versa.

At any rate, my new draft table design is as follows. Two of the tables (tblChemical & tblUsage) will remain the same.

tblPaint
PaintID (PK)
PaintName - String

tblPaintVersion
PaintVersionID (PK)
PaintID (FK)
PaintDensity - Double
PaintVOCContent - Double
PaintVersionDateIN - Date
PaintVersionDateOUT - Date

tblPart
PartID (PK)
PartName - String

tblPartVersion
PartVersionID (PK)
PartID (FK)
PartDensity - Double
PartVOCContent - Double
PartVersionDateIN - Date
PartVersionDateOUT - Date

tblChemicalWt
ChemicalWtID (PK)
PartVersionID (FK)
ChemicalID (FK)
WeightPercent - Double (Percent)

I might be able to do away with tblRatioVersion and just have one table to store the mix ratios. It should be the case that a change in mix ratios (either a change in mix ratios and/or what parts make up a paint) means a change in the Paint Density & VOC Content. But I am presenting both versions of the Ratio tables here for completeness.

Version 1
tblRatioVersion
RatioVersionID (PK)
PaintVersionID (FK)
RatioVersionDateIN - Date
RatioVersionDateOUT - Date

tblRatio
RatioID (PK)
RatioVersionID (FK)
PartVersionID (FK)
Ratio - Integer

Version 2
tblRatio
RatioID (PK)
PaintVersionID (FK)
PartVersionID (FK)
RatioVersionDateIN - Date
RatioVersionDateOUT - Date
Ratio - Integer

I plan on having the DateOUT fields be populated automatically to match the DateIN for the new version. That way I can use “BETWEEN DateIN and DateOUT” to select the appropriate info for calculating emissions. The idea came from an old thread I started (http://www.access-programmers.co.uk/forums/showthread.php?t=31677&highlight=historical+data). I think this is the way to go, but with all the relationships going on, I'm having a hard time wrapping my head around it all. Am hoping someone here can help me with this.

Anyone see any problems with the new table design?
Anyone know a better way?
:confused:

Some potential issues that I see
If only the Density/VOC Content changes for a Paint, then the old set of records in tblRatio must be duplicated.
If only the Density/VOC Content changes for a Part, then the old set of records in tblRatio & tblChemicalWt must be duplicated.

Thanks for reading this post all the way to the end!
:D

EDIT: Thought about it some more.
A new version of a Part, should trigger a new version of Mix Ratios which in turn should trigger a new version of a paint.
Part --> Ratio --> Paint
Ratio --> Paint

Also, a change in a Part must trigger a New Paint version for ALL Paints that currently use it!
:eek:

View 3 Replies View Related

Modules & VBA :: Efficient Comparison Of Multiple Fields On Different Tables

Oct 7, 2013

I am wondering if there is an efficient way to compare two fields from one table to another two fields from another table. So basically

Code:

If targetTable.Field1.Value = sourceTable.Field1.Value And targetTable.Field2.Value = sourceTable.Field2.Value Then
targetTable.Field3.Value = sourceTable.Field3.Value

The problem is that I need to run this for all entries in targetTable. The only I could think of was to use 2 nested for loops (one for target table and one for source table) as outlined in the following (my data is currently in Excel, but I want to import it to Access)

Code:
For i = 2 To 5754
For j = 2 To 3500
If targetSheet.Range("I" & i).Value = sourceSheet.Range("AR" & j).Value And targetSheet.Range("K" & i).Value = sourceSheet.Range("AS" & j).Value Then
targetSheet.Range("I" & i).Value = sourceSheet.Range("AT" & j).Value

The above code works but it is really slow (takes about 12 mins on a high-end CPU).

View 4 Replies View Related

Tables :: Check Box Field - Store Only Two Possible Data Choices

Oct 7, 2014

Is it possible to create a field in a table that stores only two possible data choices: a check or null value ?

View 6 Replies View Related

Tables :: Lock Historical Entries?

Oct 1, 2012

I have a table of Dealers. Each dealer has a REP. I want to CHANGE the rep of the Dealer going forward but RETAIN the historical.

View 4 Replies View Related

Historical Vs Current Data

Mar 6, 2007

Could someone point me in the right direction on how to statically store current pricing for a product in an invoice database, whereby future price changes would not change pricing on past/previously created invoices...?

View 6 Replies View Related

Reports :: Connecting Historical Data

Nov 2, 2014

I have the following tables

1. t_Employee. It consists of the following fields:
EmployeeID
Name
Job Title
Contract Start Date
Contract End Date

2. t_Login. It has the ff fields:
UserID
UserName
Password

3. t_AuditTrail w/ the ff fields (this will used for historical data for Job title, Contract Start Date, Contract End Date, etc.):
AuditTrailID
TableID (in this case t_Employee)
FieldName (JobTitle)
RecordID (EmployeeID)
OldValue
NewValue
ChangeDate (date edited)
ChangeBy (UserName)

I've already set up t_AuditTrail by putting several (& separate) After Update Data Macros.

Now, I have a form for t_Employee. It has a button that would open a report. This report contains the Job Title history of an employee.

The report is based on a query w/ the ff SQL:

Code:
SELECT t_AuditTrail.atTableID, t_AuditTrail.atFieldName, t_AuditTrail.atRecordID, t_AuditTrail.atOldValue, t_AuditTrail.atNewValue
FROM t_AuditTrail
WHERE (((t_AuditTrail.atTableID)="t_Employee") AND ((t_AuditTrail.atFieldName)="eJobTitleID"));

So the report only shows historical data for Job Title. Which means that Job Title from t_AuditTrail is not related to Contract Start Date or Contract End Date.

Problem(s)/Question(s):I want my report to show the Job Title History and the corresponding contract start date and contract end date (not the date a record was edited). When an employee changes a job title, his/her contract dates change.However, when i start to make a report based on quesries q_AuditTrail_JobTitle and q_AuditTrail_ContractStartDate and q_AuditTrail_ContractEndDate, Access tells me that they are not connected so it cannot make a report. How do I go about this? How do I let user see the Job Title relative to its contract start and end dates?

View 1 Replies View Related

Dealing With Historical Data On A Form?

Feb 26, 2014

I have a database with student information that contains tables about their dissertation and graduation information. There is a field "academic year" noting their graduation year. I have a form for data entry that my data entry person likes to use in datasheet view. The form is based on a query that contains only current academic year records. When a new academic year arrives, I plan to create a new query for the form to feed from. i.e., "hiding" past academic year records on the form in datasheet view.

View 1 Replies View Related

Using Date Table To Track Historical Data

Dec 26, 2007

I am re-designing a database for 2008 and trying to eliminate my Make Table Queries as I have found them to be somewhat consistant over the last year, particularily when the users do not open the database on a given date. It seems there should be a simple way to accomplish what I want but I am struggling and need some assistance.

I have attached a sample of a few tables from my database, Open Cases, Closed Cases, and Date Today. The Open and Closed tables change daily due to a Corporate download and contain several date fields which have different meanings. As new cases are opened, they go on the open table, and as an open case is closed, it moves to the closed table. The tbl_Date Today is pre-populated with dates of working days only. I have a query called "Count Of Shelf Comb" that counts the number of open cases as of today, which in truth is for all activity through the previous business day. What I want is to have a query that will show each date on the tbl_date today as well has what the total count of open cases was for that date......a permanent history of the amounts.

How can I accomplish this without using a "Make Table Query".

View 2 Replies View Related

Queries :: How To Set Up Trimester Query Instead Of Quarter For Historical Data

Nov 12, 2013

How to set up a trimester query instead of a quarter? DO I need to do it in VBA or can I do it as a criteria?

I am trying to query historical data into previous year trimesters. Jan-Apr, May-Aug, and Sept-Dec.

View 2 Replies View Related

Data Protection Vs Historical Data Help!!!

Jan 2, 2007

I need help

I created a tblcustomer/ tbljobs database for a charitable handyman service to record customer's details their multiple jobs and handyman. This worked fine until new reporting system was requested. and data protection issues were raised.

In order to differentiate between current active customers and old inactive customers in the database I used to flag in/active customers and this was okay.

Now I have been asked to remove personal identifying information from old customer records but still allow the customer id,sex,age,joindate,local authority and job types,dates,handyman,timetaken etc. to be analysed for regular reports.

I am wondering about using a history table updated by query that would keep all non identifiable active and inactive customer/job records used for reports seperate from the customer table used by the receptionist to book jobs and find customer info.

I could then use the history table to create reports on service use etc.

Can anybody tell me how to set this up. I have tried several ways but run into trouble when a deceased client is deleted from the active customer table I cannot get the history table to hold on to the info.

Paul the handyman

View 2 Replies View Related

More Efficient Query Design..

May 29, 2007

I have written a query to calculate how many hours we have worked for our clients. This has a number of sub-queries which sum to make different columns in the main query ie: Hours invoiced so far, Hours to be invoiced, Hours remaining from their allocation, etc.
I am refreshing the queries due to a design change and now have a question..

Which is the better design:

To have those sub-queries with selection criteria from a join to the same table in each (to filter out records at a lower level)
OR
To have that same selection criteria and join just once in the main query? (which of course means its processing many more records but the join to the selection criteria is specified once)

answers on a postcard please..

View 3 Replies View Related

Creating A More Efficient Search

Jul 13, 2006

please see the example attached, it is a very basic search, double clicking on the return number opens that record.

what i would like to do is show the account name and date is the same box.

below is the code that i use. can someone please someone help me incorporate something into it?

rivate Sub cmdSearch_Click()
On Error GoTo Err_cmdSearch_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "frmSearchReturn"
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_cmdSearch_Click:
Exit Sub
Option Compare Database
Option Explicit

Private Sub List2_DblClick(Cancel As Integer)
Dim rs As Object

DoCmd.OpenForm "frmquery"

Set rs = Forms!frmquery.Recordset.Clone
rs.FindFirst "[RETURN NUMBER] = " & Str(Nz(Me![List2], 0))
If Not rs.EOF Then Forms!frmquery.Bookmark = rs.Bookmark

DoCmd.Close acForm, Me.Name

End Sub

Private Sub TxtSearch_Change()

Dim vSearchString As String

vSearchString = Me.TxtSearch.Text
'Me.txtSearch2.Value = vSearchString
'Me.List2.Requery
'Err_cmdSearch_Click:



End Sub

View 14 Replies View Related

Tables :: How To Store Records

Mar 20, 2013

I have a table with with records that need to be captured for current and historical reporting. This is my table:

[Incident] [planned_end_date] [Report_Date}
1234 3/8/13 2/28/13
1234 3/8/13 3/1/13
1234 3/10/13 3/2/13

Then, on the next report dated 3/3/13 the incident may not be on the report because it is closed.

I need to be able to report on a count of incidents that meet different criteria at any point in time. I first made [Incident] and [planned_end_date] the PK but then when the [planned_end_date] changed it wouldn't be imported. If I have no PK all records will be imported and I would have the data I need but I think the table will grow too quickly (40 new records per day).

View 2 Replies View Related

Tables :: Calculate And Store Time From Dates?

Nov 11, 2012

We are collecting data from client files that have multiple dates (start_date, event1_date, event2_date, end_date.) For client protection purposes, we are absolutely not allowed to leave the facility with the actual dates. However, we want to know how many days have passed between each event. I thought about having the data collectors enter each date, have a calculated field store the time between dates, and then have the actual dates cleared when the record is saved or when the person moves to the next record.

View 14 Replies View Related

Best Ways To Store Data

Apr 12, 2006

Hi
I am creating a contact management database.

I have set it up and now need to create an invoice section. An invoice needs to be issued every month and is worked out on a percentage of works complete. For example in one job there may be 10 items of work and for 8 of these iems 25% of the work is complete and the other 2 no work has started.
Therefore my invoice needs to be able to calculate 25% of the value of the 8 items and work out a total price to be invoiced. Each time an invoice is created I need to be able to store the invoice value and the percent value of each item complete.
Does any one have any ideas as to a good way of doing this. That is if you can undersatnd what I am asking for. Thanks for any help.

View 2 Replies View Related

Where To Store Misc. Data?

Jun 30, 2005

I have a handful of misc. data that is unique an really doesn't fit anywhere... I need it to be easily updateable, as it will and needs to change from time to time, What should I do with it?

Some of the data is a "Common Footer" that prints on ALL reports and DOES change periodically. I decided to create a common footer table with a single value and can access it from all of my reports... it works great!

However, I now have a bunch of other misc. data that I need to store, like the "Working Year" (I am going to use the field to dictate which year of info to pull the data from) "Common Header", etc. Additionally, I am considering storing formatting data such as font size (still considering this).

So with all this explained, to sum it all up, what is the best method for handling all of this misc. data? I didn't think creating a separate table for each piece was the best idea.

Thanks for your suggestions!

View 1 Replies View Related

Default Data Store

Dec 8, 2006

I created a report database that rely's on both default data and user entered data. Unfortunately the default data is going to be different for each office and needs to be easily updated as needed. So I created a "default data table" and named it DefaultData_tbl; and has these field names in it:

Office
Phone
Address
Fax

The personnel Main form is run from the Main_tbl with the exception of the items above (which reside on the DefaultData_tbl). This default data then needs to be automatically applied into the Main_tbl, via the Main form, which has Main_tbl as it's data source. Then the user does not have to keep filling in these textboxes for each personnel entry (unless it is different for a particular reason; which they should be able to change as needed and then automatically revert back to the DefaultData_tbl for any future personnel inputs). A personnel report (to file in their personnel records) is printed and will also need to pull from this table the items listed above (unless it is changed by the user for that one person they were entering in). The report name is NIPRNet_rpt.

For instance:
Say the Office is "Marketing"...
Everywhere on the reports, tables and forms that asks for the office should automatically put "Marketing" in the spot.
Now, if I get someone who is working in Recieving today, I should be able to update those office boxes with "Receiving" (just this one time) which will also have to be updated on the Main_tbl and NIPRNet_rpt (but should NOT update the DefaultData_tbl).
Then it should automatically revert back to "Marketing" when I pull up a new user

Putting this information in the default data under properties works fine, but I am sending this out to all the offices and want them to be able to easily enter in their particular default data. I don't want to have to create 30 databases all with default data set in them already. Plus, if something changes, like their phone number, I want them to be able to update this in their default data form and it be updated for future use.

I tried putting this in the Office textbox on the Entry Form:
=[Tables]![DefaultData_tbl]![Office]
All I get in the textbox is "Name?"

I would make it a Label instead of a Textbox to associate it, but the user has to have the ability to easily change this default data inside the form as they are filling it out. This updated data is also needed to update the Main_tbl and the NIPRNet_rpt.

I am racking my brain trying to figure out what I am missing here. The DefaultData_tbl will not have more than one record in it; as all it is doing is storing the "initial setup" default data to be used in reports and forms. Anybody know what else I can try to get this to work?

View 1 Replies View Related

Efficient Way Of Setting Value Of A Textbox To The Result Of A Select Query

Apr 19, 2005

Anyone know an efficient way of setting the value of a textbox to the result of an sql query?

I am using the following, but it seems to be slow when populating a large form:

Make.RowSource = "SELECT BarcodeDATA.Make FROM (Customers RIGHT JOIN CustomerSales ON Customers.CustomerID = CustomerSales.CustomerID) LEFT JOIN BarcodeDATA ON CustomerSales.ItemNum = BarcodeDATA.ItemNum WHERE (((CustomerSales.ItemNum)=[Forms]![FormCheckConsignmentStatus]![ItemNum])); "

Make.Requery

Make.Value = Make.Column(0, 0)


Let me know if there is a better way to do this.

View 1 Replies View Related

Store Data From Query In Memory

Mar 11, 2006

Sorry if this is an elementary question, but here goes.

What I want to do is have Access run a query based on the user name "taken from a login screen". That query will return some values such as what team the Supervisor is responsible for, what days off his team has etc...

This information will be used to display all other queries that particular sup runs. When another sup signs in obviously the results will be different

And onto the problem

I have the query running and displaying the result in a datasheet view. I created this to see if the queries work. Now what I would like is to do away with this query (it pops up at startup) and have access save the user name in memory instead of running this query. I also need to figure out how to reference this "user name" piece of data, that will be in memory on the queries.

would appreciate any help you can give on this topic. I have been trying to solve this issue for a loooooong time.

thanks again,

Ricky

View 2 Replies View Related

Checkbox- Store Data In One Of 2 Fields

Jul 28, 2005

I would like to know if I can control what field the check box enters the -1 value in my record depending on a value from another field in that record.
In my table called workbook I have fields called, phone type which is a text field, wall and wm entry which are both yes/no fields. I want to put one check box on my form to check when a wall mount is needed for the device. The thing is there are two different wall mount sizes. So I need to check the phone type field on my form, if the value is ENTRY then I need to have it enter -1 in the WM Entry field. If the field anything other than ENTRY then the -1 value should go in the WALL field.
Can this be doen and how do I code it?

Thanks in advance

View 4 Replies View Related

Modules & VBA :: Use Default Value To Store Data

Apr 23, 2014

I'm trying to use a form to store some usefull data on my database.

I'm using the DefaultValue property of the TextBoxes in this code:

Code:
Sub Comando17_Click()
Testo4.DefaultValue = """sasso"""
Testo6.DefaultValue = """sdr"""
Testo0.DefaultValue = Testo0.Value
DoCmd.Save
End Sub

Comando17 is the name of the button to run the macro
Testo4, Testo6 and Testo0 are the names of my TextBoxes
sasso and sdr are the values I want to set as Default

When I run this macro it changes the DefaultValue property on VBA local variables and the Value property, but the DefaultValue on the form structure remains unchanged.

View 7 Replies View Related

Tables :: How To Get Information Inputted On Form To Store In Correct Table

Mar 4, 2014

I'm having some trouble getting my information that I input on my form to store in my correct table. I will attach my DB so you can take a look at what I have thus far.

Here is what I am wanting to do:

I have TblEmployee, TblEquipment and TblJunction and FrmTracking and FrmUpdate

I input the bulk of my information thru FrmTracking, my trouble is I can not seem to get the information that I input in my FrmTracking to store in the correct table. I can get the information to store in TblEmployee, however the information that I want to be stored in TblEquipment will not store in there.

View 14 Replies View Related

General :: How To Pull Data From One Table And Store It In Another

Nov 10, 2013

I am trying to add an attendance records to my database but cannot figure out how best to do it..I already have a 'children' table were all the kids info is stored and have created a 'roll' table.

i want to be able to open a form and search first and/or last name from the 'Children' table, then be able to save both first and last names and the date into the 'Roll' table. (then open reports etc later based on dates)how to pull data from one table and store it in another.

View 3 Replies View Related

How To Store ID On List Box But Show Related Data

Oct 10, 2012

I have 2 tables one, Contacts, primary key ContactID this table contains names, addresses etc and one group called Form primary key Form ID, foreign Key Contact ID. I want to store the related contact ID in my form but display firstname ad surname from Contaacts list. This works fine when I am selecting name. List box shows 2 columns with correct data but when I recall the form after making other entries it only displays the firstname. The correct ContactID is stored. Why does this happen.

If I can get this working I would like to concatenate the Firstname and surname to make it more readable but don't know where to begin.

View 3 Replies View Related

How Can I Store 500KB Text Data Into A Memo Field?

Oct 15, 2006

Hello,

The title says it. I want to store 500KB text data into a memo field. How can I do that?

Someone told me there is no limit on the size of a memo field, up to the maximum for a .mdb file of 2GB!!!

Your help would be greatly appeciated.

View 9 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved