New to Access, and having a heck of a time learning it...or rather learning how to correctly design databases.
All my expertise is with Excel. I'm creating a project where I use Excel to parse a non comma delimited text file, then feed certain figures into an Access database. This is all through VBA.
It wasn't until yesterday that I realized I had a problem. There are two text files with data that makes up one complete record. With what I already have built, and with what I have tought myself (ADO w/ VBA wise) I tought the easiest solution would be to create two tables that will hold the data from each respective text file. This is what I'm working with:
A store has a department with 5 areas of measurement that is collected daily. One complete record would be like this:
Date | Store | Dept | Sales | Cust Count | Item Count | Avg Price | Mix
...and there are (right now) 3 stores and 15 departments that are watched in this project. What I came up with for a table design was this. Fields with an "!" prefix reflects primary keys.
Table1 (using data from txt file 1): !Date | !Store | !Dept | Sales | Mix
Table2 (using data from txt file 2): !Date | !Store | !Dept | Cust Count | Item Count | Avg Price
In each table, I have to have a compound primary key to make up what is a unique record. I just learned I could use a compound index and an autonumber as my primary key. Either way, I'm using the 3 primary keys in each table with a 1 to 1 relationship. This seems to work if I make a query.
Now, will the way I did it hold up? Is there a better, more correct way to do it?
I need to display the year, Date, agent name, amount field, note and sub total for each year.I need to write the SQL query code in VBA and i designed the report with proper field positions.
YEAR column: Display Value only once for the FIRST ROW for Maximum value of Date field value for each set of YEAR. If it has only one record, it display that year.SUB TOTAL Column: Display Total Value for Amount field only once for the LAST ROW of each set of year record (Mininum value of year). How to make it available the values for first and last record alone ?
I just wrote my SQL code based on your inputs in my editor..Based on the input from Plog (from this forum), i wrote a code which listed below.
Code: Private Sub Report_Open(Cancel As Integer) Me.RecordSource = "SELECT CessioneCredito.Anno, CessioneCredito.Data_Movimento, CessioneCredito.Note_Liq_Cessione_Credito, CessioneCredito.Importo, " & _ " Agenzie.Denominazione, DCount("[Anno]","CessioneCredito","[Anno]=" & [Anno]) AS GroupSize,
[Code] ....
While saving it, it shows the code in RED COLOR due to compilation error.As I am writing the query in Me.Recordsource = "SQL query", where i should place the below listed code in the query as per Plog???
Change the Year Control Source to this: =IIf([GroupPos]=1,[Year]) Change the GroupTotal Control Source to this: =IIf([GroupPos]=[GroupSize],[GroupTotal])
If this is not possible in Me.recordsource, then its advisable to use recordset like writing in two different queries.
Code: Dim ds1 As Recordset Dim ds2 As Recordset myquery1 = "SELECT CessioneCredito.ID_Agente, CessioneCredito.Data_Movimento, CessioneCredito.Importo, CessioneCredito.Anno, CessioneCredito.Note_Liq_Cessione_Credito, Agenzie.Denominazione FROM CessioneCredito INNER JOIN Agenzie ON CessioneCredito.ID_Agente=Agenzie.ID_agenzia WHERE (((CessioneCredito.ID_Agente)=[Reports]![R_StoricoCessCredAg]![ID_Agente]))"
Hi, I was asked to help create a very simple Access DB for a small restaurant to help them keep track of inventory.
The only things that the owner wants to keep track of are: 1.Item Catalog 2.Date and Quantity of Item IN or OUT 3.Current # of Items
My problem here is that there are 5 Item categories, each with a relatively lost list of Items under each one. 1.Drinks 2.Ice Cream 3.Kitchen Supplies 4.Grocery 5.Etc.
Will it be advisable for me to create an Item Catalog TABLE for each of the category instead of piling all the Items into just one Item Catalog TABLE?
The Designs I’m currently considering are:
A.)
TABLE SET 1 : Catalog of Items Fields (ID, Name) •TABLE Drinks •TABLE Ice Cream •TABLE Kitchen Supplies •TABLE Grocery •TABLE ETC --------------------------------------------------- TABLE SET 2 : Movement IN/OUT of Items Fields (Movement ID, Name, Date, IN-Amount, OUT-Amount) •TABLE Drinks •TABLE Ice Cream •TABLE Kitchen Supplies •TABLE Grocery •TABLE ETC
B.) TABLE 1: Catalog of Items Fields (ID, Category, Name)
TABLE 2: Movement IN/OUT of Items Fields (Movement ID, Name, Category, Date, IN-Amount, OUT-Amount)
I’m really more inclined to choice A because I just re-learned Access last month and will be creating my first serious database just now. I don’t want to choose a more complex table structure (choice B) that might cause problems with the DB later (as it will really be used to keep track of real-life inventory and might screw up their operations if it goes haywire). Is Design A viable? Or flawed?
Another question I have is with the structure of the Movement – IN/OUT table. Is this workable? My thought is just to let the user enter something like:
In the database, then compute current Quantity of the Item using a query (Sum[IN] – Sum[OUT]) . Will this work? I’m a bit apprehensive with this because I’m thinking I should have another TABLE that will store the actual inventory Quantity instead of the Quantity just being computed through query. But doing another TABLE for Quantity does complicate stuff a lot since it will have to determine which Quantity value gets added to or subtracted from based on many criteria. Will it be OK just to use the query to compute Quantity left?
Hello All, At work we have a large and messy Contacts list so I decided to set one up using a database. At present I have 3 tables:- Companies (custID,companyname,address,etc) People (nameID,firstname,middlename,lastname,custID) Phones (phoneID,phonetype,areacode,number,?????)
My problem is this, Some of the phone nos belong to the individuals and some belong to the company. If a person is replaced at a company I need to reasign the company phone nos to the new person whilst retaining the individuals and their personal phone nos. If a company is deleted I need to delete only the company phone nos. and if a person moves within the company I want the company nos to reasign to the new replacement but keep the personal nos of the individual. Now I see its going to be more complex than I thought.
Can anyone help me with the table layout and links. (nb this is only a simple database relating a person to a company without using departments etc.) Its main use is to provide phone nos names and addresses quickly. Many Thanks Peter
Sorry about this but I have two forms in a split database, one for data entry, one for data editing. The underlying record source is a query pulling data from multiple tables which worked fine until we had to move the backend of the application. Now whenever anyone opens the data entry form (add mode only) there are no fields on the report for them to complete; they are confronted with a blank screen. The data editing one works fine, but this one cannot be put onto general access because only four people out of about 25 are allowed to edit the data.
And I thought this would be easy. I am trying to make a db of storytelling kits for my workplace. I thought it would be easy. 3 tables. Link. Make a form with the kit details and 2 subforms where I'd enter all the books for each kit and all the activities associated with the kit. Each page would show only the books/activites that the kit contained. Pfft. None of that worked so I'm going to be a real dummy and ask what to do with my relationships. So far I have
Book -ID -Title -Author -Format (lookup table to another table)
Activity -ID -Name -Description -Materials -Age Group
Format -Description
Format is linked to book (cause it was just so I could have an easily updated lookup). Activity and Book are both linked to Kit. Each kit has many activites and many books (fine) and I'm tempted to just leave it as each book only has one kit (even though that may not be the case in the future). How do I set it up so that it works? I enforced referential integrity but that screwed up my form by telling me that I couldn't enter data into the kit area until I'd entered it into the book area which was useless as we enter the kit details and then find things to add to it.
Any ideas...just in general. Sorry to be a pain yet again.
I recently created a database and installed buttons to properly close the database to avoid coruption of files etc. However I could not find a way to eliminate the X button in the upper right corner of access. Today my dbase crashed, I presume because someone did not use the buttons I installed, and just closed using the X in the upper right corner of access. The database is on a network, and was not password protected at the time. It will be when it is restored, however I would still like to know if there is a way to eliminate the x button in the upper right hand corner so that users will have to use the buttons created to properly close the database.
This is kind of a weird question. I downloaded and imported a table with cities and zip codes in it. All the city names are in upper case. I want to use the city names in that table as the row source for my City text box.
But in my database, I store city names in Proper Case, with just the first letter capitalized. So when I use the table as the row source, it pulls in the city name all in upper case
Is there a way, either within Access or not, to change the city names in that table to Proper Case?
Is there a way to correct an address field to Proper using a query? I have existing data with various formats. I am not able to correct it, but would like to create a new table using the data but with proper format. I do not write code.
Does anyone know how I can use the Proper Function in an append query.
I have a field whereby all the data is in UPPER case, but I only want the first character of each word to be upper case.
I have looked up the Proper function, which should do the job, but when I apply it in the specified field I get an "Undefined function "Proper" in expresssion message
my expresssion is as follows: salutation: Proper([strSalutation])
I hoping someone might know what expression I need to create to convert text in a field in an append query to proper case.
The reason for this is that I am receiving data in all uppercase and really need it to be in proper case, that is only the first character of each word in the field is capitalised.
A field name for instance is strProductDescription and I want the data to change from "FRIDGE FREEZER" to "Fridge Freezer" on appending the data to another table, hence a proper case function or expresssion.
(I use the sample database "Northwind" for my question)
I wish to do as follows: I added a field to the "customers" table, and name it "customer status". This field should be updated by update query as follows: I wish that for each customer that his total purchases wil be calculated through the "order details" table. If I multiply the "unitprice" in "quantity". I know how to make totals query, so I can see the total amount of orders per customers.
I wish that the "status" field will be update as follows: if the total amount per customer is higher than 100,000 the status will be update to "Gold Customer", if it is between 50,000 and 100,000 it will be updated to "Silver Customer" and the rest will be update to "Standard Customer"
I am trying to build a DB to fix movie folders and file names and I am struggling to properly find the file names.
Currently I am using "DirectoryName = Dir(folder, vbDirectory)" to find the files and loop through them correcting the names as I go.
Works perfect.
The issue I am having is how to properly then look up the file within the folder since Dir is already in use for the loop.
The straightforward question is how does one look-up a child file when the parent is known without using Dir().
Below is what is works to rename parent folders. I am sure it is hack to the trained eye but it gets the job done.
folder = "E:Videos" DirectoryName = Dir(folder, vbDirectory) Do Until DirectoryName = "" If DirectoryName <> "." And DirectoryName <> ".." Then If (GetAttr(folder & DirectoryName) And vbDirectory) = vbDirectory Then
I have a table which contains information about personnel. There are several fields which I want to have consistent values inputted. For example, somebody might populate the "State" field with: California, CA, Ca, or C.A. To avoid this, I created a seperate lookup table with a list of all states, fully spelled out, and the digraph abreviation associated with each state. The digraph is the primary key for this new table. In all, I have 12 such lookup tables.
Having all these extra tables, while nice for clarity sake, seems excessive. In most cases, the lookup tables really only require one column, though I've always used a minimum of two (one is an acronym set as the primary key, and one is a fully spelled out description). I'm finding the primary key is often not useful to somebody reading the data; the full description is much better.Could I have one catch all lookup table which combines all of the standardized fields which I want to use, and have no primary key for said table?
Is there a proper time? Or is it just anytime after you create the tables. Just wondering? I’m about to deliver part of a project today so they can start entering data. Much of the development is yet to come. Should this be split?
I have a field (date field) that when I try to imput data will tell me that that what is being imputted is not in the correct formate or to large for the field settings. It is in the right formate etc. Is the field size applicable to just that field or overall everything entered in that field in the whole database? It's a decient size data base and I'm wondering if everything in that field is over the size, but then how can that be?
I have updated my copy of a database which included updates to a number of forms. I now want to import those changes into the proper database, so I used the Import function. I didnt get any errors when I imported everything, but the forms do not work as they did in my copy of the database.
One of the forms that dont work comprises of a number of drop down boxes, I have updated these so that the user has a filtered selection, to do this I put an SQL function in the Row Source property. This SQL function has been copied over correctly in the imported form, in fact when I go into the form in design view to check this fact then revert it back to normal view (after having not changed anything) it then works and all the other drop down boxes that didnt work on that form now work! How can viewing a form in design view and not changing anything make it now work?
So I could go into each form in the design view, check the Row Source property, then revert back to normal view and it would solve the problem of my forms not working, but, this database that I am importing the forms into is the back end of a split database and the first thing that the front end of the database does is import the changed objects into its database but the forms dont work.I have made changes in this way before and not had any problems before.
I have attachments I want to store in my database, most are images, some are excel files, etc. I'm sure its better to store a reference to the file instead of the attachment itself. Whats the best way to do something like this? Id like the attachment to still be displayed in the form if its an image...
I am trying to change all the fields of a table from All Caps to Propercase. I have used strconv propercase before, however only on a field by field basis. I have about 5 or tables that I have to do this to and am trying to save the typing. I know I can do this with a recordset (easily in asp), but am not familar enough to do this in vba. Can you do a for each fld, like in asp, or am I going at this the totally wrong way. I tried using an update query with the *, but access doesn't like that too much. Any help is greatly appreciated.
I can't seem to figure out the proper syntax for the FindFirst method. I am using several variations of this effort:
Dim dbs As dao.Database Dim rst As dao.Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset("tblInvoice", dbOpenDynaset) rst.FindFirst "rst!ID = frmInvoice!txtID"
I get an error message that says that Access doesn't recognize rst.ID as a valid field. But, it most certainly is. I tried substituting tblInvoice but got the same error.
I would like to know in what type of working environment everyone works. i.e. an office with a closed door, a cubicle with high walls, shared cubicle, low-walled cubicle.
I have a field in a Contacts table called Referred By. I also have a separate table called Referred By which contains a numeric ID and a value for each Referrer. When I enter data into the Contacts table, I want the Referred By field to have a down arrow so that I can select the appropriate value. The Referred By table has 2 fields -- ID (AutoNumber) and Referred By (Long Text). There are currently 5 values in the Referred By Table.
I now understand that when opening and saving crosstab queries Access (2010) runs that query to ascertain the column names. Unless you hard-code them. Running the query takes at least 20 minutes. I have hard-coded where I can, but one report takes arbitrary dates so I can't hard-code them.
I believe that turning off AutoCorrect might make a difference to whether the query runs - but I don't want to turn it off.