creating a ComboBox in MS Access to hold distinct types - sql

I am trying to create a combo box in an Access form to display all the types in an inventory list (ex. cables, UPS, shelves, ...)
When I make the row source for the ComboBox I only want the type to display there once. The ComboBox will later be used to make a report for the different types of items in the inventory, so I will only need each type in the list box once. These types can be changed later so I want the list to be updated automatically.
Right now I have the ListBox displaying all the types multiple times, but when I try to change the row source to:
Select Distinct Inv_Type
From Inventory;
I just get an empty ComboBox. But when I query that code I get get each type only once (this is what I want). What am I doing wrong? Why am I getting an empty ComboBox?

Doing as what Remou said; I created a ComboBox from scratch, without using the wizard first fixed my problem. Thanks!

Related

Limit Combobox input based on other control on same form

I have a database in access for which I made some forms, which is going pretty well.
I only have one small issue I am running into.
I have this form on which I have several comboboxes, which get their Row source from another table. That is working fine.
But for combobox B I wanted the options limited/filtered based on the selection in combobox A. So I filled the following in the row source of combobox B:
SELECT JOBS.Numbers
FROM JOBS
WHERE CITY = Me.CITY
So there is another combobox on the same before where the CITY is picked.
Now when open combobox B it asks me to fill in the city manually and then it filters/limits the options in the way I want. However, I want this to happen automatically based on the selection in combobox A (on the same form).
I hope you can help me.
Thanks in advance.
I find this feature very useful. For example I have a form where project managers select there name from a combobox(A) then in the next box(B) select their project. B uses the criteria from the first box to only list their projects.
Specifically the project table I pull the list from has an owner field. I use the name entered into A as criteria on the Owner to pull just their projects.
On the combobox query build I input the Owner criteria like this. The query runs then with whatever data is entered into boxA.
Forms![Main]![cboOwner]
On the first combo box "After Update" event add Me.ComboboxB.Requery. That will make combo box B refresh its contents based on the current value of combo box A every time A's value is changed.

Access 2007 - drop down box in a Report

I need to create a drop-down box so that an employee can select a pre-set reason in the "RE:" field of a Report. There are only two selections that need to be in the box: "personal events" and "lack of adequate notice".
The report itself is already made and there are a number of fields that link back to the database - name, address, specific dates, etc that are already in the report. I've figured out how to make the drop-down box using the combo box function in a form but is there any way I can merge the combo box into the report?
I'm a beginner, by the way so I'm still figuring things out.
Currently your report sits on a query (query get relevant data from the table)
Steps to follow:-
Change the table by adding a column with the two options you just
mentioned above
Add combobox to Form with items as the two options
Adjust your query to use these options as a criteria to change
results returned by the query
Show the results in the report as you are showing right now.
If you have a code already, please post that snippet. So we can help you accordingly.
Some reference for you to get ideas
BUT I HAVE A DOUBT, ARE YOU TRYING TO SAY YOU WANT TO SWTICH BETWEEN TWO REPORTS BASED ON THE USER CHOICE SELECTED IN COMBOBOX?

Combo Box Column Count culls data?

Basically, I have a combo box that I'm using to select a record. That combo box then populates several textbox's that are found on my form based on the ID. See the two images:
.
I'd like the combo box to show the first two columns in my query, which consists of 16 fields. The Abbreviation and the Name, to be exact. However, I found that if I hid the fields in the query or if I limited the column count of the combo box so it only displays the two, it actually culled the data so that the textbox's would not find it (thus be blank).
My question is, how can I just show the first two columns of the combo box yet still use it's ID to reference all sixteen?
Query
SELECT Tradeshows.tradeShowAppreviation,
Tradeshows.tradeShowName, Tradeshows.tradeShowID,
Tradeshows.tradeShowWebsite, Tradeshows.tradeShowLocation,
Tradeshows.tradeShowDateStart, Tradeshows.tradeShowDateEnd,
Tradeshows.tradeShowBoothSize, Tradeshows.tradeShowShipDate,
Tradeshows.tradeShowAudience, Tradeshows.tradeShowFocus,
Tradeshows.tradeShowMailer, Tradeshows.tradeShowDoorDrop,
Tradeshows.tradeShowProductFocus, Tradeshows.tradeShowAttendees,
Tradeshows.tradeShowMembers, Tradeshows.tradeShowMemberships
FROM Tradeshows;
Do not change the column count, change the column widths.
Column width: 0cm;2cm;1cm;0cm
And so on.
it should not be difficult to only select the relevant columns. You could post the Row Source property of your combo.
It seems to me that you should be binding you table to the data source TradeShows and using the wizard to create a combobox that finds record.
You can do this by selecting the table Tradeshows and choosing either create form or form. You will now have a form with the RecordSource property set to TradeShows. Next, choose to add a combobox to the form, ensuring that you have selected the wizard (the magic wand button is highlighted). You will be given the option to "Find a record on my form based on the value I select in my combobox". You can choose this and step through the wizard. When you get to the step where you choose fields, make sure you choose the TradeShowID first, and then the name and / or abbreviation. If TradeShowID is the primary key, as it should be, the column will be automatically hidden in the next step, which will show the fields selected.
The result of these actions will be a combobox with the following properties:
Row Source : SELECT [Tradeshows].[tradeShowID], [Tradeshows].[tradeShowName],
[Tradeshows].[tradeShowAppreviation] FROM [Tradeshows];
Bound Column : 1
Column Count : 3
Column Widths : 0cm;2.54cm;2.54cm
You will also have [Embedded Macro] in the After Update event (2010 and possible 2007) or [Event Procedure] for earlier versions. The wizard code is pretty poor, but that is another days work.
If you still wish to do all the work of setting each control to the (possibly changing) column order, you can follow a similar lay out for the combo, setting counts and widths appropriately.

