Unnest row in MS-Access? - ms-access

Currently property block and lot information is entered into our ms-access database in separate input boxes which then populate a table. One box for block and one for lot. If an application contains one block but multiple lots then the user enters the lot information separated by commas.
Like this:
The table in the end is very messy and cannot be queried properly. Is there a way in ms-access to still have the user input the data separated by commas but to unnest the rows in the table so each block and lot has its own row?
Like this:

For ease of querying later, i have never much luck with multi-valued fields, and a loop may work better separating on both commas and spaces to be sure. I would have a statement that pulled out all commas followed by spaces first ", ", then all commas alone, then look for any spaces by themselves. After that, you could provide your user with a confirmation screen if they enter more than one lot to confirm their entry. Something simple, like in your example above, would popup and state "You entered 3 Total Lots (7, 9, and 13), is this correct? And if they say 'no' then you can give them the entry form back to correct their entry.
Just a thought. Let me know if this helps. Also, if you can provide screenshots of the input form i might be able to provide further coaching.

Related

Formatted Text in report Access 2013

I am using Access 2013.
I am generating a specifications writing database which involves the user inputting a number of items as data which is then incorporated into a report. The report structure is largely similar but there are something like 30 variants with small changes based on the data entered at the start.
Each report extends to around 7 pages whereas the data is only in the first 2 pages. The remaining pages contain standard clauses common to all the reports. effectively they are an instructional on using the products to which the specification report refers.
I now have a rather frustrating problem.
Is it possible please to set up a standard report using a rich text format. I have thought of using the bulk of the report as an image and incorporating this but it uses up lots of storage space. I have looked through the forum but cant find a scenario that really fits what I am looking for..
I almost want a really big text box that I can format in the same way as you would a word document. Not sure if this makes sense so if further clarification is required please ask. Many thanks in anticipation.
You can use Rich Text in Access, with the data stored in a Memo (Long Text) field: Link
I would set it up like this:
Have a table with one field per clause. This table has only one record. Fill out the texts directly in the table (or build a simple form for it, if you like).
In your record source of the report, add this table without any join (= cross join).
Then add all the fields to the report footer, height = 1 line, Can grow = True.
This will keep each clause together on a page. If you don't care about this, you can also use one huge field with all the text.

combo box reference not working in access query criteria

I have a database built that, after all of the queries are done, it will spit out a form and I can filter through records and the relevant information will change as I filter through. To get there, I have to be able to reference a combo box located on my entry form (which contains all of the sales guys' ID numbers) in my queries. However, when I input the normal form reference in the criteria section '[Forms]![Entry Form]![ID]' and run the queries, it returns nothing. I figure that this is because in a lot of our live data tables, the ID numbers have spaces before or after them, which they have no spaces in the ID numbers listed in the combo box. I tried to use the trim function in my queries for the ID number field in the tables, but it still returned nothing.
Any advice on what else I can try? If more info is needed, ask away.
Change the Bound Column to 2, or whatever column it is in the row column, all under the property sheet data tab for combo box. It may be returning the ID rather than the text when selecting.
This is a case where the query designer isn't the best option. Instead, open it in SQL mode (there should be a dropdown in the upper left corner that allows you to change how you view the query) and change the WHERE clause to something like:
Trim(ID) = [Forms]![Entry Form]![ID]
It's not going to be very efficient, this is why you should never use bound forms because you can do the trimming on data entry and save on the overhead, but this should at least return data for you.
I figured it out!! The answer to my problem was I needed to manually type in the combo box options instead of importing the options from another table. For some reason that worked. Thanks for you guys' help again!

Best way to store ranges and single values in mysql

just facing a little problem right now.
I have a layout-table that contains one field pages. This should specify for which pages the layout should be applied.
The possible contents are "closed" ranges like '3-5' or open ranges like '3-*'. But it should also be possible to add single pages.
So is there a good way to accomplish a content like that
'3-5;11;15;17-*'
in a single field?
Or do you know better ways?
Is there a possibility to query this field like
SELECT * WHERE IN_RANGE(pages, '5') (Pseudo-Code)
I want to prevent creating a table page because it would contain nothing else and also don't want to do the validation in php.
I am happy to provide more information if necessary.
This is a tricky question i dont see "native" sql option for this.
My first idea was to store information about pages as varchar and implement method to tokenize that string so youll have values which you can then process by sql query.

Searching through a CSV file to know the next macro action

So, I have my current bot (Yes, this bot is entirely legal. It's just a web scraper-esque bot) extracting data from a web page in a loop. But, at the beginning of the loop, I want it to be able to look through the previously-extracted data and compare it to the data on the page to choose what I want to do next. Is this possible?
For example:
Data is saved like this: name1,100,name2,200 Where names can be any string of letters, and the numbers can be any string of numbers.
To give you an idea on what the page looks like: It has two names, each with values under them, and buttons. The names and values change every minute or so.
First, we check the current names on the page. (There are two names on the page)
Next, we compare them to our database to see if they reside in it.
If they both do, we check the numbers after the name
If the first names number is higher than the seconds, we click the first names button
If the second names number is higher than the firsts, we click the second names button
Now we wait twenty seconds
Now, new values have appeared for both names. We find the mean of the new values presented to us and the old values, by adding them together and dividing by two.
What I really need help on is how to search through the CSV file for the names and then numbers after the names, and then how to save data to the same spot as the old data was from.
I know that this is easily possible in most programming languages (Java, C++, etc etc) but I wasn't sure if it would be possible in iMacros.
you can't save data in same csv as you use for search in imacros.
in regular imacros you do not have loop inside loop and IF statements as well, so you need to switch to javascript or similar.
extracting data from csv is simple: http://wiki.imacros.net/!COLn

Access: Multi-value field

I am trying to design a form where the user can search records to filter a report. The user must be able to select many values from a particular field (multivalued field). I understand I can use a list box, but the field has a total of 3,000 records and cycling through is too much. I just want to know what other ways I can let the user insert multiple values?
I have these ideas, but maybe you guys have another better way:
Creating multiple combo boxes and keep them hidden until the user hits an “add” button, but this limits me to the amount of values I can have. If I have 10 hidden combo boxes I can only enter a total of 11 (10 hidden plus the original visible) values.
Is it possible to have a temporary data grid where the user just enters the values.
Then comes the problem of getting this into the SQL Record Source. I am thinking of the SQL IN clause.
Any help or ideas, will be greatly appreciated.
I think that you should create Comboboxes where values from next combo are dynamically populated when value in previous Combo has been changed so that way you can create hierarchy of values to select.
I've done something similar for a few different applications in slightly different ways. Basically, I present the user with a table, allow them to right-click > filter (the same could be accomplished by providing a filter textbox for each corresponding field in the table you want to allow filtering on... in your case it sounds like you only need one). The filter box allows them to use 'and' and 'or' along with the actual text of what they're looking for. Then they click a button that opens the report and fills the report's filter field with whatever filter they had applied.
Of course, this assumes the user is familiar with the data they're filtering, and requires a bit of training, but for me it was a simpler alternative than displaying a list with a bajillion entries in it. Your mileage of course may vary :)