General :: Loop - From One Continuous Subform To Another
May 21, 2014
I have attached an image of what i am trying to achieve so here goes:
I need to add data from one subform to another - problem is they are both continuous forms and both subforms.
The part in green is where it needs to go, and the white is where the data is held. The links have already been created, i just need to get the info from subform 1 to subform 2.
I have attached code but it only moves line selected / first line.
Dim dst As DAO.Recordset
Set dst = Me.frmAS9102_Material_LINK.Form.RecordsetClone
With dst
.MoveFirst
Do While Not .EOF
In my database, I have a continuous form with a Name, a Date and a Yes/No field.
When the form opens, I want to look at the date of every record on the form and show a message box if it is before the current day.
The code I have is this;
Private Sub Form_Load() With Me.RecordsetClone While Not .EOF If Me.Date1 < Date Then MsgBox "" & Me.Person & "" End If If Not .EOF Then .MoveNext Wend End With End Sub
However, it loops just the first record the amount of times there is of records (i.e., it will only show the first person's name in the message box, and will show 3 times if there are 3 records).
My application crashes when trying to change the value of a text box in a continuous form. Here is the code:
Code: Private Sub cboPoCurrency_AfterUpdate() On Error GoTo ErrHandler Dim rst As Recordset
[Code].....
If I replace .txtUnitCost by MsgBox .txtUnitCost, it loops correctly through each record and returns the value. But if I try to change the value as shown in above code, MS Access crashes! (This is a desktop application with tables linked to SP lists - not a web app)
What I am trying to do is put a subform within a subform. The trouble is I want both forms to be continuous forms.
when I put the subform within a subform, access comes up with the following message:
************************************************** ******************** A form with a subform object cannot have its DefaultView set to Continuous forms.
You tried to add a subform to a form in design view. MSAcess will reset the property to Single Form. ************************************************** *********************
which it does my higher level form becomes a form only showing single records at a time whilst the subform is a continuous form.
I have two subforms on a main form. Both use similar queries and nearly the same set of records and PK. The first subform is for data entry and the 2nd subform is a continuous form that lists the entries in order that are made from the 1st Subform. (for entering in vacation days and appointments)
The continuous form cannot be edited, it is to be a list for viewing the information only.
I have an edit button next to each record on the continuous form. When the button is clicked, I want it to take the 1st subform to that specific record as well (same PK), so the information can be edited there.
I cannot figure out how to get the 1st subform to go to the record on the continuous form when the button next to that record is clicked on the continuous form.
I tried the DoCmdSearch for record and just keep getting object is not open errors.
hi guys i was wondering if you can help me please, in my main form i have a text box which the user enter an item number , and a combo box with the main contracts., then a continuous subform which has a combo box with the subcontracts that belong to that main contracts, in the subform i also have a txtPriceA, and txtPriceB. my problem is that with the code i have the priceA and priceB get added in different rows and all the other fields get added correctly but with the columns priceA and priceB empty.
this is what i tried
Private Sub Command94_Click()
Dim db As DAO.Database Dim rst As DAO.Recordset Dim varItem As Variant
Dim strSQL As String
Set rst = CurrentDb.OpenRecordset("tblMain")
For varItem = 0 To Me!frmAddSubform.Form!cmbSubContracts.ListCount - 1 'combo box from subform rst.AddNew 'add new row for each subContract in combo box
rst!PriceA = Me!frmAddSubform.Form!txtPriceA.Value (this is supposed to be added in the columm PriceA in the same row as the 1st row added from rst!subContract_ID. )
rst!Priceb = Me!frmAddSubform.Form!txtPriceB.Value (this is supposed to be added in the columm PriceB in the same row as the 2nd row added from rst!subContract_ID. )
rst.Update Next varItem
rst.Close
But I get this:
ID (autonumber) Item# Main Contract Subcontract PriceA PriceB 1 123 12345 12345-1 2 123 12345 12345-2
3 $15.00 $ 15.01 4 $15.50 $ 16.01
I should only have two rows added instead of four....like this
I have a subform for which I want to loop through all the records and then copy one of the fields for each row into another sub form.
I came up with the bellow code but i get an error when I run it.
The error is an "error 438".
Code is at follows and I am copying the field called price:
Do Until Forms![Roll Out - Site Form]![Roll Out - Sign items pick list].EOF [Roll Out - Sign items added].Form![Price] = [Roll Out - Sign items pick list].Form![Price] Forms![Roll Out - Site Form]![Roll Out - Sign items pick list].MoveNext Loop
Dim var1 As Variant, var2 As Variant, var3 As Variant, var4 As Variant DIm var5 As Variant, var6 As Variant, var7 As Variant, var8 As Variant Dim var9 As Variant, var10 As Variant Dim i1 As Long i1 = 1 Do Until i1 > 10 var & i1 ??? = "0" & i1 & "." & txt1 & "." & txt2 i1 = i1 + 1 Loop
How to make concatenate var + i1 to make loop function?
I am using Access 2010. I have a database that on a form uses a multiselect listbox. That part works just fine. The list box is for selecting additional people to email. Now I have had no luck with returning just the email address that are in a hidden column (the persons actual name is seen and "selected"). The names come from a separate table and is used as a forgien key. On that same table are the indivuals email addresses. What I did was loop through to get all of the ID numbers I am getting from the list box (the ID numbers are stored in the table that the form is based on).
Once I have all of the ID Numbers I thought that maybe there was a way to retrieve all of the email address associated with the ID Numbers. This is what I have so far. I know that AllQuery returns the first email address from the list box. I just have no idea if the query is returning more than one record, or if it is how to then go to the next record. I have tried a few things with little to no success.
Code: Dim ListItem As Variant Dim AllItems As String Dim AllQuery As String For Each ListItem In Me.EmailAdditionEgineers.ItemsSelected AllItems = AllItems & Me.EmailAdditionEgineers.ItemData(ListItem) & " or " Next ListItem AllItems = Left(AllItems, Len(AllItems) - 3) AllQuery = DLookup("EmailAddress", "AdditionalEmailRequestQuery", "[ID] = " & AllItems) & ";"
I am looking to loop through all of the rows in a listbox. For each row in the listbox, I want to check if the last name in the Labor column is contained in any records in the Labor column of a recordset. If it is contained, add the column value to a variable to eventually be shown in another listbox. It seems that the loop is not working correctly and the EstHours is always 0 and the instr function doesn't seem to be working.
Code: Sub ScheduledHours() 'on error goto errorhandler Dim LastName As String Dim FullName As Variant Dim EstHours As Long
I'm trying to 'Loop' through a recordset (i.e. "newRS") that has 46 records in it. I get the recordset as follows:
Code:
set newRS = currentdb.openrecordset ("PO Table") newRS.movefirst
I want to download each of the records, one at a time, into Excel. To do this, I'm use the following:
Do until newRS.EOF = True
Several intermediate steps within the loop that aren't relevant to my problem
Set mySheet = myWB.Worksheets("db POLabel") mySheet.Range("A2").CopyFromRecordset newRS newRS.Movenext Loop
Right after the 'Copyrecordset' command executes, the recordset cursor seems to be jumping to the end of the recordset and I get the following error message (when the code tries to execute the 'Movenext'):
I want to add a command button to my form that enables me to sort all records on the form into a Word document using mailmerge or automation as a "Purchase Order". This Word document will be saved with the name of the Order, then i will try to add another fonction to send this "purchase order" as an attachement with outlook. The main problem is that I couldn't merge records on the continuous subform including details about the Order: items, quantity,price....
Please note that I'm a beginner on Access and this is my first project.
I have a form and a linked subform which are linked by Purchase Order Number. When items have been delivered on the purchase order, the user should update the continuous subform with the number of items that have been delivered. This works fine.
The problem I have is using an exit button that does not save any of the changes to either the data in the form or the subform. It doesn't matter if there is a prompt to alert the user that there have been changes made.
I have been messing around with DoCmd.RunCommand acCmdUndo in the on click event of my exit button which kind of works when changes has accidentally been made, but is very unsophisticated - any ideas?!
right I have searched and searched the forum but obviously this isnt as simple as I thought it would be!
I have a main form called "frmAllStudents" based on a query called "qryAllStudentsMainScreen". The unique field in all forms is Admission Number.
I have on this form a data-entry subform called "TeachingAssessment" where a member of staff puts in teaching Assessment.
I have a second continuous subform called "previousTeachingAssessment" which lists all the previous teaching assessment.
The problem I have is that unless i select another student or open and close then the previous teaching assessment doesnt update. How do I requery to get this to show on the continuous form?
hi guys i have a main form called Passengers coming from tblPassengers table and then it has a subform to select the destinations for each passenger.
My subform (continuous) consist of entering up to 3 destinations for each passenger so i created a combo box with this row source:
SELECT DestinationID, Destination FROM tluDestination WHERE DestinationID NOT IN(SELECT DestinationID FROM tblDestinations WHERE PassengerID = Forms!formname!txtPassengerID);
The reason is that i want that when the user enters a destination, when they go to select another one , the selected one is excluded from the list. but it does not happen... can someone help me with this , i am going nutss i attached the db to see if anyone can help...
Please see attached pic. When I put the focus in some fields, the dividing line is chopped. In other fields, it's not. All controls are identical in format. If I copy a control which doesn't do this, and paste & replace one which does, the two controls simply swap their behavior.
Does anyone know why this happens and how I might prevent it?
Im sure this must be easy to do (but cant do it myself...)- how do I set a continuous form subform to display the last record when a new main form record is opened? Whatever I do, the continuous subform displays the first record and I have to scroll down to get to a new record, which is getting tedious.
I have buttons that enable and disable editing/adding information on a continuous form.
When you click add the form then is set to allowadditions and shows you the * record. Is it possible to have that display at the top of the list instead of the bottom? If not, what would be the best method to move the focus to the new record when someone clicks add?
I have a main form with a subform in continuous format. The subform displays the list of records and has a delete key allowing the user to delete that line (record) All works except if the user clicks the delete button on the new record line. Then there is an error message. Rather than use error trapping I would like to code a message OR simply beep to confirm nothing was done OR have the delete button disabled until something is entered into the record. The records do have a autonumber which I have in a hidden text box. I tried the following and even though the code shows that LineID does in fact = Null the code does not fire.
If Me.LineID = Null Then DoCmd.Beep Exit Sub End If
I have various comboboxes within a continious subform where you select a main field, and then it should let you only select the relent fields below it.
Example:
1.Main Product (HS_level1): Live animals
2.Sub Product (HS_level2): Live sheep and goats
3.Product (HS_level3): Sheep, live
...other fields on amounts, etc.
Adding the first product to the list is easy. Query I use:
Private Sub HS_level1ID_AfterUpdate() 'make next HS levels empty and requery the list of products Me.HS_level2ID = Null Me.HS_level2ID.Requery 'the query that is been run selects only HS_level2 that are linked with HS_level1 Me.HS_level3ID = Null Me.HS_level3ID.Requery 'jump to next HS_Level field DoCmd.GoToControl ("HS_level2ID") End Sub
But when I add the second product to the CONTINUOUS form, all hell breaks loose and the previous record's values also gets reset.
How can I ensure that VBA only runs for the selected record?
Please see the attached images (screen shots from my db).
I'll start by explaining the function of this form. Invoices are raised through a different area of the system - they then appear in the outstanding invoice list in my payment processing screen while awaiting payment. When a payment is received the user creates a payment using the controls at the top of the form. When created - payments will appear in a list box at the bottom of the screen. I then want the user to be able to highlight a payment from the list and type the amount to allocate against each line in the outstanding invoices subform. Then (once happy with the allocation) press the "Allocate" button which will cycle through the allocations the user has made inserting rows into my Transaction table - allocating the payment against multiple invoices.
The fields displayed in the outstanding invoices subform are selected in a query which calculates the amount still outstanding. In trying to illustrate my aim I've added an unbound text box to the subform (the column Allocate). What I'd like to be able to do is type a different amount against each outstanding invoice. I understand this is not the way that unbound controls work in continuous forms - i.e. that they are multiple instances of the same control hence when I type 100 against the first item in the list it appears against every item in the list. I can't use a bound control because the query is not updateable - and in any case, the entry won’t exist in the transaction table until it has been inserted anyway.
I'm pretty competent with Access and VBA but haven't really explored recordsets - I'm usually able to achieve what I want by binding my forms to stored queries. This, however, is a bit more of a complex problem than I'm used to dealing with.
So, to the point then. I guess my first question is - is it possible to achieve this? I'm sure it must be. If so please can someone try to shed some light?
Secondly, I have an idea but have absolutely no idea of how to implement it. I seems to me what I would need to do is build a temporary recordset for the form and add a field to it i.e. the "Allocate" field I've been talking about. The user would then be able to manipulate this recordset because the form wouldn't be directly accessing a query. Nor would there be any unbound controls on the form. Once the user had typed in all of the allocation figures they are happy with they would be stored in my temp recordset. They could then hit the "Allocate" button which would cycle through the recordset inserting rows into my Transaction table (as long as various validation rules were passed).
Does this sound possible? If so can anyone give me any help or point me in the direction of any material they know of that might be of any help?
Thanks in advance for your help.
To give a flavour of how I originally built this form I've attached another image - PaymentProcessingOld.gif. It's a similar kind of setup. Payments are created at the top of the screen and appear in the list box bottom left. The outstanding invoice subform serves only as a point of reference. The user actually allocates payments by selecting the item from a combo box and typing the amount. This builds the transaction I've talked about above. It's quite straight forward when there are only a few payments and allocations, but in practice payments are usually large and split across up to 100 different invoice lines. That makes it a very tedious task.
I'm having problems trying to control default values on a continuous subform. I need to be able to have the continuous subform look up values based on a CBO on the subform, populate controls on the subform with those values, and then store the values in a table that has a foreign key linked to a control on the main form. I'm not a complete newbie at this, but for some reason I can't figure this out. The closest I've gotten to this was using a Dlookup in the afterupdate of the CBO, but that only returns one value from the table regardless of what value is selected in the control. Any suggestions?
Sure hoping someone can help me with this. I have a main form with a continuous subform. I am trying to filter the subform "behavior" combo box with another combo box on the subform "learningtype". The subform filter works fine if only the subform is open, although I can't add records because it would require a record in the main form. However, now that I've added the subform to the mainform, when I open it it asks for the parameter value of the filter combo box on the subform. Can someone help me, please...I'm desperate. I'm attaching a sample for you to look at.
I'm working on a purchasing database where if the user checks a box on a subform, another field needs to be disabled. The code works, but since this is a continuous subform, it disables that field on every row. Is there any way to make it stick to the row the user is working on?
Here's the code:
If Me!acs_puchase = -1 Then Me!inventory_po.Enabled = False ElseIf Me!acs_puchase = 0 Then Me!inventory_po.Enabled = True End If