Modules & VBA :: How To Build A Query Using Form Comboboxes
Sep 9, 2013
I'm making an accounts package.
I've made a graph of revenue by customer but due to the number of customers it's a bit hard to see the customer names.
So I would like to be able to select my own custom group of 5 customers to plot on the graph.
To do this I think I need a query that selects the 5 customers which is populated from 5 comboboxes on a new form that the user can select customer names from but I'm not sure of the VBA that links all this together.
I have an endpoint for students so they can report any faults in the compound.I want to build a form that contains buttons of a certain value so that a student clicks on the button.Is fed directly to the table and pass to the next form to another value table.
I have a form with many comboboxes. The comboboxes need to have their original rowsource set to a table in my database. However, when the user selects a value in a combobox, it is programatically fed into a SQL string which serves to populate a subform. This part all works great.
However, I'm trying to reset the comboboxes as well so that options will "narrow down" until only a single option is possible. So far, I have:
Code: Private Sub cmb_Author_Change() Dim strSQL As String strSQL = "SELECT tbl_Records.RecordName, tbl_Records.RecordDistinction, tbl_Records.Title, tbl_Records.Author, " & _ "tbl_Records.ProjectManager, tbl_Records.[Site Name], tbl_Records.ChargeCode,
[Code] ....
GetWhere() is the portion that feeds info from the comboboxes to the Finder string.
The red highlighted bit is the part I'm working on. Obviously, once I figure out the proper syntax, all of the other comboboxes will be set up the same way.
What's funny is that in testing (all of the data currently input is simple and allows me to select options where I know what the response will be in other boxes), when I change Author and go to use cmb_RecordName, it replies that "the record source 'My Data' specified on this form or report does not exist" (where 'My Data' represents real data).
So, clearly, it is finding the data, just not using it as a record source, but rather believing that the name of the recordsource is the value.
I have 2 combo boxes on a form. The 2nd box is not visible unless the 1st box is set to a specific value (Illness). Once the specific value is set, the 2nd box appears with appropriate data for selection.
Goal #1: I would like to have the form checked before it is closed to ensure that if the condition in box 1 is "Illness" then the 2nd box must have a value and can not be null.
Goal #2: I am also having problems with the 2nd combo being visible when form opens or becomes current. The field is set to visible=false normally but needs to be visible when form opens if the conditions mentioned above are meet (true).
Private Sub Form_Unload() If IsNull(Me.Incident_Classification) Then MsgBox "Please select a type of Illness" Me.Incident_Classification.SetFocus
how I can get GotFocus and LostFocus of all comboboxes. See below the three codes (code 1, 2 and 3) that I've change from an example from the internet. But the problem is that the function "InitialiseEvents" is not running in these comboboxes. If I try the code 4 as an example, the function "InitialiseEvents" is running perfectly. I don't understand why I can't get GotFocus and LostFocus? You can to see two attachments:
Afbeelding1: The codes 1, 2 and 3 are running. Afbeelding2: The codes 1, 2 and 4 are running.
Code 1:
Code: Private Sub Form_Open(Cancel As Integer) InitialiseEvents Me End Sub
Code 2: Code:
Public Function InitialiseEvents(frm As Access.Form) Dim ctl As Control For Each ctl In frm.Controls With ctl If .ControlType = acComboBox Then .OnGotFocus = "=HandleFocus('" & frm.Name & "', '" & .Name & "', 'Got')"
I am relatively new to VBA and have this loop (see below) was wondering if it was possible to build it into a variable, so I could call upon it within an IF statement.
Set ctl = Me.listSeeAllAssets For Each varItem In ctl.ItemsSelected rs1.AddNew rs1!AssetNo = ctl.ItemData(varItem) rs1!DateOfService = Me.DateOfService
I am running an export function from a module1 that contains a loop nested within a second loop. Each loop is running through items in a separate combobox on a single form1. The outside loop goes through combo1 items and the inner loop goes through combo2 items.
My issue is that the value of combo1 determines what items are available in combo2 (values are tied to tables). I can get the combo2 values to update when a user changes the values in combo1 (using requery in the afterupdate property of the combo1). However, I do not want a user to change the values, and the code module1 is ignoring the requery. How to force the combobox to requery through code in a module?
I am trying to build a new sql statement for a query using a string from items selected in a list box on a form. I have the string in place and keep getting syntax errors for the new sql statement. The code is below.
strSQL = " SELECT JG_tbl_LMEMP.DEPT_CODE" & _ " FROM JG_tbl_LMEMP" & _ " Group by JG_tbl_LMEMP.DEPT_CODE" & _ " Where JG_tbl_LMEMP.DEPT_Code IN(" & strCriteria & ")" qdf.SQL = strSQL
I am trying to build an event when I double click a field. As soon as I click on Code Builder, access crashes. It does this with every access database I open.
I'd like to override the default behaviour for deleting records in a form.Specifically, I want to build my own custom delete procedure so that when the user presses the Del button, my code fires to complete the deletion of the selected record(s). In order to do that, I'd set Allow Deletions = No for that form. I'd also want to code the KeyDown event for the Del key so that if record(s) are selected, my custom delete code fires, else the default behavior for the Del key happens.I'm primarily interested in how I might code the KeyDown event.
I'm pretty new to this stuff and I'm having this odd problem:
I've created a tabular form that uses a combobox for each record. The problem is that if I had, say 10 records in the form and I select a value for the combo box of one of the records, all of the combo boxes change to the same value...
I have read a few threads about comboBoxes and what-not, but I guess I'm just having trouble relating the answers to my particular problem. I've done a semester of Access at Uni so I'm a little versed in SQL and basica database theory, and am really just after a point in the right direction as to how to accomplish this:
I have a friend who is sort of like a maintenance worker for a number of places around my city. He wants a database made up which allows him to quickly and easily make a report on the day's/week's/month's jobs he has completed.
Basically, the information in the report should be Premise (the particular building the job was done in), Location (the room in the building), Item (the 'thing' that maintenance was done on), Job Type (eg. Repair, replace, purchase etc), Date and Time.
Ok, so that's the information he wants, and here's how he wants to enter it:
He wants some kind of form which contains a drop box (or combo box) full of the various Premises, and once he highlights the Premise, a second drop box branches out (I think this is what's called a cascading drop box? Maybe not...) which allows him to highlight the Location, then a 3rd allows him to select the Item, and finally the Job Type. Once he selects these things, he wants to be able to type in the date and time, and save the information in a Latest Jobs table.
So in the end, he wants to bring up the Latest Jobs table at some point, and make a report from it. But, once he's made the report, he wants to have the Latest Jobs table append to an All Jobs table, and then clear itself ready for the next wave of Jobs.
So that's the situation, thanks for reading if you got this far :P
I'm not expecting a giant solution to the entire problem, I'm just looking for some tips and strategies on how to acheive this, and some elements of Access I should research in order to help.
I have some database with columns 'Number', 'Mfr Name' and 'Mfr Part Number'. Number - internal catalogue item of a company. Mfr Name - name of a manufacturer where from we purchase the item Mfr Part Number - part number of a manufacturer where from we purchase the item Each item may have one or more Mfr Name & Mfr Part Numbers. ---------------------------------------------------------------------- I need to build a following query: Input gets part of Mfr Part Number and output is all Mfr Name & Mfr Part Number of match item.
Hello, I have set up a form which will be used for filtering reports. I would like to be able to generate a single report and in order to do that I will have to filter three fields.
I am using three combo boxes to achieve this. The three fields I am filtering are as follows: Tenant Name, Building Name, and Unit
The Tenant Name and Building Name work perfectly but I can't get the rowsource for Unit to display any values.
Here is what I have so far:
For the tenant name: rowsource: SELECT Tenants.[Tenant Name] FROM Tenants ORDER BY [Tenant Name];
The above displays all the tenants that currently have leases.
Once the Tenant Name is selected the Building combobox is populated with all the buildings leased to the selected tenant (Tenants can lease more than one building). This is achieved by the following: rowsource: SELECT distinct Leases.LeaseID, Leases.[buildingName] FROM Leases WHERE (((Leases.Tenant)=[forms]![Lease Offer]![tenantCombo])) UNION select distinct null, null FROM Leases ORDER BY Leases.[buildingName];
This also works perfectly. Only the buildings that are occupied by the tenant are displayed.
Now for my problem. Because, not only can the tenant be holding a lease in more than one building, but they can also have more then one lease in the specific building (ie for a specific Unit number). So what I am trying to do is to have the Unit combobox display only the unit numbers that the selected tenant is leasing in the selected building.
I tried to simply modify the rowsource of building name but it is not working (the combo box is always null). rowsource: SELECT distinct Leases.LeaseID, Leases.[Unit] FROM Leases WHERE (((Leases.Tenant)=[forms]![Lease Offer]![tenantCombo]) AND ((Leases.buildingName)=[forms]![Lease Offer]![buildingCombo])) UNION select distinct null, null FROM Leases ORDER BY Leases.[Unit];
So this is where I need help. This is very important to my project because, it is the only way I see being able to filter my report to a single specific lease.
Also, not sure if it will be useful, but I had trouble to get just the first two comboboxes working but I eventually succeeded, so if anyone is interested on how to achieve these to update here is the code:
It is only basically three functions:
'this is the "On Current" even of the form Private Sub Form_Current() buildingCombo.Requery unitCombo.Requery End Sub
'this is "On Change" event in the the tenant combo box. the building part 'works but the unit combo doesn't. However, I'm pretty sure it is a problem 'with the actual query not the code below Private Sub tenantCombo_Change() buildingCombo.Value = Null unitCombo.Value = Null buildingCombo.Requery unitCombo.Requery End Sub
'this is "On Change" event in the building Combobox, however it is not doing 'anything for me now. Private Sub buildingCombo_Change() unitCombo.Value = Null unitCombo.Requery End Sub
How can I build a date in a query that is used for filtering purposes? The data is in the records in two fields - Month and Year. In our query we have an expression that builds a date - DateRange: [Month]/1/[Year] in order to qualify the record with the criteria Between FromDate and ThruDate. DateRange as it is shown here returns a date of 12/30/1899 for all records. DateRange: #[Month]/1/[Year]# is invalid syntax. DateRange: [Month] & "/" & 1 & "/" & [Year] is not recognized as a date.
Hi all, I have a field that stores software versions as text. The version numbers can be simple (4.0, 5.0) or unknown or more complicated (4.5.200512, etc). The user wants to be able view data in a pivotChart without seeing interim versions- so 4.5.200512 would not show up but its data would be counted as part of 4.5. Anybody know how I can do this? thanx
Let's say that I've got the following tables: - tblCustomers(IDCust,NameCust) - tblEmployees(IDEmpl,NameEmpl) - tblProjects(IDProj,IDCust,IDEmpl,Duration)
My query: SELECT tblCustomers.NameCust, tblProjects.IDProj, tblProjects.Duration, tblEmployees.NameEmpl, Sum(tblProjects.Duration) AS SumOfDuration FROM (tblProjects INNER JOIN tblEmployees ON tblProjects.IDEmpl = tblEmployees.IDEmpl) INNER JOIN tblCustomers ON tblProjects.IDCust = tblCustomers.IDCust GROUP BY tblCustomers.NameCust, tblProjects.IDProj, tblProjects.Duration, tblEmployees.NameEmpl ORDER BY tblCustomers.NameCust;
Hi, I'm new to Access. I'm trying to do a very simple thing but I can't. Let's say I sell a lot of cars, every day so I need a database only to collect info about selling. I need a table (SoldCars) which need refers (read: field) to 2 other tables: 1.Constructor and 2.Model, or only to Model (because Construvctor could be redundant). Anyway, when I register a new sold car, I want a menu in which I can find a Model but not after having chosne the Constructor, so when I choose "Ferrari" then I can only find "Testarossa" and "GTO" and choose one of them. Stored field can be Model, because Constructor is implicit. But I need this tip because let's say I sell thousands of cars per day and I want it to be very quick. Please help or I'll die under piles of cars! Thanks!!!!
As example, I have a table with an Item number, introduction year and a number of historical and future Sales periods set per year, these sales columns are listed Y1990, Y1991, Y1992....... Y2015.
Based on each items introduction year, I want to list the first 5 years of sales.
I wanted to create a dimensional fieldname eg: FirstYear: "Y"&[introduction year] to get the value of that respective year. (I currently just get a text saying "Y1995", and not the content )
Any help is appreciated!:)
(Note: I can't transpose the data in the tables for other reason)
Currently, I use ACCESS to track reservations for various types of events. When I want to make nametags, I download the "attendee" query that I've already set up to EXCEL and then merge into a WORD document. Is there a way to set up in ACCESS so the labels can be printed straight from the database? I've tried, but I can't get the labels to space out properly (EX: 2 across and 6 down) even though I put the correct label # in there.
I have a difficult problem (because of my own capabilities). I have a table (tblFoods) which includes a number of food with their analyzes. I have a second table (tblExclusiveFoods) which is connected with a third table (tblCustomers) with one-to-many relation. Namely, o tblCustomers is the "One" and tblExclusiveFoods is the "Many".
Into table tblExclusiveFoods there is a field that acts like a ComboBox and gets data from the tblFoods such as drop-down-menu. So, using the combo box i can select the foodID from tblFoods and then showing into exFood field which is a part of the tblExclusiveFoods fields. When i collect the foodID's from the tblFoods, i would like to to build a query which will exclude these foods from the tblFoods.
From a dropdown field in the form it's currently possible to choose a geographical region for which to generate a report. The data populating this dropdown is pulled in from a Value List as follows:
" ";"*";1;2;3;4;5;6;7;8;9;10;11;12;13;EU;WD
I now need the ability to choose various different regions simultaneously which is not possible with the current method. I've looked into a nested continuous form and a multi-select combo box or list box, but none of these are as user friendly as my preferred method.
What I would like is 15 checkboxes plus a 16th to select/unselect all. When any of these checkboxes is checked, I need to create something like a dynamic value string or temporary table to hold the list of chosen regions until the generate button is clicked at which point the data is used to generate the report and cleared. I also need a piece of code to check/uncheck all the boxes.