Re: Migrate from Access 2010 / VBA

2012-11-26 Thread kagard
On Nov 25, 3:48 pm, Wolfgang Keller  wrote:
> > I am the lone developer of db apps at a company of 350+ employees.
> > Everything is done in MS Access 2010 and VBA. I'm frustrated with the
> > limitations of this platform and have been considering switching to
> > Python.
>
> > I've been experimenting with the language for a year or so,
> > and feel comfortable with the basics.
>
> > I am concerned that I'll have a hard time replacing the access form
> > and report designers. I've worked a little with TKinter, but it's a
> > far cry from the GUI designer in Access.
>
> The list of Python frameworks for rapid development of desktop
> (i.e. non-Web) database applications currently contains:
>
> using PyQt (& Sqlalchemy):
> Pypapi:www.pypapi.org
> Camelot:www.python-camelot.com
> Qtalchemy:www.qtalchemy.org
>
> using PyGTK:
> Sqlkit: sqlkit.argolinux.org (also uses Sqlalchemy)
> Kiwi:www.async.com.br/projects/kiwi
>
> using wxPython:
> Dabo:www.dabodev.com
> Defis: sourceforge.net/projects/defis (Russian only)
> GNUe:www.gnuenterprise.org
>
> Pypapi, Camelot, Sqlkit and Dabo seem to be the most active and best
> documented/supported ones.
>
> > Finding a professional grade report designer looks like an even
> > bigger challenge.
>
> LibreOffice is imho quite useful for database reporting. It comes with a
> native (SDBC) driver for PostgreSQL and allows Python scripting.
> LibreOffice Base can even be useful for CRUD GUIs.
>
> > I don't need to port any applications, but I will need to use the
> > data (mdb/accede format),
>
> Don't. Put your data into an *actually* transaction-safe RDBMS (which
> "Jet" is *not*), such as e.g. PostgreSQL.
>
> > design a variety of reports with multi-level groupings, and deliver
> > them to many individual recipients via email.
>
> Sincerely,
>
> Wolfgang
>
>

Thanks to everyone who replied.

