Slashdot Mirror


Generating Reports from Access and Excel Files?

casals asks: "I'm a computer engineer working at a non-IT company, and there's this thing bothering me: by the end of each job, we have to generate a huge report that's actually a composite of lots of minor reports, each one of them made using a different software. Since the softwares used don't interact at all, we have to input the same information five or six times - not too smart, I guess. The outputs are either Access databases or Excel spreadsheets (some of these reports are just Excel spreadsheets that must be filled with data); so, I was thinking about making an application that could aggregate all the input models and generate all the outputs I need, at once. Any suggestions?" "Here's the thing: it cannot be a web-based application (connectivity is a luxury at the rig), it has to run in a laptop (each employee should have it installed, stand-alone) and it must be able to import images from Excel worksheets. Crystal Reports uses spreadsheets as data sources, but it's not Open Source; I was thinking about using BIRT or JasperReports + POI, but that looks to me like inventing the wheel itself, so I decided to ask before digging into it."

64 comments

  1. Text Processing is what you want! by peripatetic_bum · · Score: 2, Insightful

    Perl or Python would be best.

    --

    Sigs are dangerous coy things

  2. dayjobmode by LiquidCoooled · · Score: 5, Insightful

    This is the sort of job visual basic (classic) can be good at.
    Interaction with MS objects is simple in this environment and theres plenty of help in the IDE.
    It lives on a machine quite nicely and is certainly quick enough since most operations will be at the speed of the apps, excel word or ado for the data.

    All very "enterprisey"(-4 years) and works on everything from 95 to now with minimal effort just install office and your app and everything is there.

    Write a new extractor for each report required and let it grab data as required and push it into the outputs.

    Its macro-macros.

    ot: does the .net experience appeal? theres gotta be some VB devs hanging around here - where have you lot started moving to since v6.0 'closed' its doors?

    --
    liqbase :: faster than paper
    1. Re:dayjobmode by CaymanIslandCarpedie · · Score: 4, Informative

      Yes, .NET could do this well. ADO.NET can accept Excel and Access files as data sources. 2005 versions ship with a nice little reporting component (based on same technology as SQL Reporting Services). All that can be free with the Express verions (I'm pretty sure the Express versions ship with the reporting components, but not sure you'd have to verify that).

      Though I never really use them (do more big projects where I prefer custom business objects for the most part) this sounds like a great little app for using .NET datasets. Use ADO.NET to populate the datasets (just a few lines of code) then build the relationships between your datasets and BAM you've basically got a little in-memory relational database consisting of data from your multiple misc data sources (be they Excel, Access, or whatever). You can then use this data to get what you need and display via databinding to grids, feeding the reporting component, or whatever makes the most sense to you.

      --
      "reality has a well-known liberal bias" - Steven Colbert
    2. Re:dayjobmode by CaymanIslandCarpedie · · Score: 1

      The above said, I really wonder if maybe a bit more of an "enterprise" solution might be nice (I alway like to over complicate things ;-). Would be you need to be able to generate this reports historically? If so the above solution will really only work with what data is currently in the Access, Excel, etc files (obviously). It may be worth looking into something that retains a full history of this so they can pull reports of any past jobs as well.

      For that you could do much the same as above, but just a bit of enhancement. Create a little app (or just you DTS jobs) to load all your misc data sources into one central DB. This would allow to keep a full historical record of all the data. Then build the same type of app as above, but instead of that app referencing all the misc data files it just references the central DB. "But I said the laptops aren't connected so cannot access the central DB". Well, not a problem ;-) With the latest .NET and SQL Server (yes I'm whoring for MS sorry), its REALLY easy to build an app with off-line capabilities where each laptop basically has its own version of the DB (MSDE) and whenever the laptops do connect to the network all the latest central DB changes can basically replicated to the local version pretty easily.

      Now this solution is will obviously take a lot more work, but could be a fun little project if business needs call for it.

      --
      "reality has a well-known liberal bias" - Steven Colbert
    3. Re:dayjobmode by Gribflex · · Score: 1

      SQL Server Express ships with Reporting Services.
      No other Express edition ships with any sort of reporting.

      Visual Studio Professional ships with Crystal Reports; it might contain reporting services as well.

  3. generate from database by Foofoobar · · Score: 3, Insightful

    Those reports are based on data pulled from a database. Do reporting on data in DB and not the output from singular queries. Save yourself some headache and time.

    --
    This is my sig. There are many like it but this one is mine.
    1. Re:generate from database by smittyoneeach · · Score: 1

      Wholeheartedly concur.

      While not exactly ANSI-compliant, and certainly choking on a lot of more sophisticated queries, the MS Jet engine does pack significant heat, especially if it can be used in a stand-alone mode.

      Access's report object is also a good 80% solution for laying stuff out on paper.

      Before upping the complexity of your solution, I would make very sure that you know exactly what the requirements are, and what is not already attainable with tools on hand.

      --
      Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
  4. Keep in Mind... by rmjohnso · · Score: 3, Insightful

    From your question, I'm not exactly sure what these reports are and what they are ultimately used for. However, if they are used for financial reporting purposes, this is an area that IT and financial auditors are looking at even more closely. Just make sure if you implement a pre-written package (OSS or not) or if you write something yourself, make it easy for an auditor to come in and get comfortable on the realiability of the application and they data flowing through it.

    --
    "Extremism in the pursuit of liberty is no vice. Moderation in the pursuit of justice is no virtue." --Barry Goldwater
  5. Pretty standard Access job by cyranoVR · · Score: 2, Interesting

    If your outputs are all Access and Excel, you should normalize all the data to one Access database and generate the "master report" from there. You should use good ol' VBA (or .NET using the Office interop libraries), not Jasper reports or whatever.

    A lot of people dismiss MS Access, but actually it has a lot of powerful functions for importing and exporting data of various formats. This is exactly the sort of job it was built for. You should really consider it.

    1. Re:Pretty standard Access job by ednopantz · · Score: 1

      Reporting and ad hoc querying is where Access really shines. Yanking data into it from Excel (or real RDBMSes) is trivially easy. Plus, you can't hit a dead cat without hitting *somebody* who can build the reports. Bring in an Access guy and be done with it.

    2. Re:Pretty standard Access job by truthsearch · · Score: 1

      My vote's the same. I don't like Access but it fits this job. It can be linked to other Access databases and spreadsheets for data sources. And its reporting abilities aren't too bad. Performance may not be so good but it's still the best way to go.

    3. Re:Pretty standard Access job by lexarius · · Score: 1

      Swing a dead cat. Swing. Unless you are suggesting that all dead cats are capable of building reports, or that the natural habitat of people who can build reports is beneath cat corpses. Which are amusing thoughts.

    4. Re:Pretty standard Access job by scdeimos · · Score: 1
      Reporting and ad hoc querying is where Access really shines. Yanking data into it from Excel (or real RDBMSes) is trivially easy.
      Except for a real RDBMS like Oracle.
    5. Re:Pretty standard Access job by AndroidCat · · Score: 1

      Usually a linked table from an ODBC source...

      --
      One line blog. I hear that they're called Twitters now.
    6. Re:Pretty standard Access job by YrWrstNtmr · · Score: 1

      Linking to an Oracle db from Access is no less trivial than linking from SQLServer or Excel.

  6. Yeah. by geekoid · · Score: 1

    How much time do you got? ;)

    MS .net VSTO.

    You can connet to pretty much any datasource with .net.
    The VSTO add one allows you to create managed code(not VBA) in dot net and fully integrate with excel.

    I have done what you need to do many, many times. So I feel your pain.

    I am availadble for consulting(not contracting) for a reasonable fee.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  7. Access? by Bastian · · Score: 1

    I don't have Access on this computer, so I can't test it, but it seems like Access should be able to import images from Excel files somehow. If not, I'm sure you can whip up a separate app to run the import and get the images in somehow.

    After that, why not do all the reporting with Access? Attach a few VBScripts to some buttons and zoom.

    1. Re:Access? by snuf23 · · Score: 2, Informative

      Access can import Excel documents as tables or just link to the Excel files. I have found that oddly enough the datatypes between the two do not always directly match. The biggest issue I've had is with data truncation moving Excel files to Access. Excel's text data type can contain more than 255 characters whereas Access cannot. You need to map text to the memo data type in Access.

      --
      Sometimes my arms bend back.
    2. Re:Access? by Bastian · · Score: 1

      At my office, we get around this by using some homegrown VB apps to do the import instead of Access's built-in import functionality - which is admittedly crappy.

  8. ODBC Linked Tables/MS Query by hey! · · Score: 2, Interesting

    Put it in a relational database and use a linked ODBC table in access or MS Query in excel to generate everything.

    It's easy to do, just beware that the Jet engine sometimes makes mistakes on linked tables (maybe better a pass through query).

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  9. Use REALbasic Standard by Helmholtz+Coil · · Score: 3, Interesting

    REALbasic is really shaping up to fill the niche left by the demise of Visual Basic 6. I haven't played with this feature extensively yet but it does have an office automation feature to handle Excel, Word, etc. Might be worth a look.

    1. Re:Use REALbasic Standard by cyranoVR · · Score: 1

      What demise? VB6 lives on in VBA aka "Excel Basic" and "Access Basic" (funny how they've come full circle with those names, huh?).

    2. Re:Use REALbasic Standard by Anonymous Coward · · Score: 1, Interesting

      let's see:

      (use search.cpan.org to find this items)

      DBD::Excel - treats excel data as db data
      DBD::ODBC - odbc access to databases that support odbc (like access)

      Spreadsheet::WriteExcel - Write to a cross-platform Excel binary file.

      looks like a solution to me, that is, if you use perl...

  10. SharePoint by baldass_newbie · · Score: 2, Interesting

    If you have a 2003 server, just flip on Windows SharePoint Services.
    Each project gets their own site.
    You can store all your data on the site and then muck with it as you like.
    Create your own lists/web parts/whatever.

    Have fun.

    --
    The opposite of progress is congress
    1. Re:SharePoint by pla · · Score: 1

      If you have a 2003 server, just flip on Windows SharePoint Services.

      What???

      Either I totally misunderstood the question, or your answer has nothing to do with it.

      Additionally, the FP clearly states "it cannot be a web-based application".


      So - Chance to redeem yourself here - Whatchoo talkin' bout, Willis?

  11. Perl or VB would make great glue for this by onlysolution · · Score: 2, Interesting

    My current job invovles alot of work similar to what you have to do. Both Visual Basic and Perl can do anything within office that Visual Basic for Applications can do. VB accomplishes the connection by specifying the respective office compenent's DLLs in the VBs references dialog box. Perl can talk to Office via Win32::OLE pm, see http://search.cpan.org/~jdb/libwin32-0.26/OLE/lib/ Win32/OLE.pm. Using the method produces code very similar VBA macros but with all the advantages of perl syntax and functionailty. In your situation I would use Perl for its excelent Office interaction and ease of text processing. There are nice free tools out there for packaging perl scripts as transparent binaries as well, so you don't have to worry about people not having Perl, etc on their laptops.
    I'll check up this thread later if anyone wants to pick my brain about this stuff.

    1. Re:Perl or VB would make great glue for this by Anonymous Coward · · Score: 0

      advantages of perl syntax

      Please don't post messages when you are drunk.

    2. Re:Perl or VB would make great glue for this by CastrTroy · · Score: 1

      I would recommend against perl. Linking to the Office DLLs isn't really all that good an idea, as you have to have office installed on the machine doing the processing. This may require extra licenses. Instead I would use C# or VB.Net with ADO.Net to connect to the Access/Excel files as datasources. This way you can use SQL queries on them. It's much easier to work in this manner, then trying to communicate with the app via the Office DLLs.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  12. Scary thought, Perl misuse by Anonymous Coward · · Score: 0

    This is actually how Intel (used to, maybe still does) gets all their tools to talk.
    Intel's ia32 design shops are a bunch of specialty made tools (iHDL vs VHDL, a fork of Synopsys vs real Synopsys, etc.). None of these tools is really maintained anymore. No one working in Design Automation really knows how these tools works anymore either. The guy who designed tool X left 2-3 maintainers ago. So, you dare not touch the tool's spaghetti code for fear of causing the multi-billion dollar project to break.

    So, what Intel does is wrap everything in Perl scripts.
    Want a hierarchical source control? Don't use CVS/Syn wrap RCS in Perl to make HRCS (very good tool BTW). Want Synopsys to process iHDL code? Write a Perl script to convert compiled iHDL into something Synopsys will read.

    Perl wrapper scripts on top of Perl wrapper scripts.
    Lovely.

    What is even better is tool ossification.
    Say Synopsys 2 (I make up a number) didn't have a feature Intel wanted. So, Intel threw a bunch of money at them and got a forked version of Synopsys 2 w/ the feature. Now Intel has used this fork for 5 years and built a ton of Perl wrapper scripts around it. Synopsys has moved on to Synopsys 5 with the feature as part of the normal way of doing things, but slightly different because they fit the feature in using more thought and care then the Intel forked rush job. Intel can't move to Synopsys 5 because none of the wrapper scripts work with Synopsys 5.
    Nor is Synopsys willing to port Synopsys 5 back into the Synopsys 2 fork. Synopsys has grown since Intel last dealt with them and they don't desperatly need Intel's cash.
    Even if you get Synopsys 5 into Intel, you'd have to write a wrapper script to make it's command line interface look like the forked Synopsys 2.

  13. What? by Colin+Smith · · Score: 1

    On Windows, accessing Excel and Access files?

    Ok I'm typing this using Firefox, Fedora with FreeRIDE running on another desktop and I think VBA is probably the tool for the job.

    --
    Deleted
    1. Re:What? by snuf23 · · Score: 1

      I would be inclined to agree with you except for the high mortality rate of programmers using VBA.
      Gah!

      --
      Sometimes my arms bend back.
    2. Re:What? by casals · · Score: 1

      Yes, I know... but the laptops use standard images, burned by a standard method.. and so it goes.

      --
      AT &F1DT0,T0800665544 - Real men, real help desk support.
    3. Re:What? by CastrTroy · · Score: 1

      I'm a Linux zealot through and through, and I think you're right also. Maybe a VB.Net/C# app if you want to program in a "real language". Use the right tool for the job. Using .Net, you can open Access files just a like a regular database, and I think (am almost certain) the same goes for Excel files. I think the hardest part about writing this app would be to get it to make any sense of the data. If all these excel/access files are made by individuals, I find it hard to think that there's any standard format. Even if they are supposed to be formatted a certain way, they may not be formatted properly. I get the impression the files are output from other programs. So the formatting may be pretty good, but writing the code to support all the different formats will be tough. I think this guy has a really tough time ahead of him.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  14. DDE/OLE/ActiveX/whatever it is this month by T-Ranger · · Score: 1

    I find it abhorrent to copy/paste something more then once. Retyping something is something I just dont do. Both Excel and Access can be (*cough*) accessed programaticly, with just about any Windows tools worth mentioning (including each other). You've got yourself a stupid system, but it should be possible to work within that stupid system better then copy/paste. Activestate perl can do this, but if your using (complex) excell and Access, assumably you have some local experience with VBA or, at worst, some domain specific VBA to use as examples.

  15. ODBC by Anonymous Coward · · Score: 0

    ODBC glued together with VB to extract the Excel images. Done.

  16. it's super easy by squarefish · · Score: 1, Funny

    Just use vlookup

    --
    Creationists are a lot like zombies. Slow, but powerful and numerous. And they all want to eat our brains.
    1. Re:it's super easy by Anonymous Coward · · Score: 0

      vlookup or any other excel lookup function blows! Proper sorting required and missing data just returns the next closest match. If you rely on lookup in your spreadhseet then your spreadsheet has errors.

      I am currently finding a combination of sumproduct and named ranges (using offset with imported data files) is the only reliable way to "lookup" data in excel. For example say you have the following table:
          a b
      1 Lot Data
      2 abc 100
      3 bcd 200
      4 def 300

      Define named ranges:
      Lot = offset($a$2,0,0,count(A:A)-1)
      Data = offset(Lot,0,1)

      Sumproduct and the named ranges can now be used like this:

      sumproduct(--(Lot="abc"),Data) = 100
      sumproduct(--(Lot="cde"),Data) = FALSE

      If you used lookup the second example would have returned 300.

      BTW, using named ranges like this means you will NEVER have to expand your data ranges in equation ever again as you fill in data the ranges automatically expand. This can useful for charting as well as the example data lookup.

      I have thought of using Access to do this but my coworkers are access illiterate. Our IT guys actually forbade me to roll out anything using Access.

    2. Re:it's super easy by Snad · · Score: 1

      vlookup or any other excel lookup function blows! Proper sorting required and missing data just returns the next closest match. If you rely on lookup in your spreadhseet then your spreadsheet has errors.

      If you don't want next closest match returns from your vlookups then put in a ,FALSE at the end and it'll force a match - eg VLOOKUP("cde",fullrange,2,FALSE) returns "#N/A", not 300.

      Still requires sorting though. Personally I'd use SUMIFs for numeric totals since SUMIF returns a zero if there's no match. SUMIF(Lot,"cde",Data) = 0

    3. Re:it's super easy by Anonymous Coward · · Score: 0

      *applauds*

  17. DTS is a good option by stormesj · · Score: 1

    DTS that is included with MS-SQL Server 2000 is a good option. I have done a lot of this type of thing, and it is quick and easy with an ETL (Extraction Translation tool) like DTS.

    I wish I could find and Open Source replacement for this tool.

    This book has been very helpful
    http://www.microsoft.com/MSPress/books/6525.asp

    1. Re:DTS is a good option by FuckTheModerators · · Score: 1

      Call me a nitpicking bastard, but ETL stands for Extract, Transform, Load.
      Definition here.

      Other than that, I wholeheartedly agree. DTS would do this quite handily.
      Probably not the cheapest option if there's no in-house MS-SQL install, though.

  18. The problem is the non-IT shop by Bob+Cat+-+NYMPHS · · Score: 1

    Your solution to your problem is the domain of a System Analyst, someone who figured out what output was required and figured out a path to get there from the data available. You are not looking for a tool, you are looking for a method.

    The mainframe world was lousy with system analysts, who told programmers what to do. Do they still exist?

  19. Tabletop Excel frontend by Anonymous Coward · · Score: 0

    You could check out Tabletop software. It's a visual frontend for Excel that makes working with data and graphs much more intuitive. Currently in beta, it is due out this summer. I would email those folks at Terc for more info/availability.

  20. Solutions by steppin_razor_LA · · Score: 1

    Plenty of languages can use Excel to manipulate spreadsheets (i.e. PERL, VB, .NET, etc). This is okay for an application that runs off the user's computer.

    You can also use Excel as a data source using the Jet OLEDB driver. I've had some problems w/ it (i.e. if you have a columns that contains entries like "bob", "jane", and "23" -- it will choke on the 23 because it is expecting text isntead of a number -- perhaps there is a workaround for that.

    Access is easy to work with as a data source....

    --
    Evolution: love it or leave it
  21. One answer by mnmn · · Score: 1

    Business Objects enterprise.

    Even better, a pile of perl scripts.

    --
    "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
  22. Move away from Access and Excel by Anonymous Coward · · Score: 0
    and you will be happier. Otherwise, which Access version and Excel version or your answer will be very different. If it's Office 2003 (where VB6 is your best hope) it's different than Office 2007 (where BizTalk & SharePoint & Infopath is what they're hyping). If it's an older Office you want to make sure it's VB6 and not VB.NET or your hozed.


    Better, switch to a platform that cares about backward compatability more than Microsoft does. MySQL & Perl would make sense. PostgreSQL & Ruby would make sense. Oracle & Java would make sense. But with Access and Excel, good luck catching up with the "please pay for upgrades and rewrite" treadmill.

  23. Why not just Access, then? by D4C5CE · · Score: 2, Interesting
    The outputs are either Access databases or Excel spreadsheets
    Maybe I don't see an obvious obstacle at that time of night, but what exactly is it that Access could not do?
    With built-in SQL, macros and BASIC, it can nicely import most things into extra tables, call external programs and if all else fails, interact with them by sending keystrokes - which should allow you to extract through the clipboard anything they wouldn't readily disclose otherwise.
    And with a bit of SQL again, generating reports from there is something it can do really well (despite not being FOSS just yet ;-)).
  24. Not so hard with Perl by Squidbait · · Score: 1

    I've been doing scripts at work lately in Perl to pull data from Access and Excel files. There's ActivePerl for Windows, DBI to get at the Access data, and other modules for Excel. It all works quite well, and the text processing of Perl is handy for those reports (more so than, say, VBA). Not sure how you'd get at the images though. (Note: I am not a Perl fanboy in general, but if it works...)

  25. Don't fart about........ Do it properly by SomethingOrOther · · Score: 2, Informative

    This prolly isn't what you want to hear but....
    Sounds like a situation I was in. I needed to come up with a long term robust solution for my company for the type of situation you are describing

    If it's worth doing then its worth doing properly. Dont fart about with hacks here and there. You need to get everything centralised on a SQL/Oracle etc server, getting rid of the shitty legacy Access databases etc written as a temp bodge by an intern 5years ago.... stuff that has now become mission critical. Get the suits to contract out the work if need be.

    Before you complain this isn't what you are pitching for, lets talk monney (suits like the bottom line).
    1) How much is it currently costing to type and process data six times (not taking into account the 'chinese whisper' effect and errors creaping in)
    2) How can your auditors trace the current mess and find where the monney is going?
    3) How future proof is your current setup? What will upgrading the current mess cost?
    4) What accounting errors already exist in the current setup (no doubt written by non-profesionals)? 5) What backup/recovery policy do you have for your existing mess (none?) and how much will it cost when (not if) Freds hard drive dies?

    Pitch the above points to your boss/suits and they will soon realise they need to do it properly and spend some monney. Of course, your situation may vary

    FWIW, I completely moved our company away from the legacy ad-hoc crap and am processing everything with a centralisedd LAMP stack. But what else wold you expect to hear on slashdot :-)

    Been there, done that, got the T-shirt and the blame :-)

    --
    Anyone quoted by a reporter knows how little they understand
    Don't believe what you read is the truth.
    1. Re:Don't fart about........ Do it properly by exKingZog · · Score: 1

      What you forgot to mention is that you're in for a world of hurt when users start saying things like "but in the old system I used to do it like THIS and now it won't?? What do you mean, I can't open the tables anymore? But I'm used to scrolling through all the data, I don't like using forms!". I don't envy anyone jobs like this.

      --
      "If he were a plant, people would roll him up and smoke him."
  26. Open Source by Anonymous Coward · · Score: 0

    Crystal Reports uses spreadsheets as data sources, but it's not Open Source

    Neither are Excel and Access.

  27. Yes, we do by Hyperhaplo · · Score: 1

    However, most of my colleagues would not be able to do this. They have lived in the mainframe world (think COBOL, DB2, OS/390, TSO, REXX, JCL etc) for years. They'd probably be able to make excellent suggestions along the lines of processing the data and reporting with SAS or COBOL.. but that's the mainframe.

    So, to answer your question: yes, we do exist. Most of 'us' however, are barely able to use Excel.. let along something as 'complicated' as pulling data from several sources and creating a report (even by hand).

    To answer your question from the mainframe side (go on, let's assume this problem was on the old iron): Sure. We've solved it a million times, know how to make it effecient (or not) and can chew through this kind of problem easily. We do it every day. Next!

    (for those who are interested.. in the mainframe world this data would be coming in from several sources: a large database, eg: DB2, MQ, VSAM files, flat files or routed in via from an external source through an number of input paths (and most likely then stored in MQ.. Hey, it's what it is for) and stored. Batch processing would then clean up and/or massage the data and store it in a form to be used (most likely in DB2, VSAM or a flatfile) and then the data is wholescale processed by a program (Cobol, Delta, Assembler) or SAS. Furthermore, for those who care, the mainframe has a linux partition running (alongside ZOS) and is capble of lots of useful functions.)

    --
    You have a sick, twisted mind. Please subscribe me to your newsletter.
  28. Try web services and RDBMS? by DanteLysin · · Score: 1

    I work in a company that uses Excel to track many aspects of the business. We face a similar problem trying to generate reports from multiple Excel documents. Recently, I've started moving each business owner to an RDBMS solution. Front ending to a web site, users can login to a simple interface to interact with the data. Using web servers, users can use Excel (remember, Excel can use XML streams as a data source) to manipulate data for any custom reports.

    There are many choices for a "free database". In addition to the traditional, free, Linux based databases, Microsoft, Oracle, and IBM have made free versions of their commercial database. In our case, I choose DB2 Express-C edition. Allowing 2 CPU's, 4GB of RAM, and unlimited data files and data file sizes, it was the best option for our company. I just had to convince the others to abandon Microsoft SQL Server Express. ;)

  29. Proposing Oracle? That's a quick way to kill it. by Valdrax · · Score: 1

    Woah, woah, woah! Any shop using an ad-hoc collection of Access DBs and Excel spreadsheets is probably a small business that can't afford Oracle. They're comfortable with their current inefficient system, and the guy proposing this is planning on doing it with no funding and probably little to no allocated work time. He needs a free solution because he has no budget.

    Proposing a multi-thousand dollar system is going to go over like a lead balloon in a workplace like this.

    --
    If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
  30. If I was doing something like this I'd be looking to build a good domain model of what I was doing and then a ORM tool to map that to the data. I'd also be looking for a dynamically typed language to write in, one that is supported by .Net for its native access to the data artifacts that you have.

  31. Tableau Software by Anonymous Coward · · Score: 0

    http://www.tableausoftware.com/

    Sure, it's not open source and it costs money, but it does everything you're asking. For you to roll your own, your company is going to end up paying you a lot more than that costs and then what happens when something doesn't work or if you leave?

    http://www.stanford.edu/class/ee380/Abstracts/0605 03.html
    http://www.stanford.edu/class/ee380/schedule.html

  32. that's the wrong focus by kpharmer · · Score: 1

    > Woah, woah, woah! Any shop using an ad-hoc collection of Access DBs and Excel spreadsheets is probably a small business that can't afford Oracle.

    Not necessarily - since oracle for a small database ( 4gbytes of data I think) is free now anyway. But *oracle* doesn't matter - use of any database, even mysql, would be a drastic improvement.

    What's probably more important is:
    1. there's no network for a centralized solution, they use client software instead
    2. there may be no funding to do this right
    3. management may be of the type that doesn't like to tackle big improvements that it doesn't understand well

    Ok, so lots of unknowns. But here's a potential approach:

    1. A centralized solution using a single database is the ideal approach. But perhaps the network connectivity simply cannot be overcome. Or at least not immediately - so first implement a small database on each laptop. This means something really tiny like MySQL. Perfectly fine to start with, and compatible with everything else - so you could convert to whatever later on once the network issue is resolved.

    2. You are probably stuck with the excel & access - since it sounds like they are the output of required applications. Fine, then you just need a way to import that data into MySQL. Some databases (like db2) have built-in import tools for excel - so you might get lucky. Otherwise, I'd shop around for the simplest utility to help with the task. I'd avoid anything that's too much of a distraction here - .net, etc. Keep it extremely simple.

    3. I'd make the import/export process as simple as possible. Ideally a big green icon they punch.

    4. You could use a light-weight http server along with php for the reporting. Again, very simple to implement.

    Once the above is working fine on the laptops, then if the network problems can be overcome it wouldn't be too difficult to centralize everything. The same web reports that ran on the laptops can run on a server, along with the same database schema as well. Could theoretically even be mysql if the amount of writes is small enough. Uploading the files, or transferring data from the local copy of mysql would be the only new development required.

  33. Excel can generate powerfull report ! by Anonymous Coward · · Score: 0

    If you already have a normalized data, why do you need some other tools to generate a reports? Excel comes with a powerfull report generating facilities, which unfortunately not many people know how to use it.

    There are basically 2 features in Excel that use can use

    1. Pivot Table and Chart (Data Pilot in OpenOffice)
    2. List

    List is quite simple, it is good for filetering data (not really a report). However, Pivot Table is very powerfull. It is what makes Excel different from other spreadsheet! To generate a report, just drag and drop. You need a few try to get hang of the concept. Once you get use to it, you don't want to use other things for your reporting needs. I come to know about pivot table/chart when I attended technology preview by Microsoft. The guy said that it's what makes in Microsoft they do not use paper report. I don't know it's true or not, but it is possible. I would take pivot table report over paper report anyday.

    OpenOffice is cathing up in this area, but Data Pilot does have some bugs. It's functional , nonetheless. It's nice to see a free alternative implementing this feature. I can comfirm that Lotus 123 does not have this feature. Does anyone know about Gnumeric and Koffice (having this feature or not)?

  34. PatternStream is your best bet ... by diwanoski · · Score: 1

    This software has some pretty amazing capabilites and can connect to spreadsheets, word files, multiple databases, HTML, XML, CSV, well you get the picture, all in one contiguous stream of data for pubilishing. I would recommend checking it out for your needs. www.patternstream.com

  35. If you don't mind using Java by Anonymous Coward · · Score: 0
  36. Open Source? by tehcyder · · Score: 1

    I may have missed something, but if you are happy using Excel/Access why do you then complain about Crystal Reports not being OS?

    --
    To have a right to do a thing is not at all the same as to be right in doing it
  37. Use VBA for this one by Anonymous Coward · · Score: 0

    VBA has all you need for this job. You are working from single laptops. I understand.

    Definately get all your data pulled into one Access db. Output reports from there.

    But what about the charts (from Excel)? Use an automated process with VBA in your excel file to output the charts. Use the autoopen sub to start the process once the excel file is opened, or called from the access db. The excel file would open, do the data crunching(perhaps drawing the info from the access db with MS query) and chart building, export the charts to be picked up by the access db. Even better, be sure to use the UserDefined Charts - that way you get exactly the chart look you want. Be sure to look up the command for exporting the charts - it can be found in the VBA help file under Activechart.Export.

    In a data center, long ago, I helped make simple excel files which were launched hourly. Upon opening, those excel files automatically pulled in server statistics (text files), ran calculations on that data, created nice charts, exported the charts as GIFs, and then closed down. The GIFs were static names, so they were overwritten. The GIFs were included part of an HTML file for viewing. Simple, effective.

  38. Monarch is your friend by robklaus · · Score: 1

    http://monarch.datawatch.com/monarch-pro.asp
    Lets you configure models to pull data from excel, access, text files of all sorts.
    Scriptable with COM as well!
    -Rob