how to populate textbox with the database value based on combobox change in access

I am new to Access and vb and i have failed to get the result what i am thinking to get ,hope i will resolve with your help guys
->my access database contains one table with following fields
firstname lastname middlename phone
I have two combo boxes and two textboxes
combobox- it populates firstname and based on this selection the other combo box has to fill with last name which i did successfully with the help of Me.Combo2.Requery
but i dont know how to fill middle and phone in textboxes
here i am failing in mapping recordset and connectionstring with my table and getting result to textbox value can any one help on this
You still have not said where the connection string comes from or why. The big advantage of Access is that it is fast and easy, for the most part, you do not need connection strings.
First, select your table, then choose create form. This will create a single form bound to the table. You could have created a query first and chosen that instead.
That is it. You have a form that displays your data. The key to this is the property sheet for the form, which you can find by switching to design view and double-clicking the small square at the top left of the form just under the form name. The property sheet will show the name of the table or query on the Data tab under the Record Source propery. You can, of course, set this property manually.
You can now add a combobox to select records, but you do not have to, there are navigation buttons at the bottom of the form.
To add a combobox that selects records on your form, you must have first bound a recordset to your form using the steps above. Next, ensure that the wizard is selected for the toolbox. Unless you have unselected it, it will be selected. Now choose combobox from the toolbox, it will open the wizard.
Choose find a record on my form and press next to choose the relevant ID field / column and any other fields that you need. When the wizard completes, in MS Access 2010 (and probably in 2007) it will add an embedded macro that finds your record and in earlier versions it will add code. Other properties set by the wizard will look something like this:
Row Source : SELECT ID, Firstname, Lastname FROM Table1
Column Count : 3
Column Widths : 0cm;2.54cm;2.54cm
Your table should have an ID, add one before you start, if it does not. The wizard will not add a Control Source when this option is selected because it is not needed, in fact, it would be a disaster to add a Control Source to a combo that finds records. Once again, you can do this manually. The code to find a record might look something like:
Private Sub MyCombo_AfterUpdate()
With Me.Recordset
.FindFirst "ID=" & Me.MyCombo
End With
End Sub
This works because the bound column of the combo is set to 1, the first field of the select statement, which is ID.
The combo includes two other fields / columns and you can refer to these in a textbox by setting the control source of the textbox to:
= MyCombo.Column(2) ''Lastname
Where you count columns from zero:
Row Source : ID (0), Firstname (1), Lastname (2)
Cascading combos are another story altogether, and you can read it here How to synchronize two combo boxes on a form in Access 2002 or in Access 2003 and here Is there a simple way of populating dropdown in this Access Database schema?

Updatable Label text according to combobox filled with an Acces database

Hi I'm using Visual Basic 2008 Express Edition, so I have a combobox that gets filled with items from a data base made with Microsoft Acces, the combobox is filled with the values stored in a column from a table in de database so the user can select an "option" from it, I want to add labels that show the values for the corresponding row of that column. I used the Data Source panel to drag and drop the labels corresponding to the values that I want and it works it show the value that I want when I compile the application (at least I think it does, it could be that it's only selecting the first entry) the problem is that when I select a diferent entry on the combobox the labels don't refresh with the new values. How can I do that?
edit
Ok soo I guess my real question is how does Visual Basic Populates de combobox and gets the value of the other Acces DB entrys to change the .text value of the labels? And I mean the actual code that does that.
See if this helps at all
Put some code in the on_click event of the combo box to change the label captions appropriately.
Ok I figured it out, apereantly Visual Creates new data sources each time you drag and drop an item from the Data Sources Panel so all you have to do is make sure that VB is using the same data source used in the combo boxes and the labels so they will update automatically when you choose an option from the combo box, I did it by finding the proper elements in the Form1.Designer.vb file of my project and editing 'DataBindings.Add' property of the labels.