Modules & VBA :: Loop Through Subforms / Get All Labels And Change Captions
Jun 26, 2014
I have a form (Form1) and a in it, I have 2 subforms datasheet (Subform1 and Subform2). I have ID, First Name, Last Name in each as headers.
I need to:
1) Find the subforms
2) Loop through the subforms and get all the labels
3) Change the captions
The reason for this is because I need to have the forms bilingual. I do have a function that will translate the caption (called TranslateThisWord). I just cant figure out a way to loop through the subforms and find all the labels.
I'm trying to get some labels and eventually text boxes to become visible on an input of a qty in a text box, but I can't get my syntax right.Here's what I have so far.
Private Sub More_qty_AfterUpdate() Dim count As Integer Dim pumplbl As String For count = 1 To [More qty].Value pumplbl = "pumplbl" & count pumplbl.Visible = True
I want to be able to do something to several labels, e.g. make them invisible, using a FOR loop. They are all named similarly, with ascending numbers on the end, e.g. lblName20
Say I want to make lblName20 to lblName40 invisible. I need something along the lines of:
Code: Dim labelname As String For c = 20 To 40 labelname = "lblName" & c labelname.Visible = False Next c
Of course, that doesn't work, because it doesn't recognize the string as a label name. How do I go about this?
My database has a front end that uses forms to allow the user to navigate within it, each year we create a new database which is based on the previous year's database but with all the variable information removed.
Within the database each form has a caption that starts with '2014-15' then goes on to say the form name.
Most of my forms also have a yellow background, (last year it was pink).
Both these areas were set up so that each year our users can distinguish between our databases, as they may have last years and this years open at the same time.
What I would like if possible is to know whether I can get a user to change both these things from within a form. So something along the lines of a button that when clicked would check all form captions and if within the caption it finds 2014-15 then change it to 2015-16 (or whatever the user specifies) but keep the rest of the caption. I would also want the same type of thing to happen with the colour so again within the background of the forms, if you find colour X then replace it with colour Y.
If this can't be done within a front end form, then could it be done behind the scenes, and if so how would I go about doing it?
I used the code below to check the empty fields in the form and populate it in a message
Code: Private Sub Form_BeforeUpdate(Cancel As Integer) Dim ctr As Control Dim strMsg As String 'Loop through every control on the form For Each ctr In Me.Controls
[code].....
I want the message to show the captions of controls instead of its names
I have a problem where the user has certain contraints in colour.
I am trying to change all the colours of labels in the database to purple.
Is there any way to declare it once in the database and all label statements will pick up the new colour. Saves me going through every form. Also there are other users who want to use the database with black.
Has A 2013 changed the way that labels are aligned, or do I need to look for some other setting. Normally in A 2010 and 2003 I could highlight a row of label click size/space > equal vertical and it would move the labels.
I have a main form and four subforms all of which were created from the tables without queries. The main form pulls employees personal data (never changes). The subforms pull Events attended, Lodging at the event, Family that attended the event and Employee minutia which changes per event. I'd like to have a button on the main form that changes the records in view for all of the subforms at once. This way it is easier for the users and I know that I am view all the pertainent info for event A instead of viewing event A's lodging info with event B's family info.
and Access doesn't like this.I'm getting a 3075 error "Syntax error (missing operator) in query expression 'and [Mail] = Yes'.What is the correct syntax for this?
I want to be able to open a form and unhide some fields on that form that have been set to hidden, basically if the file paths are wrong it ponts them back to my form where they fill them in , normally these are hidden
Code: 'checks to see if the file paths in the admin screen are ok before allowing to go foward to avoid errors from dowloading data 'get the file path to import data Dim ImportLoc As String ImportLoc = DMax("[Path]", "TblsysTransImport") 'Gets the file path to export data Dim ExportLoc As String ExportLoc = DMax("[Path]", "TblsysTransExport")
' checks to see if the file path is valid to stop people going further if incorrect or first time use If Dir(ImportLoc, vbDirectory) = "" Or Dir(ExportLoc, vbDirectory) = "" Then MsgBox "sorry but your Import / Export locations dont exsist " & vbNewLine & "These are required so you can download your scan data. " & vbNewLine & "You will now be redirected to enter valid paths"
'open form where they update the paths DoCmd.OpenForm "Frmadmin", acNormal 'normally hidden Frmadmin!Line111.Visible = True
I would like to make clickable labels on my form, so if the user has any questions about the field, clicking on the label would bring up a message box that would give them more information. I know how to write onclick events one by one for every label, but there are a lot of them, and I feel like there has to be a better way.
I put the label names, and the text I'd like for the message box in a table, and I'd like to have a module that will allow me to click on a label, and have the right text come up.
I've researched ways to do this and have come up with nothing. The farthest I've gotten is an array tied to the form open event that just displays all the message boxes from first to last, one after the other. I believe that's on the right track, but is not a workable solution as is. I need to be able to tie the message box to the actual label the user clicks.
I have to loop thru 2 recordsets.I need to first determine the quarter , then retrieve a value from each of the 6 fields for that quarter and compare that value against a previous years value that is also stored in the table for each quarter.the following is the field names not the field value.
So I need to be able to set the value of PrYR = .385 and compare against the value of the 1st qtr for each tier for Qtr1.Then go to Qtr2 and repeat the process but grap the Q2 PRYR value = 1.25 and compare against all Tiers for Qtr2.As so forth for each quarter.then I need to compare the value of the PrYr and if it is the following then
If PctYrlyIncrease< Tier1 Pct (Q1T1) Payout = 0 elseIf PctYrlyIncrease> Tier1 Pct (Q1T1) and < Q1T2 then Sum(TotalNetUSExp * T1E) ElseIf PctYrlyIncrease> Tier2 Pct (Q1T2) and < Q1T3 then Sum( TotalNetUSExp * T2E)
and repeat for each Tier per Each Qtr.Here is my code so far:
Code: Public Function BkOvrCalc(ByVal gContractID As String) As Long Dim curDB As DAO.Database Dim strSQL As String, strSQL1 As String
Private Sub Form_Load() Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("select * from tblpatient, dbOpenDynaset) If Not (rs.BOF And rs.EOF) Then rs.MoveFirst Do While Not rs.EOF ' do stuff rs.MoveNext Loop rs.Close Set rs = Nothing End If End Sub
I have watched it step through on debug and it does everything right for the first record, but it seems to come back to the same record.
I have a form where a textbox has shows the NameNo from the NameNo column in a db. At the moment I am using a dlookup to set the textbox = to the NameNo, but obviously this is only returning the 1st value in the column. How to get this form to automatically display each NameNo, creating a pdf of the form and then moving on tto the next nameno. I have the code to make the pdf working so far, all I need now is to figure out how to use the textbox to loop through all the NameNo's in the table.
i have the following code to get file list from specified directory:
Code: Dim db As DAO.Database Dim TB1 As DAO.Recordset Dim p As String, x As Variant
[Code].....
the field "File_Name " is not set to accept duplicate the above code work fine , but when it find the file name exist on the TB1 it return an error i need the code if find any error continue to retrive other files on the folder not exit loop and also i don't want to make check if file exist it will lower the speed of code
Basically what I am trying to accomplish is uploading multiples file automatically into server. The code I am trying to use works great if the user wants to upload a single file manually because the code prompts you to choose the file and I am wondering if there is a way to tweak the code. here is the code I am using
Code: Private Sub Form_Load() Dim objFTP As FTP Dim strfile As String
I work for an insurance company where various (and multiple) discounts or loads can be applied to a quoted premium for one reason or another.
These discounts/loads are stored in a table with a corresponding customer ID, where each row represents an individual discount/load (labelled and ordered-by a 'Step').
Unfortunately, the resulting premium from these discounts/loads is not stored in the database and are calculated on the fly by the front-end.
I have a requirement however, to store the 'new' premiums based on the stored discounts/loads for a report.
My problem is that the calculations must occur incrementally one after another, where the discount/load at each 'Step' applies to the resulting premium from the previous calculation.
The attached spreadsheet is demonstrative of the existing table where two additional columns have been added to show you what I need to calculate. 'Price_Amount' represents the discount/load in monetry terms relative to the calculation and 'New_Prem' is the premium resulting from the calculation step.
Notice that each discount/load applies to the previously calculated premium rather than the original one (Original_Prem = the starting point from which all further calculations should apply).
The full table would include many more rows for different customer ID's, where the number of 'steps' could be as few as 1 or as many as 7 per customer ID (ordered by 'Step').
Having toiled for many hours in Access to achieve the above, I am now resigned to the fact that only some kind of VBA function will achieve my requirements.
This function should take the Original Premium for each CustomerID and loop through each 'Step' applying the relative discount/load based on the value in 'Pricing' and the number type in 'Price_Type'. Once the function has calculated each step per CustomerID and has reached the maximum 'Step', it should move on to the next CustomerID.
such can only articulate the requirements without being able to convert this into actual coded logic. Nonetheless, I am in a bit of a pickle with this one and am under some pressure to create the report.
I am using to select and append data to an output table. Everything is working fine until the last step. The last step appends all the data to an output table from the initial table. The intermediate steps select the data to output.
"AddExpenseToOutput()" is stopping about halfway through the list of criteria. Initially I thought there might be a null in the list, but it doesn't look like there is after dropping everything into Excel to manipulate.
Code: Option Explicit Dim rstAccount As DAO.Recordset Dim rstAccounts As DAO.Recordset Dim CAccounts As String Dim Item As String Dim AccountKey As String
I have a sample database (attached) where I have a form called frmVoteHeadsOne. The voteheads that I have are swimming (Swim) and transport (Trans), which both appear for data in a table. On the form, from the combo list, I would wish that if I select swimming, for example, only Mark Tyler's name is returned since he has paid 2000; if I select Transport from the same list, only John clement's name is returned.
My purpose for doing this is because in the actual database, I have 21 different voteheads which I would like to get different results from based on what the user selects from the combo list.
I've got a problem with a loop for producing worksheets (reports). When everything works there's no problem but when one of the reports namely rptChemoOralWorksheet doesn't have data available to produce the report the loop finishes and then all remaining worksheets don't print.I've put in a standard error handler with MsgBox, but it's never triggered. I've also tried
Code: On Error Resume Next
but again rather than skip the DoCmd.OpenReport "rptChemoOralWorksheet" (when the error is present) and move to the next one to continue printing through the list the loop stops and the subsequent code starts to run.
Code: Dim mydatabase As DAO.Database Dim rst As DAO.Recordset Set mydatabase = CurrentDb Set rst = mydatabase.OpenRecordset("atblChemoWSLoop", dbOpenDynaset) Dim rsBN As String Dim rsDose As Double