Modules & VBA :: Recordset Adds New Record Into Subform But On Save Nothing Added To Table
Nov 5, 2014
I am adding new record into subform via recordsetclone method. The problem is that record is added but on save it does not appear in the table. If add this record manual using subform everything works. When record added manually update of the record works fine.
C
'Add Wastage value to flooring area section
Private Sub Wastage_AfterUpdate()
Dim rsFlArea As DAO.Recordset
Dim Wastage As Double
Dim Item As String
Set rsFlArea = Me.OrderFloorAreaEdit.Form.RecordsetClone
I have a subform that stays in data sheet view for entry, the form this sits on is launched by a macro. This macro on the main form launches the form and adds in the linking numbers by a setvalue. The main form has the linked number on it and this number is then linked by master and child to the subform. The problem comes in when you start adding in data. The line of data is filled by using combo boxes and some text fields and ends with a time/date stamp Now(). The problem is, even if you dont fill the entire line if a user refreshes or closes the form it adds a blank entry with the linking number but all fields blank.
Special situation: The SQL Server Linked Server across the country is linked to a Read Only Oracle DB. This data pull works perfectly and populates the Subform.
The problem is that Oracle can take 3 to 6 seconds to retrieve the single record depending on the network traffic through a small pipe.
The code below shows the RecordSource for the SubForm. clicking on a list box supplies the value. Then 3 to 6 seconds later, the subform populates.
The actual Recordset for this Recordsource is needed to conduct Validation on each field. Normally this would be on SQL Server, I might just create a Recordset Oject and run this SQL statement again in 1 milisecond. In this case, it will probably take an additional 3 to 6 seconds. Avoiding another lengthy round-trip to Oracle would be prefered.
Goal: How does one grab, clone, or other wise reference the existing recordset for the SubForm?
Note: Immediate Window - One single field can be returned quickly
There are 48 fields that need validation - is there a way to reference the entire recordset?
Immediate Window during Break Mode: ? me.fsubsrNavSHLBHL("NavSH_QQ") NESE ' this is the correct value for the current recordsource
Set a breakpoint right after the line: fsubsrNavSHLBHL.Form.RecordSource = "Select * from vsrNavigatorSHLBHL where Well_ID =" & txtNavWellID.Value
Immediate Window: ? me.fsubsrNavSHLBHL.Form.RecordSource Select * from vsrNavigatorSHLBHL where Well_ID =91229
I have a subform that is filtered by a textbox on the main form. Is there any way I can add a timestamp to a record on the subform when a user changes anything on that record?
I've tried the Macro that is listed on Microsoft's website regarding timestamps, but I had serious issues implementing that to a subform.
I have got this form, consisting of 1 form (that needs to add a new record to a table everytime) and 1 subform, that needs to show the last three records of the table.
My problem is that I cannot get it right, now both forms (form and subform) are showing the details on just one record. If I open my subform it shows me all the records of a table, but in as soon as I view the form as a subform I shows me only one record.
Any help is welcome, I attached my db, just in case....
I have an ODBC link in an Access 2002 d/b to an AS400 table (with the ODBC refresh interval set to 10 seconds) and as the data changes, the data in form view changes just fine and dandy, thank you very much. However, when a new record gets added to the AS400 physical file, the recordset doesnt update to show this, even if I use records>refresh. I have to close the form down and re-open it to see the new record. Is there a method to achieve this?
I have an Access 2010-form which inserts a record in a MS SQL 2008-database by using an ADODB-connection. I need to retrieve the primary key of the newly added record.
With code at the bottom I create a SQL-string which is stored in variable strSQL. If I execute the SQL-string directly in a MS SQL 2008 Query Window, the record is inserted and the MS SQL 2008-result pane shows a column "ID" with the primary key of the newly added record.
If I execute same SQL-string in MS Access 2010 the record is inserted. However, the code fails on Debug.Print rs![ID] with error "Item cannot be found in the collection corresponding to the requested name or ordinal". Same error appears if I use Debug.Print rs.Fields(0). I've enable the reference "Microsoft ActiveX Data Objects 2.8 Library". It looks as the recordset rs is closed as soon the command "Set rs = cn.Execute(strSQL)" finished.
Why I can't retrieve the Primary Key with VBA-code below?
Code: Private Sub cmdSave_Click() dim cn As ADODB.Connection dim rs As ADODB.Recordset set cn=New ADODB.Connection
I have an employee and asset database. If an employee gets fired, I need remove them from the general employee records, but I want to save a record of that employee. Is there a way to delete an employee from one table and have it automatically added to another table?
Table has a relationship with master table. Joined on TractID primary table - auto number, TractID child table - number. This works as it should when adding a new record.
What I am trying to do is create a new key for each new record added in the child table with an ID that looks like this: TractID.A, TractID.B, TractID.C etc. for each new record added in the child table. if so where do I look, how to accomplish it?
I am wondering if it is possible to automatically create a new field in one table whenever a new record is entered in another table. The name of the field would be the primary key entry of that new record.
I have one table (table 1) in which each record corresponds to a particular mouse with a unique ID number, and each field is the ID number of a particular genetic marker. The table overall shows what genotype (+ or -) a mouse has at each marker.
In the other table (table 2) the primary key of each record is the ID number of a genetic marker, and the fields are several different bits of information about the marker (e.g. what chromosome it's on, its location on the chomosome, etc.)
I would like to have it set up so that if I enter a new genetic marker in table 2 a field named after its marker ID will automatically appear in table 1. Is there a way to do this?
I was wanting to know if there is a way to Add the Username to a table as a default value when a new record is added. I know you can add =Date() to get the date. Is there a simple way to get the ID of the person logged into Window?
I have a table A in which I write down orders for cars. A record is an order. A single order may contain multiple cars in varying quantities.Each car has its components. Some cars may have some of their components common. There is a table B which indicates each car and its components required with their quantities required to build the car. There is a record for each different car.
Now suppose there is a new car we are going to produce so we need a new record in table B for the car and all its components. Also we need a new field in table A because people can now order the new car(in some quantity).
With form for table B we can introduce a new record. But how can we add a field in table A automatically after a record is added in table B?
I have a database used to track my personal assignments, created about six years ago using Access 2003 on Windows XP. Recently upgraded to Access 2010 on Windows 7. At some point thereafter, I started having the following issue:
When a new record is created, that record gets added to the table, but doesn't show-up in any query, form, or report until after another new record has been added. The most recently added record cannot be located to view or update, except in the table, until after another new record has been added to the table. Queries, forms, & reports now always lag behind by one record.
None of the queries, forms, or reports tested contain filters. I have several multi-user databases that I also support and none of those users have reported having this problem. This is only happening on my personal database.
I've re-created this database once or twice in the past to resolve other issues, but would like to avoid that route this time around, if possible.
I am trying to automatically update one table to another each time a new record is added to my form, I have tried using the Update and the Append Query is there another way to do this without using code?
I have a main form with several tabs. Each of those tab has one subform linked to its related table. I would like to be able to enter a new item in one of the table via the subform and I used the following code:
Code: Private Sub Form_Load() DoCmd.GoToRecord acDataForm, Me.tblEmetteurs_AddItems_subform.Name, acNewRec End Sub
I obtain a msg error from the debogger: "Compile error: Method or data member not found."
I've been trying : double click a field in a subform and paste the query results into excel. I already have good code to paste in the recordset, but this recordset must reference a control value in a subform.
The query works and shows the proper results manually, but when I run the Sub it throws a "run-time error 3061: Too few parameter. Expected 1."
I can't seem to set the parameters right. Tried EVERYTHING--except the RIGHT thing.
I Have a main form called table one has 3 fields an autonumber as primary key and i have a subform called table 2 has 3 fields one an autonumber a primary key , second is an integer which is equal to table 1 primary key, and third is a text with default value set to N/A
i want when the user enter info in the main form and save it, the subform automatially add new record and save it with default settings..so far what s happening , that the related field in the subform to the main, is getting change but record is not getting save in the table 2
i have a form with subform in it, and when i press the save button in the main form it saves only the records in it but it wont save the records in the subform
i found on microsoft this code DoCmd.Save acForm, "New Employees Form"
how can i use it to save both the main form and subform together
I am currently working on an Access Database that houses our security clearance information. Most of the system is up and running but the most recent form has got me spinning my wheels. I have a Word User Form that users will download and complete, once completed the macros will automatically send us the document to be added to our database. Most of this is working the problem is that this portion of the database has multiple related tables and at any given time a user may require multiple records in the related tables. I have created the code to copy most of the information but am getting stuck adding a new record on the sub-form when multiple items are required. Here is a breakdown of the scenario
Word Doc Table 1 = Basic Organization Info Word Doc Table 2+ = Sites to Visit (There could be more than 1 table added here) Word Doc Table 3+ = People to go on site (this might not be the third table based on user interaction for sites)
So far I can get Table 1 and Table 2 data but if there are more than 1 site I cant seem to get the system to create a new record on the related table it is creating a new record on the main form. Here are the lines I used to try to create the related record..
When I put just the above code on a button it seems to have worked as the sub-form showed an additional record was created but when using this on my macro the sub-form is not taking the focus for some reason.
I have the following code which is supposed to insert a new record into TBLLetterHistory when a report is printed. The report is based on a Query which selects the records based on their postcode.
What actually happens is that only the first record in the query is inserted into the History Table. Any suggestions would be gratefully recieved as I have no idea, even after long searches in this forum!!
Private Sub Report_Activate() Flag = 0 End Sub
Private Sub Report_Deactivate() Flat = -1 End Sub
Private Sub ReportFooter_Print(Cancel As Integer, PrintCount As Integer) Dim dbs As DAO.Database, rst As DAO.Recordset Set dbs = CurrentDb() Set rst = dbs.OpenRecordset("TBLLetterHistory")
Flag = Flag + 1 ' If the current value of Flag = 1, then a hard copy of the ' report is printing, so add a new record to the history table. If Flag = 1 Then rst.AddNew rst!ReportName = "RPTLetterByPostcode" rst!Date = Now rst!LeadID = [QRYLetterByPostcode.LeadID] rst.Update rst.MoveNext ' Flag = 0