The reporting question is the one that gives me the greatest concern
when I think about switching to Python. I haven't seen a simple,
powerful report writer like Access has, or Crystal Reports, in Python.
Is generating XML / HTML a workable alternative? (In most cases, end
users don't need to design reports.)

Thanks again,

Keith
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Migrate from Access 2010 / VBA

2012-11-27 Thread kagard
On Nov 26, 11:21 am, Michael Torrie  wrote:
> On 11/22/2012 08:19 PM, kgard wrote:
>
> > I am the lone developer of db apps at a company of 350+ employees.
> > Everything is done in MS Access 2010 and VBA. I'm frustrated with the
> > limitations of this platform and have been considering switching to
> > Python. I've been experimenting with the language for a year or so,
> > and feel comfortable with the basics.
>
> Python is just a language, just like VBA itself is just a language.  You
> can't just replace an MS Access VBA app with one in Python.  You have to
> replace your *tools* with open source alternatives, that hopefully
> python can glue together.  Wolfgang provided a nice list of such tools.
>
> One program that claims to be working towards Access replacement is
> Kexi.  It's not written in Python, but I think it does use Python as a
> scripting language, just as Access uses VBA.  I doubt it's anywhere near
> Access yet, but it's worth a look:
>
> http://kexi-project.org/about.html
>
> > 
> > Has anyone here made this transition successfully? If so, could you
> > pass along your suggestions about how to do this as quickly and
> > painlessly as possible?
>
> It will not be painless at all.  There is no "transition" path, really.
>  That's partly the result of Microsoft product lock-in, partly because
> you want to replace a complete system that happens to be glued together
> with, simply, "Python."
>
> I think Python could be a great fit if you could find the right tools to
> go with it, but it's not going to be easy at all.  Complete MS Access
> replacements is one of the may extremely weak spots in the open source
> world.  Partly because web-based apps often work better than a desktop
> DB solution, and you might want to go there too, perhaps using a python
> web development toolkit like django.
>
>

I understand your comment about replacing tools. Since things tend to
fall apart at the seams, though, I wouldn't mind keeping the seams to
a minumum. That's why I had been thinking about something like Django
or Web2Py. Web2Py seems to more correctly represent MVC, and I like
that its template scripting mirrors Python syntal.

Thanks for your reply.

I will now cower at my keyboard and await my "Django kicks Web2Py's
butt" lashing.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Migrate from Access 2010 / VBA

2012-11-29 Thread kagard
On Nov 27, 7:06 pm, David Bolen  wrote:
> kgard  writes:
> > I am the lone developer of db apps at a company of 350+
> > employees. Everything is done in MS Access 2010 and VBA. I'm
> > frustrated with the limitations of this platform and have been
> > considering switching to Python. I've been experimenting with the
> > language for a year or so, and feel comfortable with the basics.
> (...)
> > Has anyone here made this transition successfully? If so, could you
> > pass along your suggestions about how to do this as quickly and
> > painlessly as possible?
>
> I went through a very similar transition a few years ago from
> standalone Access databases (with GUI forms, queries and reports, as
> well as replication) to a pure web application with full reporting
> (albeit centrally designed and not a report designer for users).
>
> I suppose my best overall suggestion is to migrate the data first and
> independently of any other activities.  Unless your uses for Access in
> terms of GUI or reporting are extremely limited, don't try to replace
> your current system in one swoop, and in particular, be willing to
> continue allowing Access as long as necessary for GUI/reports until
> you're sure you've matched any current capabilities with an alternate
> approach.  For all its warts, as a database GUI and reporting tool,
> Access has a lot going for it, and it can be more complex than you may
> think to replicate elsewhere.
>
> So the first thing I would suggest is to plan and implement a
> migration of the data itself.  In my case I migrated the data from
> Access into PostgreSQL.  That process itself took some planning and
> testing in terms of moving the data, and then correcting various bits
> of the schemas and data types (if I recall, booleans didn't round-trip
> properly at first), so was actually a series of conversions until I
> was happy, during which time everyone was using Access as usual.
>
> To support the migration, I created a mirror Access database to the
> production version, but instead of local Jet tables, I linked all the
> tables to the PostgreSQL server. All other aspects of the Access
> database (e.g., forms, reports, queries) remained the same, just now
> working off of the remote data.  This needed testing too - for
> example, some multi-level joining in Access queries can be an issue.
> In some cases it was easier for me to migrate selected Access query
> logic into a database view and then replace the query in Access to use
> the view.  You also need to (painfully) set any UI aspects of the
> table definitions manually since the linking process doesn't set that
> up, for which I used the original Access db as a model.  I ended up doing
> that multiple times as I evolved the linked database, and I'll admit that
> was seriously tedious.
>
> While not required, I also wrapped up my new linked Access database
> into a simple installer (InnoSetup based in my case).  Prior to this
> everyone was just copying the mdb file around, but afterwards I had an
> installer they just ran to be sure they had the latest version.
>
> If you do this part carefully, for your end users, aside from
> installing the new database, they see absolutely no difference, but
> you now have easy central access to the data, and most importantly can
> write other applications and tools against it without touching the
> Access side.  It turns Access into just your GUI and reporting tool.
>
> If you have power users that make local changes they can continue to
> design additional queries or reports in their own local mdb against
> the linked tables.  They'll need some extra support for updates
> though, either instructions to re-link, or instructions on exporting
> and importing their local changes into a newly installed version of
> your master mdb.
>
> Having done this, you are then free to start implementing, for
> example, a web based application to start taking over functionality.
> The nice thing is that you need not replicate everything at once, you
> can start slow or with the most desirable features, letting Access
> continue to handle the less common or more grungy legacy stuff at
> first.  There are innumerable discussions on best web and application
> frameworks, so probably not worth getting into too much.  In my case
> I'm using a CherryPy/Genshi/SQLAlchemy/psycopg2 stack.
>
> As long as you still have Access around, you'll have to take it into
> consideration with schema changes, but that's not really that much
> harder than any other schema migration management.  It's just another
> client to the database you can run in parallel as long as you wish.
> If you do change the schema, when done, just load your master Access
> database, update the links, and rebuild/redistribute the installer to
> your users.  Many changes (e.g., new columns with defaults) can be
> backwards compatible and avoid forced upgrades.
>
> You can operate both systems in parallel for a while even for similar
> functionality (for test