Microsoft Access: The Database Software That Won't Die
medium.com
medium.com
But man, was it a fucking lifesaver. Just for one example, we often had to send equipment out to different labs since we didn’t have the capability to test them, and shipping stuff required a standard military shipping document with various mundane pieces of information about the stuff being sent. Creating these documents was a tedious process of looking up the data manually and then typing it into a Word file. I just recreated the document as an Access form, with fields that would populate from a query. Creating the shipping documents went from 30-45 mins to essentially the click of a single button.
I know what I'm doing with databases. I never want to use Access if I don't have to. But it has the enviable property of "no server administration required" which meant that we could backup the DB to a shared drive and people after me could modify the thing without being a DBA.
The amount of time that database saved really is mind-boggling.
It's also very bad at concurrent users if you do go down the path of dropping it on a network share if it's a normalized schema, since there's no server to cache queries or do optimizations... for strictly data entry against a simple schema you can maybe push it to low 100s of users, but backing up / restoring / rolling out new versions is a nightmare when the frontend and backend are commingled like that. You can deploy different versions of .mdbs if you have an external backend, though I've never seen anyone do so with an Access database backing an Access "UI" project...
There’s a huge need for a sql-compatible sqite-like database for this purpose in Go.
I may be wrong, but sqlite is used a lot on Android which uses bionic, not glibc right? So it seems like there should be hope of switching to another libc if you need.
https://github.com/mattn/go-sqlite3/issues/212#issuecomment-...
During my internship 25 years ago I build a system to register aircraft accidents and near accidents. This system used access 1.0 (Windows 3.1) as the front end, storing the data in Oracle 6, I think connected through Odbc.
For SQLite there’s https://github.com/softace/sqliteodbc but at that point I might pick a different DB for a more established ODBC driver. Or just use Access...
So... I can completely understand why someone would be interested in making a more universal solution for this very common problem.
[1] https://www.filemaker.com/products/filemaker-pro-advanced/
I also tend to avoid it because it’s halfway in between Access and a real SQL database (Postgres, MySQL, etc). But also — have you seen how expensive it is? If you want an individual license, it’s >$500. Or you can get a subscription per user per month.
FileMaker seems like one of those applications that Apple has never really known quite what to do with.
This was before my time there, but I can imagine things were productive at first - the databases would have been simple and well-targeted to their business needs. However they were created without understanding of any database theory such as normalization or what makes a good key. Their authors had not been burned (yet) by the horrors that battle-scar devs, such as time zones, server moves, and decisions by the business to renumber identifiers one might naively choose as keys.
The quality of the database designs varied from bad to decent, but eventually most of the databases came to one fate: the original author left or got promoted, and their replacement knew how to add to the database but not how it worked. He/she came on board long after the Access Training Road Show had left, so hadn't had that training either.
A few business units noticed a sister unit had data they needed, and found it mutually beneficial to smush their databases together into one amalgamation. Lacking an understanding of both database theory and each other's database designs, much less their own, they simply built views, on top of views, on top of views. The resulting queries resembled a coral reef growing out of a subduction fault.
In due time the problems became too large for them to manage. New versions of Access would break things they couldn't fix. It bears noting that even if the databases had remained simple (which they didn't), the technology upon which they were built was emphatically not simple, which is itself a vulnerability. So the business had all these medium-sized systems they didn't understand running on a technology they didn't understand all catching on fire at once. It was the technical debt equivalent of having 100 balloon loans suddenly come due in the same 18 months after 7 years of low payments.
So then it became our problem (in IT). After multiple renumberings, correlating what physical location a store number (primary key) referred to required knowing or guessing the date when the row was created, so it could be looked up an historical cross-reference table. Comparing date/times required knowing the location the row referred to. And every business unit had developed its own jargon, re-using trendy words they heard other business units saying but using the words to refer to other things - so you could never really be sure you knew what an identifier really meant. Because of the mergings you might have one database where table "Accounts" refers to corporate accounts, but "Accounts2" refers to user log-ins.
The Microsoft Access program has versions. The Microsoft Access database format also has versions. This leads to a matrix of combinations you have to keep in your head as to which version of the file they have versus which version of the program they're using, and whether it will be bug-compatible or beneficial to upgrade one or the other or if that's even possible with the combination and database code they have. Don't even get me started on reports generated by Access...
Then at least I could fix bugs in the UI and after a while that's where most of the bugs were.
We copied the structure to SQL server, built some stored procs ( only allowed way to access the DB at the time ) and fronted it with a bunch of aspx pages. They loved it beyond my expectations.
All of that was new learning as I had only ever done the LAMP stack at that time and this was all Microsoft stuff.
It ended up being useful enough that some folks up at division copied it and used it for tracking all of the laptops they were signing out, along with the paperwork, which you can't escape regardless of where you are.
I think it is a fun and compelling challenge to see just how much of the business you can put "on rails" with computers and various integrations. I have some background in semiconductor manufacturing, and the degree of automation I witnessed there got to me in a really deep way. Experiencing a massive factory that can literally run for hours-to-days without a single human inside is something else. I feel a lot of businesses can strive towards similar goals. Being able to fully-automate manufacturing of silicon chips is an incredibly opulent affair, but if you can simply automate a paper-bound business process that is on a hot-path (I.e. used many times a day), it could potentially save a struggling business.
That's funny. I work at a very large fab, and of all the places I've worked, this is the one that's most in need of the sort of in-office hot path optimizations you mention, and doubly worse is that it's the least susceptible to allowing someone to do anything about it.
(In fact, it's regressing. This month saw a fab-wide rollout of a document management system that has caused a ~10x increase in wall clock time for attaching files to emails or through forms on the intranet. Now consider what that means when the company exhibits a pathological form of the passing-MS-Office-documents-around-to-each-other mindset...)
I once worked for an insurance brokerage whose in-house CRM had started years before as an effort to automate paper-based forms. The company's business model was based on having their sales advisers fill out insurance policy application forms on their customers' behalf and originally this had been done using pen-and paper, which was obviously time-consuming and laborious.
At some point, someone in the IT department had had the idea of scanning the application forms to image files and writing a simple PHP application to insert those images onto web pages with HTML <input> tags superimposed over the form fields, thus allowing advisers to fill in the forms using keyboard entry.
They quickly realised that once forms are filled in digitally, (a) you can store the form data into the database and retrieve it later for further editing, (b) some of the data can be filled in automatically from the customer's records and (c) when generating quotes across multiple insurance providers, the common parts of each insurer's form can be filled in from data previously entered elsewhere.
While the idea of superimposing HTML input fields over a scanned paper form isn't one I've encountered before or since, that company was turning over $3M per month by the time I joined, so there is clearly mileage in the idea.
Incidentally, it turns out that basing your entry forms around scanned paper forms completely kills dead any of the interminable bikeshedding that takes place around UX design with complicated, multi-section forms.
You can also do this with PDF files, if you have Acrobat (or at least, it was possible - last time I played with it was several years ago - 2009-ish).
You've probably seen "editable" PDF files - where there are fields you can type stuff into - much like a paper document that you'd put in a typewriter to "fill out".
Well, it's actually possible (in Acrobat) to set up a "form submit" (virtually identical - IIRC, it was an actual HTTPS POST message) that you could point to a web endpoint. Add a button to the bottom of the page to submit the form, and it could also capture and handle errors (like if the service to receive the POST is offline, or has an error, etc).
I forget was Adobe called it - but it worked rather well. I worked for a web app company who was contracted by a doctor's group to redo their website, and part of that was automating the forms. They wanted some way that a patient could download and use their standard PDF forms, to both enter and upload the information, or print it and fill it out manually and return it, if they were more comfortable with that.
They didn't want an standard web form, or anything like you mentioned - because they might change the PDF for manual copies. Instead, we supplied them a template and taught them how to use it (and not to change particular parts - the parts handling submitting/errors and such) - so they could continue to use it. The backend was a PHP/MySQL system, everything was HTTPS, and IIRC we encrypted the data on the backend. I'm not certain that it was completely HIPAA compliant, but it was certainly as compliant as "form filled out with pen and filed in folder).
So yeah - there's clearly a market for this kind of thing...
Livecycle Designer?
We built an internal tool that effectively converts any business form into a PNG @ 300DPI, and then defines a fixed element layout on top. This allows for pixel-perfect positioning of elements you'd like to fill on top of literally anything you can get into a PNG. Each definition is effectively just a JSON model specifying where everything lives, and then it is fed into some C# System.Drawing routines to fill the template image with expected data. The output is then converted back into whatever format is most ideal for downstream delivery (i.e. merge PNGs back into pages in a combined PDF).
The downside of this approach is that rasterization of PDFs or other upstream forms items effectively strips them of any textual data that you could mine out of the document. So, there are certain use cases where this would be a bad approach. For most businesses, I don't think this is usually a concern, especially if you already have the data you used to fill the document in a good structure somewhere for alternate delivery approaches.
Edit: Above was an attempt at digitization while this thread is about form automation. Understood. My point is that there was a lot of automation that could have been employed but wasn't. With that and good UI principles, the org could have made us more efficient. They chose not to because what they really wanted was a searchable database of patients treated so they could get more funding. EMT productivity was never a consideration.
I'm not saying the solution they used was a good one mind, but I bet that was part of the motivation to implement it that way
I've seen a similar thing at a medical insurance company, not sure if this one was access (that they made IT take over) or winforms, but to make things even worse the list was un-ordered and semi-random. I only found out about it because the main user was bitching to me on a smoke break, but it had been this way for years and cost her at least a couple of hours a day. After the 5 minutes of work to slap an order by clause in there and the weeks worth work getting it though the bureaucracy (yay for that stupid process of billing internal clients) she was in tears.
Efficient and automated claims processing was the whole reason this company existed too.
It really didn't have much in the way of error checking to ensure that the state of the equipment was consistent i.e., you didn't start a generator or main engine twice in a row.
Which became crucial when I handed my baby over to the FNG at transfer time, and went on house-hunting orders.
Came back, ran the report, and he'd gooned the data so bad that we ran our equipment for negative time.
Which was an outstanding business opportunity! Run the hours off of the equipment! Yes! We can name our price for this device!
Other than the part where time doesn't exactly work that way, the idea was great.
It was actually amazing how far it could scale, you could put a shared MDB file out on a Novell network share and have 30 concurrent users with no server app at all, users just doubled clicked the MDB.
I still think there is a killing to made on a modern day Access "Done Right". DB, Gui framework and printable report generator all in one sharing the same language front to back, top to bottom.
Talk about a rapid design tool of both forms and reports (and schema), Access was tough to beat. I think Corel/WordPerfect had a similar concept as well.
Good times.
My manager was a huge fan of Progress, such that it became the de facto tool of choice whether it fit or not.
I was less of a fan, but just checking now, it still exists! I'm curious about this one blurb from their web site though, which proclaims, "Progress Named a ‘Strong Performer’ in The Forrester Wave™: Low-Code Development Platforms For AD&D Professionals, Q1 2019"
I'm not sure how a database applies to sitting around with dice and figurines, but I've never really understood that whole pro gamer thing.
You could be describing myself. However... I beg to differ on it's scalability... There were 'issues' with the 2.0 Jet engine when accessing MDB files on network shares that would often result in 'missing data'. Lots of fun. (Lots of work up-sizing to actual SQL back-ends as well though)
Once I started learning SQL server and VB5 for real client server apps I never looked back, but then you had to go find a reporting engine too.
Lotus Approach also did the same as Access.
Reminds me of Airtable, Monday, Notion or one of these all-purpose productivity tools
For heavy stuff, I'll take Postgres anyday given the choice, but Airtable is great for small user-maintainable tools + dashboards, etc
I think there are also some very low limits to the number rows/columns you are allowed to use?
I'm not really sure - honestly asking...
Access is like a cockroach. It never dies as long as some Microsoft stuff is still around. The only thing that will kill it is subscription licensing -- Microsoft eventually take it away for Azure AirTableClone.
I use it as my own version of Shadow IT for my wife's business when im just too time constrained to make her proper web apps to do stuff, and she's too reluctant to spend any money on things, I just whip up a solution in Airtable. She has a CRM I made her for managing her students and their balances. Works well and was super fast to put together.
It's pretty crazy capable as Airtable has various kinds of built in functions for math and string manipulation, plus it can do various kinds of relations, joins, aggregates and rollups. Heck the resulting table even exposes an API!
The only thing I can't really seem to do is business rule validation stuff that a typical CRUD app would contain.
edit: And if that sounds easy, imagine how you would go about upgrading and patching and extending your access-like cloud platform twice a year without any significant breakage of any of your customers varied and extensive customisations, and without any significant downtime, and keep that up for 20 years. Thats the thing that Salesforce are good at, and not many people appreciate how difficult it is.
Which, as you might imagine, resulted in a huge number of multiple choice, similarly-named properties, with all options also being inscrutablely named.
Long story short: programmers are terrible at UX.
I loathe Workday. Performance reviews and taking time off have unneeded steps and comments in weird places. The flat and colorful UI looks nice but it’s hard to find stuff.
The nasty forms are always a result of internal politics and bad governance. One client that I worked with had 8 different ways to represent a physical location. Each operational director in the organization had a unique system, and nobody mapped them.
If you put a real development team on the platform and the leadership gets it, it's an amazing tool.
Salesforce seems like a particularly bad solution, you end up with a small army of high priced, low skilled salesforce contractors and a heap of vendor lock in.
SalesForce, on the other hand, seems to be more a platform-as-a-service targeted at the user with aspects such as SOQL instead feeling like a bolt-on to give developers access to the data.
So while they fill the same business case, they approach it from a completely opposite perspective.
(Source: software engineer that had to work with SalesForce and other CRM tools extensively while working with data engineers; and that has worked with pre-dotNet ASP + MS Access)
I guess I'm talking about a cultural difference. It's been my experience that Access devs know when a problem is mismatched for Access (and move to storing data in SQL Server, etc). FileMaker devs seem to press on even when it's clear that the platform isn't capable of supporting their needs.
As one anecdote (of several): I support an instance of a FileMaker application w/ several 500MB+ "FMP" files, each of which take _hours_ to "integrity check" when the "FileMaker Server" process crashes unexpectedly. We talked to the dev about putting at least some of the data into an RDBMS (MSSQL, Postgres, etc) and they scoffed at the idea. It simply didn't occur to their mind that the platform might not be a good fit for the purpose.
Had Microsoft gone for a more custom interface like Filemaker instead of just nicely packaging up more general tools, my entire life might be very different and probably not better, even 15 years after having touched Access for the last time.
Years ago I worked for a company that claimed to have largest Filemaker Pro database in the southern hemisphere. One day there was some sort of disk issue and filemaker silently failed, then for months it kept pretending that everything was fine, it just wasn't writing to disk. This lasted until a power outage one day when the company discovered it had lost months of customer data, no backups of course, the backup system was working fine but there was no new information being written.
Data loss isn't forgivable, especially in the non-technical user space that filemaker is aiming for.
I'd be interested in knowing who the company was, and the metric they used to judge their database size. I worked on one that was 4GB data and >40GB binary files (photos, documents). Interestingly, when all the data was removed and the file was optimised it came to less than 2MB.
Later, I realised that it had a Y2K bug in it, but oh well.
I was able to build a CRUD app with 20 concurrent users in a month just using a shared directory to host the backend database.
It would have taken a team of engineers 6 months to do the same properly developing a Java web app with Oracle database.
Access does have such easy WYSIWYG reporting tools that I still miss.
We lost something in the switch from "workgroup" (dBase thru Paradox) to client/server.
Spoiler: ODBC broke the tight coupling of code and persistence. Spawning monstrous hacks like ORMs and ActiveRecord. What Ted Neward famously called The Vietnam of Computer Science.
It took me a very long time to figure out what went wrong. Even longer to fix it.
Cliff hanger, I know. Someday I'll post polish and publish that fix. Using my real name.
Access was created to compete with and replace those single-user and workgroup dBase-era software solutions from the 80's and early 90's. It helped them to cover the bases of the 'professional' desktop use cases as they won people over with Windows. With that mission complete and all competitors long gone, Microsoft now needs to kill off Access to get more people migrated over to SQL Server solutions which will allow them to extract more value from their customer base.
And you're essentially saying that this is already another order of magnitude worse than what came before Microsoft. Now I wish I was able to see that older software in action.
If history is any guide, the mobile spreadsheet will never do some (probably much) of what the desktop version did[1] and the desktop version will never get some of the new capabilities of the mobile version[2]... yet over time the less capable, but 'better', mobile app will become the new normal for many. The good news is the mobile version will still be more powerful than whatever platform comes next.
I'm greatly over-simplifying and glossing over some things (esp. re: the dynamics of the text UI and early GUI eras) but I think the basic idea still holds.
[1] It's 'good enough' for the majority of use cases. Some would argue that the lost features were cruft anyway. Which is fine unless you needed that cruft...
[2] The profit motive is no longer strong enough to warrant the needed investment in structural changes to the desktop application
I don't like that "good enough" argument, because it misses the fact that features shape use patterns. Features are enablers.
To give a random example: I once visited my wife's office, and was given a task I could help them with while waiting. It was a task they did very frequently, and it boiled down to specifying a search query, and then adjusting some data in each of the result. They thought it'll keep me occupied for an hour or two, manually adjusting each of the hundreds of results, but I looked around the software and found a way to do a bulk update hidden somewhere in the UI, and was done in 3 minutes.
I taught the people in that office the trick and they were grateful, but it made me wonder - what if one day the software vendor removes bulk update switch because it's rarely used? It's only rarely used because it's not easily discoverable (but the telemetry will not tell you that). Wondering even further - how much money and opportunity to growth do companies lose on office tasks that are inefficient only because software was developed for the lowest common denominator, and offers no advanced features and no path to mastery?
Here I'm only commenting on the impedance mismatch between code (biz logic) and persistence (eg RDBMS) introduced with ODBC. (Specifically, type information in the db schema is lost to the client code.)
Okay, writing this out now, Microsoft (and everyone else), probably didn't appreciate what was lost with ODBC, so didn't consider how to continue the Access style of CRUD to client/server. So we ended up with nonsense like LINQ.
Netbeans with Swing UI designer and database bean components.
You also have to deal with DBAs who like to say no and permissions every time you have to make a change.
Even if you broke down all the bureaucratic barriers, Access is still quicker to make a simple to make a simple CRUD UI than Java swing.
Sometimes worse is better.
Not saying I would use Access today but that is because I became a software engineer who has more authority to use the proper tools. When I started out as an data analyst, Access was the only thing available I had to get the job done and it did it well.
I have experience with both and the NetBeans UI designer is hardly much different.
Now if we compare languages, Basic dialects win hands down for such scenarios.
I don't know what the actual market [that will pay money] is for it, but I can certainly say I've never seen anything quite like it.
In high school, I worked as a sysadmin/misc. programmer for a company whose whole business was software built on top of Access. I was the weird Linux person who ended up having to do a lot of stuff in Access (97).
It had its issues. It was not perfect. But the simplicity with which you could bind a visual tool and query designer to an ODBC/SQL backend--I think--goes unmatched 'til this day.
There are many things I cram in a spreadsheet these days that would be way more flexible if they were instead built on a quick and dirty Access DB.
If there are equivalent tools out there, please, let me know.
I'd really appreciate HN's feedback on this -- if anybody has thoughts -- I'd love to hear them! I'm also david@ if you'd rather email me anything. Thanks!
Access (and to a lesser extent, Excel) empower anyone to model their data and manipulate it without asking permission. The problem is they don’t scale well, there are no backups, they don’t show up in a data catalog anywhere, no integration with enterprise SSO, etc. They do benefit from file-focused solutions for these issues (eg the Access file lives on a network drive which is backed up) but they fall far short from what you expect from a production database.
So my challenge is: how can I let anyone in my organization create a new database, with all the backup/authentication/discovery/scalability out of the box, for them to connect to Retool?
Printable reports is so 90's. Back then you printed reports and shared reports on paper. In meetings everyone gets a printed copy of the report. Today web is the way to share reports, and you project reports on to a big screen in meetings.
I’ve worked in organisations that have tried to kill these tools off but unless you can lower the cost-to-play or offer a “better” self/serve alternative, you will fail.
There are a lot of those kinds of people out there, and they're extremely useful in introducing minor optimizations that other people wouldn't be able to find. Access is for that guy who says "I know there's a better way to do this," but doesn't have access (no pun intended) to a team of programmers and a project manager.
I didn't major in programming in undergrad but I've taken classes here and there, so in my first job out of college I replaced a really awful system of spreadsheet-jockeying with an Access DB.
I considered other options, but that it's self contained and NOT a web application is a feature, not a bug. I couldn't get access to the corporate database, so I just ran the Access DB on a network drive. It's still probably there, ten years later, running happily on its own.
Honestly, it seems like the fix for Access... is a better version of Access. It fills a very useful niche, between spreadsheets and full-fledged applications designed by programmers. It's so much easier to make a quick app that works for your organization than get an external team of programmers involved, who will probably tell you "no" or remain unconvinced that you're worth helping.
With Access, you don't need political clout, you don't need years of experience, you don't need a title. Just build an Access application and get kudos from everyone in your team for making their lives easier.
I’ve had projects that were red-taped before getting off the ground due to resources being placed elsewhere. I then take those project ideas, and instead build them in Access as a POC using shared drives, splitting the database, etc. By the time I have 100 users saying how useful the application is in a couple months, other bigger projects haven’t even finished a project plan. Meanwhile we’re then ready to scale the solution using an appropriate stack and basically can just say “replicate our POC features but improve performance, security, accessibility, etc”. So far that’s worked pretty well for me.
In summary: find people’s Excel files with a mess of VBA and formulas —> see if the use case should be expanded —> build POC in Access without permission/budget from a bunch of people —> see how it goes and then plan to scale with the evidence you’ve gathered from your POC.
I also have fondness for Access, but I think that we have a chance for something like that again.
Flow is interesting, but AFAIR it requires extra clicking in the administrative interface to get running, so it might not work for shadow IT as well as Access does.
On the other hand, I'm convinced that once Office on-line reaches feature parity with the desktop, they'll quickly drop files, and turn Office into just another SaaS that holds my data for ransom. I don't want that.
I’m a Mac user but there’s plenty of Windows machines with Office lying around, and my first gut instinct was to start throwing something together and importing the Excel file to populate the DB, and construct ‘robust’(er) queries & scripts for interacting with and getting reports from the data.
Perfect? No way. But within a couple of days I was able to get something working more reliably and (albeit temporarily) “shored up” a major calamity waiting to happen. Am I proud of my work? Absolutely not. But it was quick, cheap, and cheerful. Eventually when urgency has lessened and there’s more budget (in terms of mind-space, time, money) we can start looking for developers that will take my kludge and make it into something more bullet-proof.
For now, the leap from Excel to Access has been a huge leap forward (the kind that the physically illiterate offhandedly describe as a “quantum loop”, not realising that quantum leaps, though discrete in nature, are tiny).
But setting up something for a Team immediately opens questions like Access Rights (Can we limit this just to the team, or even have profiles?), Security (Needs to plan nice on the VPN/intranet), Scalability (in theory easy, but provisioning/managing VMs is hard), and Recoverability (where are the backups stored and who makes them). Those are all hard problems from not just a technical perspective, but also a business one.
But that is just the technical hurdles, not the process ones. In a well (overly?) managed system it can take a handful of people multiple meetings and possibly hundred of man hours to add a new field to a form. Adding the field is trivial, but deciding all the business rules around it is hard. If you run your own system, you can ignore any established process.
So its two fold. Its not just IT start up costs, its also getting everyone to agree on changes to an existing system, versus running your own.
I would argue many of the costs associated with migrating from Access to a "real" DB, is not the actual migration script, but the reassessment of all the business decisions that went into the design of the Access schema. Usually a committee evaluates if they are valid, and what to do with existing data to make it conform to a new schema.
My last job was at an HR company and things were historically done through Access and spreadsheets, until an IT guy came along and started writing C# web apps, rose in prominence and now runs a small internal software team. I worked for that guy.
It's not terribly politically difficult to convert existing applications, but it's mind numbing work and it's bottom priority. There's not a huge need to change something that already works, and the only reason you do it is you know it can't stay like that forever.
In a large organization, getting a small server when you don't work in IT is not simple at all.
In most large organisations non IT users have very limited permissions, even to their own machine.
Access, as concept, is great. Is exactly what many need.
But it have a lot of small deficiencies that make it disliked by developers. I have used FoxPro, and it have almost all the right things instead (Fox is Access, but goooood!... except a bit less user friendly).
I wish I could dedicate to build this. Is weird to me why this kind of tool have so little support?
Why not something that is like a cloud SaaS version of Access, but can be extended with some procedures and later used as a GraphQL backend like Hasura?
FoxPro have his own language that allow mix SQL and imperative constructs:
https://en.wikipedia.org/wiki/Visual_FoxPro
This mean:
* You code login in foxpro
* And the stored procedures
* And the forms
* And the reports
* And the script glues
* ....
"Just" adding SQL/GraphQL to a RDBMS is absolutely not enough. Both are too limited.
For example:
- Can you build a btree with SQL? No
- Work with the terminal? No
- Make a visual grid? No
- etc
Only query and maybe crud.
A bit more coding than Access, but it was DB independent on the backend.
Looks like nothing has happened on it for quite a while though.
Are they under-staffed? Neck-deep in spaghetti code? Lacking business knowledge and the opportunity to acquire it? Bottle-necked by a lack of business analysts or testers?
I hear about this too often and nobody seems to think it's a major problem. IT departments can have a queue that's 2 years deep and people don't even bat an eye, they just think "Oh, that's how IT works!" And that's not even taking into account all the requests people aren't submitting because they've given up hope of getting any dev time.
Because existing web UI standards suck rotting ass to hell and back. The standard was not meant for CRUD and still isn't even if you add gajillion layers of (buggy) JavaScript to emulate a real GUI.
We! Need! A! Real! GUI! Standard!
It is also not always worth it if you cannot show a real business case. The thing might help you and it might be worth it if you hack something together yourself but if IT is suppose to build something that is available, has support, has disaster recovery, is patched etc. it might no longer be easy to find the business case for it.
So in the end people hack it in Excel or Access. No need to ask permission, no budget issues, no blame if it's not great.
Access is agile in the truest form. It lets you prototype and refine in an extremely tight feedback loop, until what you have is a working solution for your specific problems.
In my org (I'm an Engineer at a manufacturing plant) a long time ago someone senior made the decision our company was not in business of hiring programmers so any coding is done by contractors.
So yes people have implemented things (Engineering models for example) in MatLab, or Access, or as an Excel spreadsheet etc as "prototypes" ostensibly intended to be rewritten by a real programmer. At some point these models invariably find their way into production environment and suddenly you have some kind of mission critical thing written in Access (or VB6 or Matlab or Excel).
Then IT has minor panic a contractor is given the job of trying to translate the "prototype" into "real" code and has a battle on their hands.
Often programming contractor doesn't have technical understanding of what model is doing, regardless of choice of language the code engineers write tends to look like Fortran (i.e it's essentially all math formulas), even comments probably don't help when they say stuff like "/* Ergun's formula to calc Delta P */" that doesn't mean a lot to someone without a chem eng background. I've seen contractors produce bugs by doing things like misreading a spec and adding a variable called Fe203 (i.e Fe "two hundred and three) instead of Fe2O3 (Fe "Two Oh three" - a chemical formula). You can't really blame contractor he doesn't know anything about chemistry - he was just hired to rewrite this monster in java based on a spec.
So I don't think its a simple as turning problem over to an experienced programmer and expecting success.
So many of these access excel solutions should be a days worth of work, simple perl cgi scripts with a minimalist UI deployed by rsync. Instead we have to use our super "productive" modern frameworks, split everything into a thousand files (god forbid you embed an sql query in the only place it's called), add unit tests, etc. There's certainly times for the later approach, but most businesses need much more of the former.
So because developers don't have a reasonable platform to pinch off random little projects others step in.
-gasps-
I don't know why you think a lot of VBA would be replaced by a little perl. Of course, my perspective has a lot to do with the fact that it was essentially impossible to get a new perl module installed where I used to work.
But developers often don't appreciate the importance of presentation (and other) details in reports for managers. Your reference to "a minimalist UI" is telling.
Even though Access and Excel can be buggy, unstable, and annoying, it doesn't make much sense to use anything else if you are automating a report that was previously assembled by hand in Excel, and needs to match precisely.
And often IT types like to exercise power by gatekeeping - if you aren't doing "real" programming, you don't need a Turing complete solution, so Office ends up being the only option. I've been told that if I can select a list of columns from a dataset, and some filters, by pointing and clicking, that's all I, or my managers, need for reports.
Honestly, I think a lot of people find fulfillment in their work through being the person who can say "no" to people, particularly managers that are theoretically higher ranking. And also by expressing themselves through creative decisions when others fail to specify details. I think that using Office/Access/VBA may be correlated to rejecting the value system of most developers, rather than a technical judgment.
We're talking access here, at best it's ugly and at worst you've got a gaudy background image(1) and a color scheme that would give the disability compliance officer a stroke. Throwing in bootstrap or a more minimal css framework is a huge step up in terms of presentation.
> Even though Access and Excel can be buggy, unstable, and annoying, it doesn't make much sense to use anything else if you are automating a report that was previously assembled by hand in Excel, and needs to match precisely.
I'm thinking of scenarios a bit more complex than that. Access apps generally have a few data input screens, multiple users, etc. Not complicated but not as simple as reports.
I'll admit that I do run away from anything to do with reports, but usually that's because they've installed some "easy to use, no developers required" reporting system that the non-developers can't use and makes life 10 times harder for the developers. If I can just write sql to shove data into an html table or excel template (where we can have the best of both worlds) I'm more than happy too.
1. I actually think of some of these old access programs when I look at windows new built in mail app, who the hell adds a background image?
I'm talking about creating Excel reports based on pulling stuff from (possibly a random assortment of) databases. Where you can use any feature of Excel. Not that the Access application is distributed to people who care what it looks like.
It seems like you can't even imagine a complex report that isn't an interactive application. So I think we're just talking different languages.
Honestly, I was just talking to someone in the organization I work in with the same lack of understanding. He was like "you have a point and click interface that lets you choose some columns from a table and some filters using simple boolean criteria, what else could you (or your manager) want?"
I want the ability to define all the business rules to produce the formatting and munge the data, I guess. And to structure the code in such a way that it's flexible enough to handle major changes. I need regular expressions. I need to run a diff algorithm on text. I need to use XML and REST to talk to SharePoint. I need to scrape information from a system that I only have access to through a web browser.
Basically, I'm using Access/Excel to do what I used to use Qlikview for, or just plain Perl, and it seems to be less of an "impedance mismatch" as people like to say. Also it doesn't cost as much as a car as Qlik licenses did.
Need a SQL Server / PostgreSQL DB for your project, got click some buttons on a page and get back a URI for your database.
Automate, automate, automate.
Very true. As soon as us professionals take over the dev speed drops drastically and costs go up.
I don't know why one of a 3 BAs couldn't figure out WTF was happening and fixing it. We had an intern futz around with Access for a few weeks and it's been running fine to this day.
There are so many "workgroup" size (1-10 users) apps that simply don't get written with today's tool stack.
At the time I questioned the validity of teaching them to use Access, as I was pretty sure that it was little more than a toy program, and would never be used in the wild by proper businesses.
Then at a mate's wedding one of the guests turned out to be a database admin at a large financial institution. I mentioned my opinions on teaching Access to students, and how pointless it was, and he laughed at me.
His response was that he'd often be asked to build a database to do xyz by management, and his reply would normally be something along the lines of...
"Sure, we can get a secure database, that talks to the other systems and does everything you need, with a web interface in a week or so."
Management would give him disapproving stares.
"Or I could knock you up an Access database in a couple of hours that'll do the job."
Management's response - "Yeah, just do that."
I think the lesson here is that business users more often than not want something that 1) just works, 2) they can actually understand, and 3) doesn't require learning and setting up a bunch of other stuff to maintain or upgrade. It's easy to forget how big of a step up it is from Excel to a SQL-based application (or similar other business needs elsewhere) and how big of a barrier that is.
There are probably better database solutions for just about anything you'd want to build with Access, but getting something new requires doing research, getting approval, maybe allocating money, etc. Whereas if you have Office, Access is already sitting there on your computer, just waiting for you to pick it up and start making bad decisions.
SQLite has only relatively recently started to be an option in that niche of single-file databases.
Access's SQL dialect is extremely annoying sometimes, but using SQL is a very significant (if not the most) reason for utilizing it rather than Excel.
I went around and around trying to find a way to query Excel "tables" with SQL or something similar, but eventually gave up. There is something called DAX, but it seems different just to be different, and nothing is orthogonal and logical - particularly external data is not on an equal footing with tables within your spreadsheet.
Dax is powerful but sometimes frustrating. When you need bidirectional relationships you end up making custom measures to keep the whole model performant. Depending on the scale of the problem being looked at it becomes a mess.
But Power BI is the access of dashboard world...
I'm stuck with Office 2013 for the time being and can't upgrade or install anything. If I could use anything, I'd probably prefer to go back to SSRS. Maybe Informatica, or OBIEE or something.
I'm biased by spending so many years writing SQL, but I found it extremely cumbersome to do basic things in DAX even after I figured out how, and haven't seen any obvious advantages. But I do know for a fact that software newer than 2013 adds some crucial features that would make it better.
Access?
I recommend watching some youtube power bi videos for dax tricks. Lots of dax stuff on youtube. Or radacad.
DAX is designed solely for analytical queries using dynamic context (so you don't have to code for every user selected filter or relationship dependency in your model.) Its meant to be written once and then used interactively by your users. It has tons of helper functions like time intelligence, iterators and generators ..
SQL is obviously much broader in scope and functionality, but to match the level of built in context driven dynamism of DAX would require a frankly unmaintainable mess.
So yeah if you just need an answer to a single specific analytic query, just write a SQL query.
But if you need to create a measure to show weighted average pricing for any user selected combination of equities, time periods, markets, vendors, and 500 other dimensional attributes - and then create 5 more measures on top of that to show year to date, year over year, performance vs. overall market, simulated demand at a 5% decrease in price, and price excluding large institutional purchases - DAX is your friend.
There’s M in PowerQuery. It is also not SQL, but I do believe that it’s better for the task.
Note that any number of cloud startups don’t count as an alternative to access. When these things start it’s as an excel sheet with data that no one will go through the enterprise hassle to get cleared for anywhere but their own hard drive. This needs to sit above excel but still local. You need the entire business case and business value while it’s still in a local directory.
I'd probably do a web app myself, but that's just me. I know a lot of people that cut their programming teeth on Access apps, including distributed ones.
People often develop smallish CRUD apps in MS-Access in two weeks or less. It's up and going without fuss and muss and without fiddling with servers, containers, DBA's, etc.
You have to admire its nimbleness.
Yes, the database "crashes" fairly often, but it's easy to make frequent round-robin-style file-based backups using Windows Scheduler and DOS scripts.
Most databases cannot be properly backed up with file-based techniques because of syncing of internal pointers. But MS-Access's separate "lock-file" based technique somehow facilitates file-based backups.
Such MS-Access apps are far from perfect, but if you factor in everything, they seem to be a net benefit.
I'd probably do a web app myself
If follow-on maintainers don't know the web framework used, it can be hard to maintain. Web apps are rarely nimble to do without an involved framework on which the developer is familiar with. MS-Access avoids that problem with ubiquity and a light drag-and-drop learning curve. (It did get harder to learn when they went from coordinate-based to an HTML-esque flow engine around 2006.)
Let's face it, desktop GUI IDE's are usually much easier to learn than web stuff. You don't have to deal with the web's lack of state, and CSS/DOM/JS headaches/bugs/inconsistencies.
When I first learned MS-Access, I barely had to read the manual. I could discover most functionality by clicking around. With Base, I had to constantly dig in the manual and still couldn't get it to do many ordinary CRUD idioms.
I spent a couple decades as a power user of the MS Office suite and find that I can generally make Calc do what I need as a spreadsheet and even Writer as a word processor. However, pretty much every time I've tried to develop a solution in Base it turns into a fight and I end up throwing up my hands and going with a different database solution. Calc doesn't even work all that well with it... and it's one of the few applications that works with it at all.
Running on? Wait, you mean I have to get IT to set up a server for me? Who's responsible for maintaining that? Backups? They're going to do that for something used by only 10 people that saves us maybe 20-30 hours a week? How much are they going to charge my department for this?
I wonder whether today’s equivalent could be made on Raspberry Pi. It requires a few tricks, but there is so much demand from managers who could afford paying 50€ out of pocket.
Of course, having a rogue box plugged to the internal network with a Wifi and Bluetooth chip on board is not IT-approved. Can it be bypassed?
Actually I think the lesser known parts of office 365 'PowerApps' have various features for point and clicking your way to a cloud database, forms and reports, and even ETL from your existing data sources.
However, people don't think of these options like they think of access. For MS and Office 365, they could put more effort into marketing the features. Maybe they don't want to. For Salesforce, I guess they could try to get their product into non-computer people IT class syllabuses?
Like ... crazy push. They're running free App in a Day workshops in hundreds of cities, and the "Power Platform" (Power BI, PowerApps, and Flow) is their key foot in the door sale in FY20.
Low code/no code is always a Modern Workplace linchpin.
Something like WinForms with SQLite that didn't use Entity Framework would be far better. But really all we want is to get back to VB6 on top of Access. Maybe a few less footguns...
True! I wonder whether making JS event handler in little textarea boxes would actually help. Select “Even handler for field ‘Name’ on ‘click’”, then program your event. Obviously the end result is a js file, but they user is guided...^W prevented from doing something else than modifying output before submission.
The big problem is that there is much more of a learning curve. The first useful software I wrote used VB6 and winforms. Getting started was easy and intuitive, with a gentle learning curve. With virtually no experience, I was making neat things in hours. Within days I was making full applications. That says something about the power of that platform.
To be truly effective with modern web development took me a year or so. That was after years of professional experience.
At this point I can build web applications faster than I can build desktop software, but it took a huge time investment to reach this point, and I had to build multiple tools to make it possible.
I agree that there's a niche that needs filling. I want all the benefits of modern web development, and I want a learning curve like VB6 with Access.
Libre office has "base" but its just a front end. My boss uses access, she like the query builder. I've got my mysql instance and some front end tools that do the same, but I'm a developer.
Filemaker is another of these applications, but not open source. The thing these stand alone apps have is direct printer access for printing forms and labels. It makes it hard to get off.
(Our get off filemaker solution is to download the data from our website and use a stand alone print app to print the labels. One extra step, but its not completely ideal.)
The largest drawback is that it comes with an Oracle database bundled, so many of the savings in development time are wasted dealing with it.
YAGNI. Why not just go with a process that you can't scale to that hypothetical use case, and once that process reaches maturity (stops being adjusted every week) and grows to the point scaling becomes a real consideration, and not just theoretical one - only then hire resources to migrate it to a new system that's scalable?
In the end, it's relatively easy to get started with. As TFA mentions, it's really a great option for Power users. A relatively skilled business person can get up to speed with it quickly enough extending from Excel knowledge.
It has been many years since I have seen Access, and I thank the database gods for that. Nowadays I run an HR SaaS company, but just yesterday we landed the biggest contract of our fledgling company with THE biggest manufacturer in the UK of a certain household product. All the excitement was sucked out of me when they asked if they could integrate our cloud HR system with their internal job costing & time sheet database... which is written in Access!
If it was easy for a teen in the first months with a computer, must be easy nowadays for any non-tech person who doesn't receive enought attention from IT because building a system would cost too much for each sprint/function points/hours.
And it won't die unless things like that change.
I used to automate a lot of grunt work by putting code in dBASE tables. It's real easy to do that. You can make a sophisticated menu system using mostly just tables with code embedded. I was quite productive back then without having to type a lot.
I wrote quite a few tens of thousands of lines of code in Clipper (using the BRIEF editor) all the way up until ~1998. By then I'd more or less switched to VB+SQL Server.
Gotta say I really loved working with Clipper, it was a really nice superset of dBase but had many of it's own specific design features.
I will say, however, Access has SOME benefit to Information Systems education, especially in a general IS class. These students are marketing, accounting, etc. and so Access offers these students a quick dip into the world of DBs to understand how they operate without requiring they set up a local server or import some complex SQL statement.
This is a super niche group though, one that does not warrant much support. If someone were to develop an online Access-themed learning environment that taught those same basics, it would have the exact same benefits without the tangled Office requirement.
For example, the SQL text editor in Access is so broken if you copy and paste tab characters they're displayed as zero-width and break text rendering (if you click+drag to create a text-selection the selection will cover the wrong text) and you usually get a syntax error if you make any changes to the query after pasting it (but if you don't modify it then it's fine). Never mind the lack of syntax-coloring or auto-completion. Microsoft says they are not planning on making any changes to the SQL text editor: https://access.uservoice.com/forums/319956-access-desktop-ap...
There's also a fun bug where the outermost LEFT OUTER JOIN in a query with 2 or more other joins will fail if the right-hand table has zero rows (but will work if the right-hand table has zero matching rows).
I also ran into a bug where if you read a long calculated text field from a view/query through VBA, it corrupts everything after 255 characters, even though you can get the data otherwise through the interface or save it to a table. Googling suggested this problem had existed for 10-15 years.
Also, a lot of times your query will return neither a value or null, but "#error".
And I really hate the way it destroys all your formatting whenever you save a query. Every time I need to change something, I end up copying to a text editor and formatting by hand in order to find whatever error I just introduced.
My senior project was to create a complete project plan in MS Project for a system (I chose a video rental point of sale system), then build it out using Access. The project plan had to be a semester long plan, including features and assigned assets. The system had to have a proper ERD, forms and reports. It was a two semester course and taught me a ton about how to actually build software in a business environment.
It’s embarrassing for me to admit how long it took me to make the connections between what I did in Access (and later FileMaker) and MySQL and other database systems.
When I look back, I’m half-annoyed with myself for not just using a better SQL tool, but I’m equally pleased/impressed with what I built as a kid.
Airtable is probably the closest we have to “modern” Access - but I agree with the other comments that point out the value and potential of these types of tools.
Now that I'm in industry, I'm one of the people building these "shadow IT" solutions. I can clearly see how those late nights paid off.
I also act as a liason between the business and IT at times, and can help bridge the communication gaps.
Who use Microsoft Access in 2019?!
An obvious case is creating a glorified/enhanced Excel for some specific office tasks, another case is that some applications use ".mdb" backend.
But that's all? edit: What I'm interested in is cases of using Access for something other than a specific Excel-like office task - it seems Access is still used for some serious business in many businesses (pun not intended).
Also, if your office does use Access just for Excel-like tasks, but has overused it so much, please comment as well, I'd like to hear your story.
Who use Microsoft Access in 2019?
> creating a glorified Excel for some specific office tasks
What I'm interested in is cases of using Access for something other than a specific office task - it seems Access is still used for some serious business in many businesses (pun not intended).
This is like saying "why would anyone use dropbox when you can just run rsync on your Arch linux box."
What I don't like about it is that Microsoft hasn't really improved it in the last six years - but there isn't anything remotely like it: Xojo, FileMaker,and AirTable are close but not quite there. For us AirTable is a non-starter because you rent it as a service.
If I had someone hold a gun to my head and jump to alternative - it would probably be Lazarus/Borland Delphi
I have been a "developer" or should I say, I used to be a developer since the COBOL/DB2 days. I have used a vast array of systems and languages over the years but I have always had a love for the simplicity and power behind Office. But, the times they are a changing. Right now I am learning Go with the intention of marrying it with VueJS so I can at least pretend to be somewhat current.
"About 30,000,000 lines of code make up the current version of Office that we are developing."[1]
[1]https://blogs.msdn.microsoft.com/macmojo/2006/11/02/its-all-...
No matter how better other tools can be nowadays, there's no denying the fact that there are businesses who still have smaller MS Access apps that runs critical business processes.
I have helped a small company (~9-10 years ago) who had an MS-Access based application where the source code was locked as well as the database. Took a while to unlock both the source and the database and up until today, that application is being utilized fully in their operations.
And half my help tickets now are fixing Access files from multiple users trying to use them at once...
- widely known
- sold by a major and trusted (wisely or unwisely) enterprise company
database
- that was once shipped directly to essentially every end-user on earth when it was bundled with office,
and with
- an actual GUI designed more or less by people who know how to design GUIs.
who on earth would ever have thought that it would die, in the absence of any replacement with similar properties?!
Once we started getting to scaling issues we imported all the tables into MySQL and had Access use the remote tables that existed in MySQL.
This worked really well. All the forms and various things were in Access and the tables in MySQL and this scaled out pretty well to many 10s of users.
A nice side benefit is that I was able to reuse a lot of that data in an internal web application.
I was brought into a project where a seniour data scientist was working with MS Access but was runing out of room as it, at the time, had a database size limit of 1Gb on disk and our data set was about 2.5Gb in size.
We could have ported the whole thing to SQLite3, MySQL, PostgreSQL, MSSQL or even Oracle as we had site wide licences available.
Nope. MS Access was the favourite tool of this guy so in MS Access the data had to stay and I had to write code to juggle data between multiple simulataniously connect databases on a single machine.
This taught me a lot about how scienitst and accademics approach software engineering. My boss was both brilliant and really dum at the same time. He just wanted to get from A-to-B as "simply" as possible. He wasn't interested maintainablitly or assethics.
To this day the whole business still brings me out in a cold sweat of cognative disonance because on some level I know he may have had a point but on the other hand... I STILL have the flatspot that work gave me on my forehead from all the pointless wall banging involved.
I still beleive his work saved the company involved millions if not billions over years since it was presented. (...and I have never accepted another contract involving VBA or other Microsoft technologies since.)
Programmers often don't understand that Excel and Access are valuable because you don't need a programmer, simply a professional with some technical knowledge. Developing a fully-fledged solution would slow you down and increase your developer headcount by 1. If any modifications need to be made you could waiting weeks for an IT/Developer team to react. IT often acts as a blocker for us trying to get work done with limited data sets.
There is nothing else quite like Access on the market. Air table is but a toy for those of us in business that need a serious tool that can integrate with Excel and has aggregate and SQL querying capabilities.
Went with Zoho Creator in the end, but even some of the concepts in that aren't intuitive (it treats forms and tables as the same thing).
Having done quite a few things with anvil.works in recent times as a 'modern Delphi' I'm left wondering when the 'modern Access' will arrive.
Flash had a bit of this too, especially in the ActionScript 1 days - albeit from a design rather than a business background. So too did every 8-bit micro that booted into an adequate BASIC. It’s a shame that we’ve largely lost this.
When I started, they used Microsoft Access almost exclusively. They would put an MDB file on a shared network drive and every agent would open it to input caller data via the forms. Maybe 100 people with the same MDB open. Mental. No backups, lots of (data) corruption!
One of my crutches is exactly that, that SQL is more or less the only language I have mastered and when I while I feel like I am skilled enough to develop complex databases, I am always lost at creating a proper frontend for end-users. Quite often I will resort to MS Access as a light frontend (holding no data and minimal coding), just a bunch of forms.
Does anyone know an alternative to this? If I just want some forms but don't want to dive into web-based applications, what alternatives to access exist?
If you need it to be on the web, php + Mysql is probably one of the easiest to learn. The cool kids might have moved to something else, like node or django, though. It also requires learning done basic HTML, but the complexity is reasonable.
I already have my annual revenue needs met by a service business, this is now all a side-hustle thing, but it has been a slog.
I do appreciate QT's visual Designer app, it makes creating forms more like Access/VB.
I was able to create an external software application (we called it "CookBooks") that would selectively skim off cash transactions (ignoring credit card transactions) from the Access database.
This allowed him to reduce his tax liability and pocket a substantial amount of cash on a nightly basis.
This was in 2002 and I recall that it took no time at all to gain update access to the underlying proprietary Access database powering the MICROS system.
MYOB Retail Manager, which you will find in many bricks & mortar stores as their POS system (often with multiple registers), uses MS Access as its database.
Why they never switched to SQLite or MSSQL Lite I don't know but it's there, does the job most of the time (except when it corrupts itself) and there's no value in moving away from it, and going all-out online is a big scary change for them.
I worked with an ex-Lotus guy once, and he always raved about how easy it was to build out LOB apps with it and have a pretty capable little database in a single .nsf file.
IBM has washed their hands of it, but I know of a lot of big corporation, and especially militaries, that are still running applications on top of Notes.
The second sentence of your post contains both joy and heartache and - in my opinion - could stand alone as a short story for the tech crowd almost on par with the record holder for shortest short story ever.
These are some of the golden nuggets that I used to read Slashdot for 15 years ago and now find on HN.
(I'm posting only because I thought that someone must have mentioned this for sure, but couldn't find one.)
We used their reporting functionality to extract data to import to our firms systems. Access was their intermediary data store. SQL Server -> Access -> CSV.
I had to support this, so I was one of only 2 people at the firm that was allowed to have Access installed.
Not necessarily Access's fault, but these reports failed routinely. Ended up with a Python script wrapping the whole process and retrying so I didn't get called at night. probably not Access's fault, but still leaves a bad taste in my mouth. Access is regarded as a toy, even more so than MySQL.
Yeah, I did a lot of dBase / Clipper back in the mid 80s for rent money while I was in college. Liked the ease of use, but index corruption on a multi user network killed it off. And you have to write code, vs allowing users to accrete stuff on the screen with a GUI.
My job function entails extending and maintaining an MS Access database that our small company still uses as its primary tool for data entry and reporting. It started on Access 97, moving up through a few new releases until about 2010, which we stayed on until just this year. It's now working with the O365 edition. It was first developed by someone with no previous experience, referencing a copy of Access 97 for Dummies. I learned on the job just by poking around - which is now, I think, the biggest pain point for how we use the software: how exposed everything is. Prior to this role, our company would contract out for development: we'd come up with a big list of things we want, and it would be done and deployed within a couple week's time, although it usually took many revisions to get right. Now that I am able to do this development work in-house, things go much more smoothly as I also work with the day-to-day processes the tool is used for, and I have a grasp on how systems operate within our office. It's very important to have database tools with a low barrier to entry, so I think there would always be some market for this; where it really shines is its straightforward reporting and form editing capabilities, along with its user-friendly query designer. Being able to generate complex datasets without having to think about SQL (though still being able to write SQL!) is powerful.
(as an aside, I feel that I'm ready to move on from my role, but my abilities with Access don't seem exactly desirable or hireable, and as the article describes, there's always a looming threat of it going away someday. I was given a title of "Database Administrator" from higher-ups who think of Access as some esoteric ability, although gambits for pay raise so far have been fruitless. I see it more like ability in using Excel. I have some experience with MySQL via personal projects and programming in PHP, but I wouldn't call myself a dba if I'm being honest with myself. I feel a little stuck by not having the abilities to match my job title when searching for new positions, and if I'm going to the trouble of getting a new job, I don't want a lateral move with the same compensation. The wise thing to do would be to learn competence in proper database tools. I'm young, without a degree, and any advice would be welcome)
If you want to do a deep-dive into Computer Science and transition to a full-time software role, then you might want to look into Lambda School[3]. I don't have personal experience with them, but several people I trust claim their results are excellent.
[1] https://guides.rubyonrails.org/getting_started.html
[2] https://docs.djangoproject.com/en/2.2/intro/tutorial01/
[3] https://lambdaschool.com/courses/full-stack-web-development
1) You can't do multi-line queries. After executing, it'll smash it all to one line again.
2) You can't add comments. After executing, it'll delete them out.
3) It doesn't do any syntax highlighting.
----
Years ago I worked for a company who had tons of manufacturing production data. Someone built an interface to query the data - used by just a couple people. Mind you, this isn't Access, it was homebrew software. Eventually word spread about the data you could access, and dozens to hundreds of people got access.
They never got to the top of the priority list to make it multi-user, separate profiles, create permissions on queries, etc.
There was a mandatory 8 hour training session with a test before getting access to the environment. Dev queries were automatically deleted 90 days since last run. On prod, 365 days. This was to reduce clutter. Query names were terse. You had to know people who knew what queries did. Comments were used sparingly. Anyone could edit and view any query available.
I copied a query, made edits, then executed. Got weird results. It took 1.5 days to figure out the parser was messed up! First, line comments using ' were excluded. Next block comments using /* */ were excluded. However, if a macro was called inside a block comment, it was executed.
That was the most frustrating bug I've ever debugged. Literally I'd copy the query, it'd run successfull, I'd comment out a couple returned values, and it'd fall on it's face because of how macros worked.
Remind me... why are people publishing on Medium again?
That would get us halfway there, and make it easy for companies to use (getting off of excel is a different proposition altogether).
There’s nothing in the easy database/UI space at the moment and it has gone unfilled for a long time.
"Hypercard"
Is it actually dead yet?
I made my MVP v2 in Access. Currently testing it and getting it checked out by a few founders, then I will release it, for free. Well, almost free, email collection.
It took me 10 months, which is fast considering the Excel version (MVP v1) took me 4 years, but then the Excel version has the whole concept from beginning to end, and there was a lot to learn, still a lot to learn really. The Access version covers only the first 9 steps. What I made was a startup system that guides founders from idea to early traction.
Access was not my first choice. I thought after the Excel version that I would use either a no or low code solution, a RAD tool, or some sort of visual development thing. As you have guessed I am not a programmer. I did dabble in BASIC, well a bit more than dabble, when my dad got me a Speccy. I enjoyed it, there is beauty in logic no matter how Phaedrus cuts it, but it was a means to an end really. From Draw and Beep through to Deluxe Paint 3 and OctaMed, it was about expression. I am not saying programming isn't a form of expression, but it is the long way round to me.
A few years later, I had to learn some Turbo Pascal, in order to make a database I think, talking 24 years ago, so I can't actually remember. But I do remember being bored out of my mind. So, I quit my computing degree. It was strange, I had an Amiga I could make things on. My college had just got some multi-media computers, yet in university, we had these stiff monochrome 486's. They didn't sing, didn't dance, looked awful but they did go a long way. Sheesh Kitkat.
Second time round at university many years later, I had to face programming again, this time it was Java, JavaScript and Object Orientated Delphi. OOD I liked, the other two I tolerated, for it was just a programming module rather than the whole thing.
After I had finished the Excel version, obtained feedback, tweaked and modified this and that, it was onto MVP v2. I looked at a shed-load of stuff, Bubble, Kexi, Lazarus, My Visual Database, Delphi 10.3, App Builder, Zoho Creator, Cross UI, Airtable, to name but a few. There were issues with all of them:
1. Not enough control and/or functions 2. Cumbersome and tedious to do anything 3. A sense of detachment as if I was having an OBE 4. Database; I don't care about connections, stacks and what-not, just sit in the background, and save stuff. 5. Process, and output what I tell you to do, and send outputs so they are inputs in other places 6. Questionable documentation 7. Customer support non existent, unresponsive or just prone to sending me back to the documentation I checked before hand 8. Tutorials and lessons showing how to make clones of well-known startups, or rudimentary apps 9. Holding me and anybody I share it with over a barrel 10. Unnecessarily complicated
So anyway, I decided fudge it, let me take a look at Access, it's been sat there for years. Many other people have it, although not Mac users. I am not a complete novice when it comes to Access, I know a little about 1,2 and 3 step normalisation, although I didn't strictly stick to it. Yeah I had to learn a bit of SQL and VBA, and any questions I had were already answered countless times on forums, although usage and disagreement of ! and . was annoying.
I was obviously unable to make what I really wanted, but I was able to make something close enough for what I deemed as necessary at this moment in time, in order to at least give a user a taste of what I propose. The minimum part of the MVP had to cut across the board, like a slice of cake, bit of everything.
I got asked a few times why am I using or used Access. I could have mentioned the above list, but the crux of it was, to me it was the tool for the job, with a support network around it, with very few chains and shackles, at a stretch I could do it on my own. I couldn't give a hoot about stacks, dependencies, libraries, etc. The latest languages, scalability, etc, whats that to do with an MVP?
I am proud of what I made. I won't be pulling out my who gives a toss but me violin in a public forum, but it's a tough lonely slog. It was my idea, and I had to use what I could to bring it to some sort of fruition. A small stepping stone in the right direction.
Cheers, Ace.
Literally worse than blogspot in every way.