Access form VBA ComboBox click event - vba

I have Access form with comboboxes, textboxes and buttons. In the comboboxes I have the LimitToList property set to false, because in some situations I need to add some texto, and because of that, I need to validate the content of the comboxes and I'm using the OnClick event.
However if I change the text in the combobox and the click on the "Exit" or "New" button, it fires the OnClick event.
I would like to know if it's possible to the OnClick event only fires when I really click on a line of the combobox or press the Enter key, instead of firing when I click other button after changing the texto of the combobox.
Thanks :)

You can set your validation on update property of combo box. So whenever you change your combo box content it automatically checks for the validation.

Related

vb.net conflict between textleave and datagrid click events

In my screen, i have a datagrid view and text boxes. the datagrid view is filled with entries made in the text boxes. Entries are checked on the leave event of each text boxes. If there is an error, a message box proposes to correct or cancel the entry. when the user clicks on the datagrid view, triggered by the datagridview click event, data are retrieved from the row and displayed in the text boxes. from a text box, if the user clicks on the datagridview, with an error in the data entered in the text box and choose to cancel the data entry, the focus should be on the datagridview line clicked. But it seems that the cancel made by the messagebox prevents the datagrid view click event to occur. the consequence is that I am not able to retrieve the index of the selected line and cannot position the focus on this line if the user chooses to cancel the entry made. How to retrieve the index of the selected line in the datagrid click event despite the message box cancel made in the text leave event ? Sorry, it is really difficult to describe.

VBA: Activate text box in non-modal user form

I have a simple UserForm containing a prompt, TextInput and 2 buttons (ok & cancel). I want the text input box to be activated when the UserForm opens so that the user can type directly in the box, without having to click there with the mouse first of all. I have looked at this answer:
VBA Make a text box in a UserForm Active when the UserForm activates?
and set the TabIndex of the TextInput to 0.
I have also tried including the line NumericBox.SetFocus to the initialize code. When I set ShowModal to True for the form, both options give the desired outcome, but I really want the form not to be modal. When I set ShowModal to False, the text box is selected (if I hit enter or tab, the selection moves to the OK button (TabIndex 1)), but I can't type straight away in the InputBox - I still need to click with the mouse in the box first.
Is there anyway I can directly type into the input box of a non-modal form as soon as it is opened?
Thanks

Treeview from TextBox

I have a "Load" button and a TextBox on a form. I want when the user clicks the "Load" button on the form all the file and sub directories that i have typed in the TextBox to put them on a treeview. I can't find a way to do this. I am using vb.net at coding.

How to make text box accept Return key function (used for Browser)

I want to know how to make my Text box (or Address bar) accept the Return/Enter key as a form of submitting a search.
Currently I have a button which submits the search, and not the textbox itself.
Thanks.
Currently I have a button which submits the search, and not the
textbox itself.
Assuming WinForms, set the AcceptButton property of your Form to that Button. Now when you hit enter the button will be automatically clicked for you:
Gets or sets the button on the form that is clicked when the user
presses the ENTER key.

Default Button on Form (VB 2008)

I want to find a way to make a specific button, the form's default button,
I.e. the button that is highlighted when the form opens for the first time.
I tried the AcceptButton property but when I run the program, that does not work.
Any idea?
Thank you in advance,
Tassos
You need to change the AcceptButton property of the containing form.
form1.AcceptButton = button1
Here form1 is the Form whose default button you need to set, and button1 is the name of the Button on that form.
The form's AcceptButton and CancelButton properties define the default behaviour for the Enter and Escape keys, rather than the highlighting.
To highlight the button use the Focus method, but when doing this in the form_load event you will need to call the Select method instead.
btnDefault.Select()
As mentioned in the comments, setting the control to the lowest taborder will achieve the same thing
The answer from 'chk' on 5/2/13 is the correct answer, but is shown as a string which of course is not the way to do it.
Also, in the form's property sheet you can find, under Misc, the property 'AcceptButton'. This will give you a list of buttons on the form - just select the one you want.
The button selected as the AcceptButton will behave as the 'default' button. It will be 'highlighted' with a darker border and will be clicked when you push the Enter key on your keyboard.
Setting up an AcceptButton is different than setting the button's focus. The AcceptButton's click event will be triggered by the Enter key no matter which control has the focus on the form.
You can also do this programmatically.
I have a maintenance form where initially I want the "search" button as the form accept button.
when I'm displaying the field maintenance area, I want the "ok" button to be the accept button.
You simply change this in the appropriate areas in your code to Me.AcceptButton = MyButtonName.