Generating Reports from Access and Excel Files? 64
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."
Text Processing is what you want! (Score:2, Insightful)
What? (Score:2)
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.
Re:What? (Score:2)
Gah!
Re:What? (Score:1)
Why not just Access, then? (Score:3, Interesting)
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 th
Re:What? (Score:2)
Not so hard with Perl (Score:1)
dayjobmode (Score:5, Insightful)
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
Re:dayjobmode (Score:5, Informative)
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
Re:dayjobmode (Score:2)
For that you could do much the same as above, but jus
Re:dayjobmode (Score:2)
No other Express edition ships with any sort of reporting.
Visual Studio Professional ships with Crystal Reports; it might contain reporting services as well.
generate from database (Score:4, Insightful)
Re:generate from database (Score:2)
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.
Keep in Mind... (Score:4, Insightful)
Pretty standard Access job (Score:3, Interesting)
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.
Re:Pretty standard Access job (Score:2)
Re:Pretty standard Access job (Score:2)
Re:Pretty standard Access job (Score:2)
Re:Pretty standard Access job (Score:1)
Re:Pretty standard Access job (Score:2)
Re:Pretty standard Access job (Score:2)
Yeah. (Score:2)
MS
You can connet to pretty much any datasource with
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.
Access? (Score:2)
After that, why not do all the reporting with Access? Attach a few VBScripts to some buttons and zoom.
Re:Access? (Score:3, Informative)
Re:Access? (Score:2)
ODBC Linked Tables/MS Query (Score:3, Interesting)
It's easy to do, just beware that the Jet engine sometimes makes mistakes on linked tables (maybe better a pass through query).
Use REALbasic Standard (Score:4, Interesting)
Re:Use REALbasic Standard (Score:2)
Re:Use REALbasic Standard (Score:1, Interesting)
(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...
SharePoint (Score:2, Interesting)
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.
Re:SharePoint (Score:2)
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?
Perl or VB would make great glue for this (Score:2, Interesting)
Re:Perl or VB would make great glue for this (Score:2)
DDE/OLE/ActiveX/whatever it is this month (Score:1)
it's super easy (Score:2, Funny)
Re:it's super easy (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.
DTS is a good option (Score:1)
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 [microsoft.com]
Re:DTS is a good option (Score:1)
Definition here. [webopedia.com]
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.
The problem is the non-IT shop (Score:1)
The mainframe world was lousy with system analysts, who told programmers what to do. Do they still exist?
Yes, we do (Score:1)
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
Solutions (Score:2)
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....
One answer (Score:2)
Even better, a pile of perl scripts.
Don't fart about........ Do it properly (Score:3, 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 :-)
Proposing Oracle? That's a quick way to kill it. (Score:2)
Proposing a multi-thousand dollar system is going to go over like a lead balloon in a workplace like this.
that's the wrong focus (Score:2)
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. man
Re:Don't fart about........ Do it properly (Score:1)
Try web services and RDBMS? (Score:2)
There are many choices for a "free database". In add
ORM (Score:2)
PatternStream is your best bet ... (Score:1)
Open Source? (Score:1)
Monarch is your friend (Score:1)
Lets you configure models to pull data from excel, access, text files of all sorts.
Scriptable with COM as well!
-Rob