Answered by:
Pop-up form with split screen

Question
-
I have a pop-up form to get a parameter for a report, but I need to show the user what are valid requests based on what is in the table. For example, if I had a report that gave all the detail for a single customer, I want the user to be able to enter the customer number when all they know is the customer name. That customer number then feeds a query. So I display a split form with customer number and customer name so they can scroll through the split screen and then enter the appropriate customer number. I don't want them to enter the customer name because there is too high a chance they will misspell it.
The problem is that as soon as I add the split screen to the pop-up form, the pop-up takes up the whole screen. Any way around this? Or is there a better way to accomplish the same thing?
Thanks for help.
Merrikay
- Edited by Merrikay Monday, March 5, 2018 9:54 PM
Monday, March 5, 2018 9:53 PM
Answers
-
You are introducing unnecessary complications. All you need is a dialogue form with two synchronized combo boxes, one, cboCustomerNumbers, which lists the customer number, the other, cboCustomerNames, which lists the customer names, but whose BoundColumn is a hidden customer number column.
The first combo box's RowSource property would be:
SELECT CustomerNumber
FROM Customers
ORDER BY CustomerNumber;
The second combo box's RowSource property would be:
SELECT CustomerNumber, CustomerName
FROM Customers
ORDER BY CustomerName;
The BoundColumn property of each would be 1, but the second would have a ColumnCount property of 2, and a ColumnWidths property of 0 to hide the first column.
In the AfterUpdate event procedure of the first assign the selected customer to the second with:
Me.cboCustomerNames = Me.cboCustomerNumbers
and in the AfterUpdate event procedure of the second assign the selected customer to the first with:
Me.cboCustomerNumbers = Me.cboCustomerNames
As the customer number is the value of both controls either could be referenced as a parameter in the report's query. The user can select a customer either by name of by number. Whichever they use, the other will immediately show the same customer's name or number.Ken Sheridan, Stafford, England
- Marked as answer by Merrikay Tuesday, March 6, 2018 7:42 PM
Tuesday, March 6, 2018 12:06 AM
All replies
-
Hi,
Not sure if it's a better way but you can either,
1. Use a Combobox for the user to select from the valid choices, or
2. Use a Listbox for the same purpose.
...in your popup form.
Just my 2 cents...
Monday, March 5, 2018 10:06 PM -
Thanks for the suggestion. My first choice for this was a combo box showing two columns, customer number and name. I named the control Sel_Cust, but when it went into the query, I got a type mismatch mistake.Monday, March 5, 2018 10:10 PM
-
Can you post the SQL statement you used? Maybe we can fix the error.Monday, March 5, 2018 10:11 PM
-
Well, I've moved on since then... have it coded with the split screen. Ok if I get back with you after exploring this solution? You don't have any suggestions for controlling the size of the split screen pop-up?
Thanks,
Merrikay
Monday, March 5, 2018 10:41 PM -
You could try using the MoveSize method to see if you can set the size of the Split Form.
Hope it helps...
- Proposed as answer by Terry Xu - MSFT Tuesday, March 6, 2018 5:22 AM
Monday, March 5, 2018 10:42 PM -
You are introducing unnecessary complications. All you need is a dialogue form with two synchronized combo boxes, one, cboCustomerNumbers, which lists the customer number, the other, cboCustomerNames, which lists the customer names, but whose BoundColumn is a hidden customer number column.
The first combo box's RowSource property would be:
SELECT CustomerNumber
FROM Customers
ORDER BY CustomerNumber;
The second combo box's RowSource property would be:
SELECT CustomerNumber, CustomerName
FROM Customers
ORDER BY CustomerName;
The BoundColumn property of each would be 1, but the second would have a ColumnCount property of 2, and a ColumnWidths property of 0 to hide the first column.
In the AfterUpdate event procedure of the first assign the selected customer to the second with:
Me.cboCustomerNames = Me.cboCustomerNumbers
and in the AfterUpdate event procedure of the second assign the selected customer to the first with:
Me.cboCustomerNumbers = Me.cboCustomerNames
As the customer number is the value of both controls either could be referenced as a parameter in the report's query. The user can select a customer either by name of by number. Whichever they use, the other will immediately show the same customer's name or number.Ken Sheridan, Stafford, England
- Marked as answer by Merrikay Tuesday, March 6, 2018 7:42 PM
Tuesday, March 6, 2018 12:06 AM -
Thanks, Ken. That works!!Tuesday, March 6, 2018 7:42 PM