April 17, 2013 at 8:47 am
Yes, managers love their spreadsheets, and it is very annoying when there are five different versions of a given spreadsheet floating around, each with one or two different columns added to the original. This was standard practice at one previous employer of mine. Having been faced with this situation a couple of times over the years, I used the following solution. Let them continue to enter their data into a spreadsheet, and use SSIS to load the one (or more) row spreadsheets into SQL Server. Just give them a file share to copy the spreadsheets into, and let SSIS do the rest. Then you can use SSRS for the reporting.
April 18, 2013 at 5:53 am
lptech (4/17/2013)
Yes, managers love their spreadsheets, and it is very annoying when there are five different versions of a given spreadsheet floating around, each with one or two different columns added to the original. This was standard practice at one previous employer of mine. Having been faced with this situation a couple of times over the years, I used the following solution. Let them continue to enter their data into a spreadsheet, and use SSIS to load the one (or more) row spreadsheets into SQL Server. Just give them a file share to copy the spreadsheets into, and let SSIS do the rest. Then you can use SSRS for the reporting.
Thanks for the suggestion.
But using aspreadsheet with SSIS would not solve most problems.
There is the problem how do users update, how do users delete.
There is the problem of five different versions all with some extra columns.
And the users would not be able to react to input from other users until the data is processed and made available to them. If the importing is done once a day, the round trip time would become 48 hours.
Thanks,
Ben
April 18, 2013 at 7:45 am
If you want something "simple" and "rapid" and you can acquire skills to develop it further, then you could take a quick look at LightSwitch
http://msdn.microsoft.com/en-gb/library/vstudio/ff851953.aspx
I don't personally like it because I can do the same thing myself much easier, but for a "have a play" tool that you can point at a database, pick tables, views, stored procedures etc and have it fairly quickly build a user front end to maintain static data lookups etc, it could be a reasonable starter for you. Just take it in small steps, pick one table at a time and work your way up slowly or it will be a disaster.
Oh and don't forget to use Version control (GIT, SVN, whatever) so you can revert back to known working code when something goes wrong.
MM
select geometry::STGeomFromWKB(0x0106000000020000000103000000010000000B0000001000000000000840000000000000003DD8CCCCCCCCCC0840000000000000003DD8CCCCCCCCCC08408014AE47E17AFC3F040000000000104000CDCCCCCCCCEC3F9C999999999913408014AE47E17AFC3F9C99999999991340000000000000003D0000000000001440000000000000003D000000000000144000000000000000400400000000001040000000000000F03F100000000000084000000000000000401000000000000840000000000000003D0103000000010000000B000000000000000000143D000000000000003D009E99999999B93F000000000000003D009E99999999B93F8014AE47E17AFC3F400000000000F03F00CDCCCCCCCCEC3FA06666666666FE3F8014AE47E17AFC3FA06666666666FE3F000000000000003D1800000000000040000000000000003D18000000000000400000000000000040400000000000F03F000000000000F03F000000000000143D0000000000000040000000000000143D000000000000003D, 0);
April 18, 2013 at 9:31 am
ben.brugman (4/18/2013)
lptech (4/17/2013)
Yes, managers love their spreadsheets, and it is very annoying when there are five different versions of a given spreadsheet floating around, each with one or two different columns added to the original. This was standard practice at one previous employer of mine. Having been faced with this situation a couple of times over the years, I used the following solution. Let them continue to enter their data into a spreadsheet, and use SSIS to load the one (or more) row spreadsheets into SQL Server. Just give them a file share to copy the spreadsheets into, and let SSIS do the rest. Then you can use SSRS for the reporting.Thanks for the suggestion.
But using aspreadsheet with SSIS would not solve most problems.
There is the problem how do users update, how do users delete.
There is the problem of five different versions all with some extra columns.
And the users would not be able to react to input from other users until the data is processed and made available to them. If the importing is done once a day, the round trip time would become 48 hours.
Thanks,
Ben
In order:
1) One column in the spreadsheet could indicate add, update, or delete.
2) Those extra spreadhseets would have to disappear. For those who require extra information, they should find some way to get the data into SQL Server, and create their own reports.
3) The package could run hourly.
But as you point out, this solution is not perfect. If the effort is so important, then management should allocate resources to get a front end program written for data entry. Of course that doesn't mean that it is going to happen, it didn't for me either :angry:
April 18, 2013 at 1:04 pm
Regarding letting the user add new values look at the AllowValueEditLists property (see help below). I haven't personally used it but it appears it might answer your problem. I believe this is fairly new, like Access 2007. The other way of handling this takes some coding in the event that occurs when a value that isn't in the list is entered occurrs (don't remember the specific event name now).
Access Developer Reference
ComboBox.AllowValueListEdits Property
Show All
Hide All
Gets or sets whether the Edit List Items command is available when the user right-clicks a combo box. Read/write Boolean.
Version Information
Version Added: Access 2007
Syntax
expression.AllowValueListEdits
expression A variable that represents a ComboBox object.
Remarks
The AllowValueEditLists property determines whether the the Edit List Items command is available when the user right-clicks a combo box that's bound to a Lookup field .
If the Lookup field is bound to a list of values, then the Edit List Items dialog box is displayed when the user clicks Edit List Items. The user can then add, delete, or edit the items to be displayed in the combo box.
If the Lookup field is bound to a table or query, then the form specified by the ListItemsEditForm property is diplayed when the user clicks Edit List Items. The user can use the form to add, delete, or edit the items to be displayed in the combo box.
The AllowValueEditLists property is not available for combo boxes on a report.
© 2007 Microsoft Corporation. All rights reserved.
April 18, 2013 at 2:57 pm
ben.brugman (4/16/2013)
<snipped>We want that the user can use his own workflow, for example, the user decides that a new product is needed. He is going to enter the product, but during the entering of the product het discovers that he has to select a color that does not exist yet. So the application has to help the user to add (or select) the color and then continue what he was doing. The user does not want to make a 'shoppinglist' before he starts but should be able to make decisions when he reaches the the point where the info is needed.
<snipped>
This (emphasis mine) alone is enough to set you up for a world of pain. If managers can add colors on the spot when entering new product data, you'll get all kinds of messes. For example, someone will add a new product with a new color and when prompted to enter the new color, type 'magneta'. Then, when he can't find his new product by searching on the color he *thinks* he entered ('magenta'), he'll (1) assume that the data entry "didn't go through" and repeat the process, resulting in two rows for what should be the same product, (2) come screaming to you about how the "system" is broken, or (3) both. In the meantime, two or three other users will add new products and choose 'magneta' as the color, either overlooking the misspelling or assuming that they should use this choice when they mean 'magenta', while another will add 'magenta' to the list of colors and enter four or five products with this color.
The point of a lookup table that serves as the source of a drop-down selection window is to ensure that users enter data in a consistent format and use only valid values. If you allow them to edit the lookup table on the spot, it's really not much better than allowing them to enter free-form values.
I hope you will not take offense that others have offered you so much unsolicited advice in response to what seemed to you like a simple question. So many of us have had to clean up the messes left by predecessors who failed to appreciate and meet the challenges of creating a robust, functional database application.
Jason Wolfkill
April 22, 2013 at 7:53 am
wolfkillj (4/18/2013)
The point of a lookup table that serves as the source of a drop-down selection window is to ensure that users enter data in a consistent format and use only valid values. If you allow them to edit the lookup table on the spot, it's really not much better than allowing them to enter free-form values.
Thanks for your participation. And I do totaly agree with you dat when users get the opportunity to muck up a table they probably will. And they probably would use terms as 'to be determined', 'general', 'not known', for anything they can not decide or they do not know yet. But being able to enter the data can be done in combination with a picklist.
We have considered this, but somebody has to fill the lookup table with the correct values and that is the same group of users. Maybe the filling of the lookup tables should be managed, (by the same group of users).
Depending on the usage, the input to lookup tables should be restricted. Because I do not know how this should be achieved, I have left this outside the scope of this project. There are certainly tables which are referenced by other tables where the enduser is allowed to add rows. (For example when entering an order, there should be a client, but the user is allowed to add the client while entering the order).
One advantage: the users who enter the data are also the users who use the data after it is entered. Have they entered data which is not usable then they notice the consequences of that themselves.
(Sorry, but all examples I have used are generalised use cases of actual use cases we have here and I can not show the actual cases).
Thanks for your participation, and thanks for your valid point.
Ben
April 22, 2013 at 9:56 am
ben.brugman (4/16/2013)
J Livingston SQL (4/16/2013)
Hi...at the moment I am not at all clear what the "data" is ...it lives on SQL...but how did it get there and what is it being used for?
-- ben ben:
How does it get there that is the actual question. Users come up with this information and they want it stored somewhere. The (IT) specialists come up with a databasedesign and implementation. The users (managers) have to enter the data themselves. Or if they have the data in a spreadsheet or comma delimited file or something this can initially be uploaded by the technical people.
The data is information the users want to have stored. This can be all kinds of data.
-- neb neb.
Is this a a third party application you are trying to build additional user interfaces for....or build a set of structured reports off?
-- ben ben:
Could be for example if you want to enter some (not a lot) of test data in a database which allready exist but where the application is not finished.
But also to store data which has not yet an application.
-- neb neb.
or is it something you are already doing yourselves in your own "app"
-- ben ben:
Yes it could also be used to store the information for a personel trip, where the different persons have different 'requirements'.
For example which equipment is used, which insurances do the persons need. How are the rooms used. How is the transport done.
Now this type of data is done in a single spreadsheet. (And for this use the spreadsheet is sufficient enough).
But some data in the spreadsheet is duplicated and there are inconsistencies in the sheet because of that. (Some information get's changed but not in all the locations where the data is duplicated.)
For this usage a human controler for the data is sufficient enough, but if there would be a generalised application which the users a familiar with the spreadsheet might get replaced by storage in SQL-server.
-- neb neb.
I would be very wary of building any user interface where you allow managers to edit/create/delete any data at all....unless you have a lot of previous experience in the product you are using and have a full understanding of how the underlying data "hangs together"..
-- ben ben:
Yes the managers understand completely how the data hangs together. It is their data. Most managers are very familiar with handling their own data.
-- neb neb.
you mention you have a "technical team" that use SSMS...what are their views on your proposal?
-- ben ben:
They are all for it if the application can be found. They do understand that SSMS is not for everybody, but they also understand that a 'striped' down SSMS which can only be used for CRUD would be an exelent idea.
And yes there is enthosiasm to build it ourselves, but we will only revert to that if we can not find a suetable application.
(We would like to build it ourselves 🙂 )
-- neb neb.
fyi.....i have built add ons to exg 3rd party vendors based on SQL...with an Access front end...but nearly always as "read only". why "read only" ...cos I had no idea of what triggers / prequisite info etc was required or what actaully ran under the hood...
I have also built Access front end to our own SQL dbs...where we were in total control of the database....and allowed insert/amend/delete......these type of front end apps do take longer to build becasue you need to build in much much more error handling / data validation / transactional roll backs etc.
-- ben ben:
we are in total control of the database.
In general with read only the database would stay empty.
In general the control of the data is build in in SQL-server, so SQL-server does limit what can be entered in the database.
Further it is the responsibility for the user to enter the data correctly.
-- neb neb.
perhaps you could share some idea of the "data" you are talking about..and some sample SQL tables that explains some more.
-- ben ben:
See the example of the personal trip.
But it could also be a Query and Answer database which are made by a team.
Even a footbalpool would be an example. (If the personal is allready one of the tables in the database).
-- neb neb.
____________________________________________________________
Mongodb?
________________________________________________________________
you can lead a user to data....but you cannot make them think
and remember....every day is a school day
Viewing 8 posts - 16 through 22 (of 22 total)
You must be logged in to reply to this topic. Login to reply