Forms :: Highlight Mandatory Controls On A Form Tab
May 15, 2013
I am trying to provide a visual highlight for users of a multi tabbed form. I do a check as users go from tab and tab and i.e. on exit event and I would like to highlight all mandatory fields that have been left incomplete.
I did a test with one control and it worked as expected with the after update event of the specific control.
I then altered the code to add another control, but it does not work as expected. It only highlights one control and not the other. I just recently started using vba, I adapt the code to fit multiple controls and make it work as expected.
Private Sub Ctl2_frm_tab1_Exit(Cancel As Integer)
If (Len(Form_2.cmb_arName& "") = 0 Or IsNull(Form_2.cmb_arName)) Or _
(Len(Form_2.cmb_val & "") = 0 Or IsNull(Form_2.cmb_val)) Then
Cancel = True
MsgBox "Please complete the highlighted control", vbCritical + vbOKOnly
I have a form that I need to update whenever a chosen business name changes. This is tied to a search function that updates/changes the business name, and this works fine. What I now need it to do is when the name is clicked on the table (which updates the respective business name) I need everything else to update with it.
I have tried refreshing the business name, the form, even the records themselves with onClick and onChange functions, but it still doesn't work.
Re-reading this I realize it doesn't make much sense, but hopefully the attached database will clear things up. When you type in the info in the search box, all the stuff in the right corner changes accordingly. If you click and highlight anything in the box in the center instead of using the search function, the business name at the bottom changes but everything in the right corner remains unchanged.
I have a form that acts as a search form where the user inputs a string of text which then updates and filters a list box. For some reason when it does this it highlights the 2nd row on that list, even if there is no data there. How can I get it to automatically highlight the first row? The database is attached and the form in question is FRM_SearchMulti.
I have a form which has a subdatasheet attached to it. there could be 1000 records in the main form but only 10O records in the Subdatasheet that match the records in the main form , these are linked by a "product number" .
Is it possible for the row in the main form to be "red" where there is data in the Subdatasheet that is matched by the "product number".
I have a continuous form that shows the results from a query like:
Red Red Red Green Green Green Yellow Yellow
And I wanted to know if I can some how highlight in a white/yellow alternating color like for instance starting with the three reds being white then the three greens being yellow then the two yellows being white and so on. Maybe through conditional format?
Is there any way to highlight duplicates across a number of records on a continuous form (conditional formatting I presume)? My continuous form is filtered on load to show only the records relating to the specified date (specified before opening the form), and there is one field that I would like to highlight if there is a duplicate value in the same field on another record on the form. Is this possible?
I wish to highlight some fields on a form if their value differs from the previous record.
I'm OK with the code to determine this, but unsure as to where to put the code to set the fields initially?
I have two strings txtPrevPayment_Method and txtPrevProduct.
Where can I set them 'once' to be the same as the first record loaded in the form. Then in the Current event I check if they have changed and set font colour accordingly.
I am experiencing a few problems with mandatory fields in my forms. I use different forms which all base on the same table - therefore I can not use the "Required"-flag in the table definitions.
What I managed to do by now: I put this statement into the OnExit-Event: =IIf([FMNO] Is Null,MsgBox("Please enter the FMNO",48,"Error Message"),"")
This provides me with an errormessage in case the field is null. When I exit the field, I receive the errormessage but the cursor moves to the next field. How can I make sure that the cursor stays in the field where the error occurs?
My next problem: When I try to use this syntax on a text-field (e.g. "NAME") it doesn't work.
Has anybody any suggestions?
Your help is very much appreciated, I'm getting more and more desperate on this issue.
Basically I have a form which records primary and secondary reasons for people writing off money, and in the secondary reasons I have an option for 'other', in case any of the other options aren't applicable. There is also a comments section on the form which is optional.
My issue is, I want the comments section to become mandatory if the 'other' option has been selected. I don't want it mandatory all the time, and I don't want it disabled if 'other' isn't selected, but I need to force people to write at least something in there if they have selected other.
I tried variations on code I found from other places but was unable to get this to function, and I am not sure if this can be done with validation or something like that.
I have a table, which when i first set it up i decided that a couple of the fields had to be mandatory.
So, i set the "Required" property of the field to "Yes" (at table level - which is probably poor practice?)
I now have a form that allows a user at the front end to enter items in the table.
If they complete all the fields on the form i have used macro builder to save the record, present a nice message and move to a New Record. (3 elements in all)
However, if they try to save the record having not completed the "Required" fields then they get an error message instructing them the field is required, but then the macro crashes.
So what's the best way to approach Mandatory fields? Is it best to leave the "Required" property at table level set to No and then have something at form level which checks they have entered a value in the field? (i'm guessing this is probably the correct approach)
I tried removing the table level condition from the [Field] and adding this as the first argument of the macro builder which saves my record:
Code:
IF [Field] = "" Then MessageBox "You Must Complete Mandatory Fields" Stop Macro End If
But my macro still completes and saves the record...
I have a form with lots of combo boxes and text boxes. They are all linked to various MS Access tables and some of the fields are mandatory. I would like do an check to see if all the mandatory fields are not null i.e. are populated with a value and then run an update query for my master table in the database to flag the records as being complete if all the mandatory fields are populated.
If (IsEmpty(tab1.cmb_a)) Then do something
But I am just blank at the moment on how to proceed, especially on how I can do all the checks and then populate the database.
I had never seen this before as I have recently moved from 2003 to 2010. When I create a from using the wizard sometimes the controls are grouped (inside a dashed square) which does not allow me to modify its size and/or position independently.
I have a form that uses VBA codes to write all the info from the controls in the form into different relational tables. I was stopped at the point that I wanted to have repeating controls. Collect multiple instances of the same type of data, such as in the case of writing many people's Name, Age and Specialty in the Employees table. How do I do that? What is the VBA code for this task?
Which option in property window is responsible for group lining up of some controls vertically? how to ungroup them to allow resize one individually. I could not also find option in menu for removing pre-formatting of those controls.
Is it possible to have a form and dependant on the security level of the user, will depend on what control will appear? Or can I have the controls there and lock them to a user?
I have a DB of staff directory and I want to lock it so users can only view information, supervisors can edit and admin have full control.
I've done it so far by creating a different form and controls for each level but it a lot of work and queries. Is there a simpler way to do it?
my form consited of 4 pages and controlled by query (joined 2 tables). I added a new table to the query and another page to the form . This page contains several controls (option, check boxes, combo boxes, text boxes) with source - fields of a new table added to the query. None of the controls on the new page respond.
I have a form (see attached) and every time someone goes to a different field I would like to change the border to red and when they leave that field to change the border back to the default color. I know I can put the code in for each fields got focus and lost focus section but would rather be able to put the code in once and for it to work for all the fields.
I have a form where you enter a Case number (Primary key) and EmployeeID (foreign Key), the employeeID must match a employeeID held in the employee table. Within this Case form, I have a subform called Account which has an autonumber Primary key called accountID. Each of these accounts will have a questionnaire. So I created the questions in the same table (account). So Q1, Q2, Q3 etc. which are Questions relating to each AccountID, one accountID can have one questionnaire.
What is working fine is I can enter an account NUMBER which is a field in my account table (which creates a new AccountID(autonumber)) and can happily check the checkbox, fill out the text fields move to the next record and the checkbox is unticked and text boxes are blank (default state) which is great as I want them to ready for new input (new accountnumber/id).
My problem is assume I create my very first account number which would be say AccountID(0), I want all textboxes for the three questions disabled until the checkbox is ticked. So thats ok, I can put the default value of chkbox to FALSE, and in VBA I can do the on_checkbox_click, if chkbox.value = true then textbox1.enabled = true else textbox1.enabled = false. I can do that for the other two textboxes in the Chkbox click event.
When I Tick the checkbox it enables the textboxes, which is good, but when I create/move to the next record, instead of these textboxes being disabled as default, they are enabled because i ticked the chkbox for the first record. I dont want the manipulation of one AccountsIDs questionnaire to affects the other records. If I add an unbound textbox which I want to display a message if the chkbox is ticked, then if I tick it on one record, it has the displayed message on all records. How can this be if each questionnaire is independently i.e each questionnaire is for ONE accountID.
It seems the textboxes etc are not unique to each accountID but they should be because they are in the Account table and when I enter values and use the checkboxes without doing the disabling or showing a textbox comment, they are separate and work great, but when I use my code to manipulate the flow of a questionnaire for each account i.e enabling textbox/showing textbox comment, it changes the formatting on the other records questionnaire which I don't want as each questionnaire will be different, so a chkbox may enable a question on one ID but not on another as it wont be relevant, so at the moment I only have ONE truly working questionnaire which works for ONE account , but I want it to work uniquely for each account.
I have an unbound form with 2 tabbed Controls on it.On the first Tabbed Control my command button code works but not for the 2nd tabbed control. Although the command buttons themselves work as far as going to the appropriate record.
What I mean by this is that I use code to enable/disable the command buttons depending on what record you are on.
Example: If there is only 2 record, the other command buttons will be disabled, Do I have to refer to the Tab Control ?
What's the best way to lock down form controls after the user has entered data into them? I will have a button that reads "Save Record" that will make it so the records cannot be accidentally (or intentionally) changed after the button is clicked.
Table has Checkbox column BusinessDate column (mm/dd/yyyy format) OrderTotal column (in dollars) There are others but these are the relevant ones
In the header of the form I have a calculated control box with the following control:
=Sum(Abs(nz([Checkbox],0))*nz([OrderTotal],0)),0)
Which works just fine. The user is presented with a list of all the orders from this table in the form. They check the checkboxes and the control in the header shows the total of the records checked. I need to make 7 of these calculated controls, one for each day of the week. Is this possible? This way the user can see the order totals for each day of the week they have selected.
I tried: =IIf(Weekday([BusinessDate])=2,Sum(Abs(nz([Pull],0))*nz([OrderTotal],0)),0)
but it still sums up the whole week as the expression holds true.I do not know VB, and I'm sure there is a really neat and easy way to do it in there. I just don't know how.
I've just started using 2010 and, unlike previous versions, the expressions that I've put on controls in a form are not working. Is there a setting that has to change that's new to 2010?