Development

Training

Tech Support

Database repair

Access Books

Discussion Forum

Join our Free newsletter for screenshots, news, hints & tips, new products, website additions and more!
subscribe
unsubscribe

Company profile
Contact us
FAQ
Resellers

 

 

 

 

 

Home : Tips : Forms

Forms

 

3 Top Techniques for Rapid Forms and Reports

Make your lines straight on Reports or Forms

How to refresh the combo list in a subform by activating the main form

How to change the Tab Order on a Form

Automatically setting left to right top to bottom tab using auto order

Tell Access where to tab to when you press tab whilst in the last field of the current record

Stop a control from receiving the focus when tabbing through a form

Create inaccessible fields on a form

Using a self-lookup combo box

Hiding the Scroll bars and Navigation buttons in your Forms

Open a Combo Box automatically

How can I remove the Menu Bar from my Form

How to Obtain Values from the Previous or Next Record

How can I prevent Users from adding records to my forms?

How to make a form close automatically after a set amount of time

3 Top Techniques for Rapid Forms and Reports
Don't you find it annoying how long it takes aligning controls to get forms and reports looking tidy? Well, the good news is there are several tips you can follow that will speed the process. I am assuming you are using Access 97.
Aligning controls with menu Highlight the controls you want to align and use Format, Align and then choose left, right, top or bottom.
Create Alignment toolbar Even better than above, create a "SpeedyForms" toolbar, that has 4 buttons covering the 4 alignment options mentioned above. Enable this toolbar when you are looking to tidy your forms and reports. It really does save you a lot of time.
Keyboard shortcuts for moving Controls Its often much easier to align the Controls when you use the keyboard to "nudge" the object into place. Highlight the Control, hold down the Ctrl key and then use the navagation arrows to move in the required direction.

Make your lines straight on Reports or Forms
Select VIEW and TOOLBOX. Then click the line tool in the toolbox and drag to create the line. Using the CTRL key with the arrow keys will move the line and using the SHIFT key with the arrow keys will change the length or angle of the line.

How to refresh the combo list in a subform by activating the main form
You must use the Requery method within a statement that refers to the control on your sub-form from the main form.

If you place the code module in the main form use the following syntax:

Me![Sub-form Name].Form![Control Name].Requery

Or this can be shortened to:

[Sub-form Name].Form![Control Name].Requery

If the code is in the sub-form's code module then the syntax can be shortened even further to:

Me![Control Name].Requery

Which can be shortened again to:

[Control Name].Requery

How to change the Tab Order on a Form
Open the form in Design View. Then select VIEW, TAB ORDER and then select the SECTION that you want to change. Next click the selector for the control you want to move. (You can use click and drag to select more than one control at a time.)

Click the selector again and drag the control to the required location in the list. Now click OK.

You need to go to Form View to check the tab order. In design view the tab order will always be in the order that you created the controls.

Automatically setting left to right top to bottom tab using auto order
As above, first select VIEW, TAB ORDER and then select the SECTION that you want to change. Then simply click AUTO ORDER and then OK

Tell Access where to tab to when you press tab whilst in the last field of the current record
Open the form in Design View. Open the form's property sheet and amend the CYCLE property to one of the following:
· All Records - the focus moves to the first field in the next record.
· Current Record - the focus moves back to the first field in the current record.
· Current Page - the focus moves back to the first field in the current page.

Stop a control from receiving the focus when tabbing through a form
Set the TabStop property to No

Create inaccessible fields on a form
Sometimes you may wish to make a field in a form look like a normal field but it is completely inaccessible to the user.

To do this set the ENABLED property to No and the LOCKED property to Yes. Your field will not grey out but the user will not be able to do anything with it.

Using a self-lookup combo box
If you want to speed up data entry in fields such as 'Town' or 'County' on a 'Customers' form (for example) you can have users input information through a combo box rather than a text box.

You want the combo to get its information from the customer towns already typed in. To do this you should fill the combo using a query or SQL statement. To make sure the query that extracts the information only picks out each town once, set the query's 'Unique Values' property to 'Yes'.

