I have a table called tblCompanies. When a company acquires another company, I need a method by which the acquired company's CompanyID (PK) can be updated to the new company's CompanyID (PK). I also need to be able to update all related CompanyIDs (FKs) to the new value in related tables.
In cases in which the new company does not have an existing record, there is no problem: the company name simply gets changed to the new company and the existing CompanyID is maintained. I then use an audit table and Track Changes function to keep track of the company name data and a union query to keep the old names in the selection lists.
The problem is when both companies already have existing records in the table.
So, let's say I have records for Company A and Company B. Company A merges with Company B and Company B is now the main record. What is the best, simplest and easiest way to update the CompanyID (PK) from A to B and change the CompanyID (FK) to the new value in all related tables?
I am envisioning a pop-up form that directs the user to select the new company and then an update query happens behind the scenes... but exactly how does the criteria for the update query get selected and how do all the related tables get updated? My vba skills are pretty basic, will I need extensive coding to do something like this?
i want to be able to create an On Click Event when pushing a command button that will run an Update query to update a record and after it has been updated that specific record will pop up on a Form and be displayed. i know a different way is to run the Update query and then have it displayed in a Select query but i want it to be displayed on a Form instead. is it possible?
I need a way to dynamically store a particular value in "field_2" of the CURRENT record depending on whether or not the value of "field_1" of the CURRENT record is identical to the value of "field_1" of the PREVIOUS record within the same table. The table is sorted on "field_1".
So, if the value of "field_1" in the CURRENT record is "ABC" and the value of "field_1" in the PREVIOUS record is also "ABC", then store a value of "PPP" in "field_2" of the current record. IF on the other hand, the value of "field_1" in the CURRENT record is "ABC" and the value of "field_1" in the PREVIOUS record is "XYZ", then store a value of "WWW" in "field_2" of the current record.
I have a report that will use these results to count only the number of records that have a "WWW" in "field_2".
Is this doable, maybe in a query somehow?
I should add that whatever the solution, it needs to be compatible with Access 2000.
I am trying to remove random characters from a field. The field [assycode] contains a string similar to say, FGEJBF1 or ABFGYRUKC I want to remove any occurrence of "F1" normally at the end of the string but not always at the end. I used: Like "*f1*" to find the correct records, that worked fine, I then used [Assycode]-" f1" in the update to box, It wants to update 146 records I click ok then it says It couldn't due to a type conversion error. Just messing around I tried adding "F1" to these records using [Assycode]+" f1" and it worked fine. Can anyone point me in the right direction?
I have a record which is updated by customer services dept. for collection of container. Every time we received the collection alert from client we update into system. Sometimes we got more than one collection alert per day. Although the Job No is same but the Date Received the Time Received is different.
Example :
ID Job No Date Time -------------------------------- 1 1000 1-8-2005 8:00 2 1000 1-8-2005 8:30 3 1000 2-8-2005 8:30 4 1001 1-8-2005 9:00 5 1001 1-8-2005 9:30
I just want the last update of data and the result shuld be
ID Job No Date Time -------------------------------- 3 1000 2-8-2005 8:30 5 1001 1-8-2005 9:30
Don't know if this is possible, or if im being just plain stoopid:
Is there a vb command that will update a record without having to use a query?
My problem is this - I have an HR database which has allows us to add employees that are going to start. We then set their [Activity Status] from "Starting" to "Active". At the moment this is done manually, but what i would like to do is have this automatically change when the [Start Date] = Date().
The code i tried to use (but is obviously wrong) is:
If [Activity Status] = "starting" And [Start Date] < Date Then Set [Activity Status] = "Active" End Sub
Any thoughts what i might change "Set" to, to make this work?
I hope I can convey what I am trying to figure out. I am at a loss right now. I have a form where I input personnel information. One of the fields is for how many months experience they have with the program. What i would like is for this record to update itself every month. for example, if they initially had 2 months experience, I would enter 2. Every month therafter, that number with change to 3, 4, 5...etc. Not everyone comes to our section with the same experience, so most will have a different starting number.
This information would be seen on the personnel form, and in a report to show experience levels. Other than those two, it is not called upon.
I have a table with over 700 contact records, when I open contact form and select the contact I to want update , it only updates the first row in the table message "you about to update 1 row(s)"
table set up ContactID is the PK autonumber
please advice
AA
Private Sub Update_Click() ' Dim QrySQL As String On Error GoTo Err_Handler
Hello all! I'm using a form in data entry mode to add new orders into a table. When the Save button is pressed, an append query posts the order number and date to another table, and then enables a subform for data in that table. The subform is linked to the main form by the order and date to get only the record that was just entered/created.
While the subform does display the desired record, the user cannot update other fields in that table through the subform. I've searched all over the forums, and I'm probably missing something really simple. I've tried turning data entry on and off, changing different subform properties but to no avail. I can filter out the proper record on the subform, I just can't update it! Any help would be much appreciated. Thanks!
I am a relative Newbie so if my question sounds stupid, bear with me:
I have a form with a subform linked to a query.
On the subform i have a checkbox[Recieved] and when checked adds a date to another field [Year] on the subform which in turn updates the record in a table[Orders].
I then click a command button on the form which runs a crosstab query based on the updated fields in the table [Orders].
This works well except for the last record ammended which does not update the [Year] field in the table [Orders]. When the command button is clicked it is still the current record in the subform.
clicking another record in the subform solves this or closing the form and reopening it before running the crosstab query.
Is there an easier way to automate the update? So that the user does not have to select another record first.
Been away from access db's for a couple of years and have suddenly job i have to do, and of course the client wants it finished yesterday :rolleyes:
Anyway, my problem is that i have a simple form with suppier details in it - and a combo box which shows the products that that supplier has. The combo box runs on a custom query object i created that matches the supplierID's. Simple!
But for some reason when i change the supplier record, the combo box doesn't with the new list of products. The dynamic QUERY updates just fine, if i check it, however these results aren't reflected in the listbox.
If i use a subform, then that updates just fine. Alas, not the list box, though.
I must be forgetting something simple! Is there some kind of update event i have to create?
I have a form(F_Roll) that runs from a query(Q_roll) which asks the user to input the date. New records are made from this form, and it also allows the user to look at the records from past dates. On this form, my next button creates a new record for that date and fills a field called "RollNumber" with a running counter based on the CurrentRecord. If no roll is present for that date, "RollNumber"=1. If the "Next" button is pushed and "RollNumber"=1, then on the next record, "RollNumber" is filled with 2. If 2 then 3,etc. "RollNumber" is my primary key for the table(T_Roll), and actually, I have the date in front of the counter. The data in "RollNumber" is like "071206-1", "071206-2", "071206-3", "071206-4", etc. What I want to do is have a button on my main form(F_Roll) that will open a new modal, pop-up form on top of my main form that allows the user to enter data for the next record(roll) while still on the current record(roll). I can get it to work if the next record(roll) has already been made. But if I make a new record through the pop-up form and then try to goto the next record I my main form, I get a primary key error about making duplicate primary keys when trying to save the record. The problem is(I think)- The query for the main form has already ran, so it doesn't recognize the new record made from the pop-up form. When the next button is pushed, it is creating a duplicate record(roll) in the primary key. Does anyone have any ideas how to work around this? I am using Access 2003
I need to know how to check if there is a record set matching a name and insert record if there is not one, otherwise just update if a record does match. See code: Code:<%Name = request.form("name")picture = request.form("picture") opencnset rs = Server.CreateObject("ADODB.RecordSet")'if no record matches the nameSQL1= "INSERT INTO background (Name, Picture) VALUES ('" & name & "', '" & picture & "')"'elseSQL1= "UPDATE background SET Picture = '" & picture & "' WHERE Name= '" & name & "'"cn.Execute SQL1closeCN%> Thanks in advance for any help you all can provide!!!! -Chris Gordon
I've recently come across a problem whilst saving an edited record..I get the following message but only sometimes..could not update currently locked by another session on this machine..Sometimes the record saves without a problem (mainly on the first edit). However, any further edits of the same record mainly but not always triggers the above message. I can't work out why it's happening, It's a split database but I'm the only user on a standalone PC (so no other users editing the same record). Sometimes I get lucky and the record save even after the first edit but not always. There doesn't seem to be any pattern.
Record locks for the form are set to NO LOCKS Recordset type is set to DYNASET In settings - Default open mode it set to SHARED Default record locking is set to NO LOCKS Open database by using record-level locking IS CHECKED
This has been working fine for years so I'm a little stumped as to why it should happen now. The only thing I've changed recently is a memo field from Plain text to Rich text.Whilst writing this I just went back and double checked and found that if I change any other field (not the memo field) the record saved just fine. So the problem is to do with the Rich Text memo field only.
I have a table called [Tasks] which has the following relevant fields:
[Task ID] [Location]
I have a form that people use to create new tasks and update current ones. Location on the form is a combo box where people can pick from 5-6 different locations.
After someone selects a new location from the combo box and changes the task location, I want to create a new record in a table called [Task Progress] with the [Task ID] of the task whose location was changed, the new [Location], and the [Date] and [Time] it was changed. It would look like
Code: [Progress ID] [Task ID] [Location] [Date] [Time] 1 5 Station 1 1/1/2011 12:13:01 2 8 Station 2 1/3/2011 01:53:29 3 5 Station 2 1/5/2011 11:13:05 4 5 Station 3 1/6/2011 12:35:22
What should I put in the AfterUpdate event for the [Location] combobox to make the above happen?
Note: All my tables are ODBC linked to SQL Server (can't use data macros).
I have a form with multiple fields on it. We will call them SLO
They are text boxes and there are 6 of them named SLO1, SLO2.....SLO6
What I want to do, is use VB to update each as a string to a table individually. But Id like to only type the code once, and use a DO WHILE and increase the value by one. Example.
Current Code looks like this:
Private Sub UpdateButton_Click() Set rstNewInventoryDataRecord = CurrentDb.OpenRecordset("Select * FROM MetricData") Set CurrentForm = Screen.ActiveForm Dim Counter As Integer Counter = 1 rstNewInventoryDataRecord.AddNew rstNewInventoryDataRecord.SLO = CurrentForm.SLOT1.Caption rstNewInventoryDataRecord.Update MsgBox "Update Complete" End Sub
What I want to do is use the counter to increase by one after each loop and stop after 6. So...Do while Counter < 7
And increase the CurrentForm.SLOT1.Caption by one each time.
I have a simple question on the usage of an Access project by multiple users.
1. Is it possible to store and reflect information in the project about which user updated or deleted information to any field/record in the project?
2. What would be a nice way to communicate to other users when they log in that such-and-such field record was updated/deleted by such-an-such user at xxx (date/time).?
The Database is not split. Have 30 some users. Here is what I am trying to do.
I have Mary, Sam and Bill logged into the database.
When Mary signs in she has no records to update, but when Sam and Bill logs in they have records to update.
How can I get a message just to Sam and Bill, but not to Mary?
I have a qry what records needs to be updated.
Just how would I go about this? I thought I had it when I use the "environ" but that just shows who is logged in. I am sure the form has something, but I haven't found out where.
The last version of Access I've used was 97 but I'm getting back into it. I've read a couple of things that recommend creating a form based on a query, not a table, especially if a calculated field is involved.
When I create a select query based on 1 table, I can change/add/delete records right in the results of the select query, which will carry over to the form just fine.
However, when I use an additional table and join them in my select query, I can no longer update any of the fields that show in the query result. The link I'm using is just a 1 to 1.
How can I get around this? I'm using the second table just for lookup purposes (use the value of one of the fields in a calculation), but I want to be able to update the fields from table 1 from the form.
The uploaded database has two main forms. The first is used to enter customer data, the second runs from a query and shows all those records that have been completed in the first form (frmCustInfo - AgentLog = Yes) but not completed in the second form (frmControlsSource - AnalystLog = No)
Then more data is input into one of the subforms (frmControlChecks). Now in order for me to see the results of the queries connected to two other subforms I have to move off the record and back to it (for the record to be saved and then the queries run)
After moving back to the record, the query results on the right (Information Only) are manually added to the last subform 'Input Two', then the user would move on to the next record and do the same. ------------------------------------------------------------------------------------------------------------- What I need it to do then is this: When the user tabs off the last field in the subform (frmControlChecks), the queries to the right (two subforms) would run, showing the results and also populating the last subform (frmAnalystInput)
The user would then click AnalystLog and move to the next record.
I hope this is possible without redoing the forms/queries because it's taken ages to get this far
I've also added info in this sample database and some working data if you want to take a look...thanks for any help
First of all....my first access database and I'm still a VB newbie...so my apologies if this is a stupid question. I tried searching the web and this forum but could'nt find what I was looking for.
Basically, I am developing an authentication script for a training tutorial. The user either logs in with there existing info, or prior creates a new record. When they login they also select a team (eg Team 1, 2, 3, 4, admin and so on). This is selected from a combo box - the teams are on their own table.
I have another table storing the user info - name, password, the users team...and so on. When they log in and the team selected does not match the team in 'tblusers' - I want access to change the record to reflect the new team.
Can anyone help me with the code to make this happen? So far I have -
If Me.defineteam.Value <> DLookup("Team", "tblusers") Then MsgBox "You have changed team. This will now be updated", vbOKOnly, "Required Data" GoTo verifypassword: End If
This authenticates the team....I just don't know how to replace the one in the record with the value in the combobox.
Hi, on a database I created with probably over one hundred fields in it I have one text box called update. What I want is if ANY of the fields are altered it then updates the "update" field with date and time. At the moment I have started altering every field with creating an event proceedure in the "on change" entry which reads as below for a change to text5 box. (text141 is the update field)
Private Sub Text5_Change() [Text141] = Now() End Sub
Now, although this works; as you can imagine it's very time consuming going through every single field I have puting this proceedure in place. My question.....Is there a much simpler way of making this "update" field change if any part of the record gets altered ?????
Hope this isnt confusing.
I should add that each record has about 4 tabs(pages) too, so the overall record is spread over all this too. I need something that knows that anything is altered on the record and so update the "update" field
I have a small problem: I just want my form to update the current record because I'm opening (with a button) a second form which uses the values of some of its table fields. If I open 2nd form without updating, it will use old values, and if the record I was worknig with is a NEW record, 2nd form simply can't find it because it's not been written! So: 1. I want to tell the button to UPDATE record before opening the 2nd form. 2. In addition, I could want to go to 2nd form DIRECTLY from the same field I want to update and use in 2nd form (through a Keypress event instead of a button), but this is more difficuolt because I still didn't EXIT from the field but I already want to use the text manually updated in the field... any idea?
Having a bit of a problem with a 'cattery management' database I'm working on, wonder if anyone can suggest anything pls...
From the main form "OwnersAndCats" (Main table from 'tblOwners', subform from 'tblCats') the user can either add a new cat for a current owner or a new owner, both of which are popup forms.
If the user adds a new cat to the currently selected owner, when they save and close the data entry popup form 'AddCat' I want the main form "OwnersAndCats" to be updated with the newly added cat and the form to display the owner which has just had the cat added.
If the user adds a new owner, they can either just add an owner and return to the main form or go on to add cats before returning - but either way I want the same thing to happen, ie the end result is having the main form "OwnersAndCats" displayed at the record which has just been added.
The problem I'm having is like this. The code below seems to work perfectly if I add a new cat to one of the six sample owners I imported to the table 'tblOwners' from an excel spreadsheet, but when I try it on newly created owners I get the message 'You cant go to the specified record'. Even after I get this message when trying it on one of the newly created owners I can go back to adding a cat for one of the original six and it works perfectly.
I also get the same message when I try to create a new owner then close out back to the main form. I'm sure it must be a very simple thing I'm doing wrong so if anyone can spot the mistake I'd really appreciate it! In fact if anyone can even suggest an easier way to achieve what I'm trying to do that'd also be very useful - the code's untidy I know, but I am very much a novice still - the only reason I've used the method below to show an updated form is because I'm led to believe you can't just close a popup form and simply refresh the main one behind it...
Here's the code for btnACSave on form "AddCat"
Private Sub btnACSave_Click()
Dim stDocName As String Dim stDocName2 As String stDocName = "OwnersAndCats" stDocName2 = "AddCat"
YesNo = MsgBox("This cat has been added successfully, do you want to add another cat for this owner?", vbYesNo + vbQuestion, "Add More Cats?") Select Case YesNo Case vbYes DoCmd.GoToRecord , , acNext Case vbNo Select Case stFormName Case "OwnersAndCats" DoCmd.Close acForm, stDocName2 DoCmd.Close acForm, stDocName DoCmd.OpenForm stDocName DoCmd.GoToRecord acDataForm, stDocName, acGoTo, stLinkOwnerID Case Else Call Init_Globals(Me, OwnerID) DoCmd.Close End Select End Select
YesNo = MsgBox("The owner has been added successfully, do you want to add a cat(s) now for this owner?", vbYesNo + vbQuestion, "Add Cats?") Select Case YesNo Case vbYes Call Init_Globals(Me, OwnerID) stLinkCriteria = "[OwnerID]=" & stLinkOwnerID DoCmd.OpenForm stDocName3, , , stLinkCriteria Case vbNo YesNo = MsgBox("Do you want to add another owner?", vbYesNo + vbQuestion, "Add More Owners?") Select Case YesNo Case vbYes DoCmd.GoToRecord , , acNext Case vbNo Select Case stFormName Case "OwnersAndCats", "AddCat" DoCmd.Close acForm, stDocName2 DoCmd.Close acForm, stDocName DoCmd.OpenForm stDocName DoCmd.GoToRecord acDataForm, stDocName, acGoTo, stLinkOwnerID Case Else DoCmd.Close End Select End Select End Select
I have a combo box at the top of a form which is used to find records. When new records are added using the form, they do not show up in the combo box until the form has been closed and reopened.
Can anyone tell me how I can requery the combo box to ensure that it does list newly entered records?