Also, to make sure that no records which don't contain a town are returned, set the Town criteria to 'Is Not Null.'

And finally, set the sort order for the query so that the towns are listed in alphabetical order. The combo will facilitate quick entry of town data as any town previously entered with a previous record can be quickly added to a new record.

However if you add a new town it won't show up in the combo list straight away. To update the combo as soon as you enter a new town, you need to run a small amount of code in response to the 'After Update' event. Create an event procedure for the 'After Update event' and enter the following code:

Me.Refresh

This will refresh the data in the form and update the combo's data.

Hiding the Scroll bars and Navigation buttons in your Forms
Open the forms properties by selecting VIEW and PROPERTIES. Then for the ScrollBars property enter Neither and for the NavigationButtons property enter No.

It is just as easy to hide RecordSelector buttons, and the Minimise, Maximise, and Restore buttons in the right hand corner of the form. Simply set the RecordSelector, MinButton, and MaxButton properties to No respectively.

To do this for a subform you need to open up the subform in Design view and open up the properties window from there. You cannot hide scroll bars or navigation buttons for a datasheet.

Open a Combo Box automatically
This is particularly helpful if your users need to enter large amounts of data. It causes combo boxes to open when they get the focus by using the tab keys.
There are two ways to do this. Firstly we shall look at the Dropdown method

1. Add a combo box and a text box control to the form

2. Set the combo box's OnGotFocus property to the follwoing event procedure:

Private Sub Employees_GotFocus()
Me!ComboBoxName.Dropdown
End Sub

3. Open your form in Form View and use the TAB key to make sure it works.

You can also use a SendKeys Macro

1. Create the macro and call it OpenComboBox. The syntax for the macro is as follows:

Action

SendKeys

ActionsArguments

Keystrokes: %{DOWN}
Wait:Yes

2. Now open your form in Design View and add the macro to the OnEnter property of your combo box.

3. Open the form in Form view and test your TAB key.


How can I remove the Menu Bar from my Form
In Microsoft Access 2.0, 7.0 or 97 enter =1 in the MenuBar property of the form.

In Access version 1.x enter =1 in the OnMenu property of the form.

How to Obtain Values from the Previous or Next Record
You can use this DLookup() expression if you have a table with a field ID of numeric data type, in sequential order, not missing any numbers.

To look up the value in the previous record of a Form, put this code in the text box's ControlSource property:

=DLookUp("[Field]","Table","[ID]=Forms![Form1]![ID]-1)

The following code looks up the value in the next record:

=DLookUp("[Field]","Table","[ID]=Forms![Form1]![ID]+1)

You can use a similar piece of code to look up values in the previous or next record in a Report. Input the code in the ControlSource property of the text box:

For the previous record, use

=DLookUp("[Field]","Table","[ID]=Reports![Report1]![ID]-1)

For the next record, use

=DLookUp("[Field]","Table","[ID]=Reports![Report1]![ID]+1)

When the current record is the first record, using the "-1" will return a null value as will using "+1" on the last record. You can also amend this code to say produce the the fifth previous record by entering "-5" in place of "-1".

How can I prevent Users from adding records to my forms?
If you can't get hold of better behaved users then you will need to use the Default Editing property of the Form.

Firstly open your form in Design View and display the property sheet (VIEW, PROPERTIES). In the Default Editing property set it to Can't Add Records. Save the Form and go back to Form View to make sure it works.

How to make a form close automatically after a set amount of time
First of all you will need to create a macro to execute the Close action on the form.
Now go to the Design View of the Form and open the Properties sheet.

In the TimerInterval property enter the length of time you want the form open for. This should be in milliseconds, so for instance if you want the form open for 8 seconds enter 8000, for an minute enter 60000.

You now need to attach your macro (to execute the Close action) to the OnTimer event property of the form. You may need to go back to the TimerInterval property to adjust your timing a little to get it just right.